commit
cdec0fc9a7
57
jobs/popular-anime/main.go
Normal file
57
jobs/popular-anime/main.go
Normal file
@ -0,0 +1,57 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"sort"
|
||||
|
||||
"github.com/animenotifier/arn"
|
||||
"github.com/fatih/color"
|
||||
)
|
||||
|
||||
|
||||
const maxPopularAnime = 10
|
||||
|
||||
// Note this is using the airing-anime as a template with modfications
|
||||
// made to it.
|
||||
func main() {
|
||||
color.Yellow("Caching popular anime")
|
||||
|
||||
animeChan, err := arn.AllAnime()
|
||||
|
||||
if err != nil {
|
||||
color.Red("Failed fetching anime channel")
|
||||
color.Red(err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
var animeList []*arn.Anime
|
||||
|
||||
for anime := range animeChan {
|
||||
animeList = append(animeList, anime)
|
||||
}
|
||||
|
||||
sort.Slice(animeList, func(i, j int) bool {
|
||||
return animeList[i].Rating.Overall > animeList[j].Rating.Overall
|
||||
})
|
||||
|
||||
// Change size of anime list to 10
|
||||
animeList = animeList[:maxPopularAnime]
|
||||
|
||||
// Convert to small anime list
|
||||
cache := &arn.ListOfIDs{}
|
||||
|
||||
for _, anime := range animeList {
|
||||
cache.IDList = append(cache.IDList, anime.ID)
|
||||
}
|
||||
|
||||
println(len(cache.IDList))
|
||||
|
||||
saveErr := arn.DB.Set("Cache", "popular anime", cache)
|
||||
|
||||
if saveErr != nil {
|
||||
color.Red("Error saving popular anime")
|
||||
color.Red(saveErr.Error())
|
||||
return
|
||||
}
|
||||
|
||||
color.Green("Finished.")
|
||||
}
|
@ -2,6 +2,8 @@ package popularanime
|
||||
|
||||
import (
|
||||
"github.com/aerogo/aero"
|
||||
"github.com/animenotifier/arn"
|
||||
"github.com/animenotifier/notify.moe/components"
|
||||
)
|
||||
|
||||
// Get search page.
|
||||
@ -25,5 +27,11 @@ func Get(ctx *aero.Context) string {
|
||||
// popular, _ := arn.GetPopularCache()
|
||||
|
||||
// return ctx.HTML(components.Search(popular.Anime, titleCount, animeCount))
|
||||
return ctx.HTML("Coming soon.")
|
||||
animeList, err := arn.GetPopularAnimeCached()
|
||||
|
||||
if err != nil {
|
||||
return ctx.HTML("There was a problem listing anime!")
|
||||
}
|
||||
|
||||
return ctx.HTML(components.AnimeGrid(animeList))
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user