51 lines
901 B
Go
Raw Normal View History

2016-11-19 23:54:31 +09:00
package genres
import (
"github.com/aerogo/aero"
2016-11-20 04:53:33 +09:00
"github.com/animenotifier/arn"
2016-11-19 23:54:31 +09:00
"github.com/animenotifier/notify.moe/components"
2017-11-30 03:21:37 +01:00
"github.com/animenotifier/notify.moe/utils"
2016-11-19 23:54:31 +09:00
)
// Get ...
func Get(ctx *aero.Context) string {
2017-11-30 03:21:37 +01:00
user := utils.GetUser(ctx)
genres := []string{}
genreToAnime := map[string]*arn.Anime{}
2016-11-20 04:53:33 +09:00
for _, genre := range arn.Genres {
2017-11-30 02:59:19 +01:00
if genre == "Hentai" {
2016-11-20 19:26:11 +09:00
continue
}
genres = append(genres, genre)
2016-11-20 04:53:33 +09:00
}
2017-11-30 03:21:37 +01:00
allAnime := arn.AllAnime()
2018-03-14 01:02:41 +01:00
arn.SortAnimeByQuality(allAnime)
2017-11-30 03:21:37 +01:00
added := 0
for _, anime := range allAnime {
for _, genre := range anime.Genres {
// Skip genre that we don't care about
if !arn.Contains(genres, genre) {
continue
}
_, exists := genreToAnime[genre]
if !exists {
genreToAnime[genre] = anime
added++
}
}
if added >= len(genres) {
break
}
}
return ctx.HTML(components.Genres(genres, genreToAnime, user))
2016-11-19 23:54:31 +09:00
}