Merge pull request #14 from FM1337/go

Added popular anime display
This commit is contained in:
Eduard Urbach 2017-06-24 00:29:04 +02:00 committed by GitHub
commit cdec0fc9a7
2 changed files with 66 additions and 1 deletions

View 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.")
}

View File

@ -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))
}