Added genre lists
This commit is contained in:
parent
eacf0e2399
commit
8f3ef01285
@ -41,8 +41,8 @@ component Anime(anime *arn.Anime)
|
||||
.light-button-group
|
||||
each genre in anime.Genres
|
||||
if genre != ""
|
||||
a.light-button.ajax(href="/anime/genres/" + arn.FixGenre(genre))
|
||||
i(class="fa fa-" + GenreIcons[genre] + " fa-fw")
|
||||
a.light-button.ajax(href="/genres/" + arn.FixGenre(genre))
|
||||
Icon(GenreIcons[genre])
|
||||
span= genre
|
||||
|
||||
if len(anime.Studios) > 0
|
@ -9,5 +9,7 @@ component GenreOverview
|
||||
Icon(GenreIcons[genre])
|
||||
span= genre
|
||||
|
||||
component Icon(name string)
|
||||
i(class="fa fa-fw fa-" + name)
|
||||
component AnimeInGenre(genre string, animeList []*arn.Anime)
|
||||
h2= genre
|
||||
each anime in animeList
|
||||
p= anime.Title.Romaji + " (" + s(anime.Watching) + ")"
|
2
components/icon.pixy
Normal file
2
components/icon.pixy
Normal file
@ -0,0 +1,2 @@
|
||||
component Icon(name string)
|
||||
i(class="fa fa-fw fa-" + name)
|
27
helper.go
Normal file
27
helper.go
Normal file
@ -0,0 +1,27 @@
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
// Converts anything into a string
|
||||
func s(v interface{}) string {
|
||||
return fmt.Sprintf("%v", v)
|
||||
}
|
||||
|
||||
// Contains ...
|
||||
func Contains(list []string, a string) bool {
|
||||
for _, b := range list {
|
||||
if b == a {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// Map ...
|
||||
func Map(original []string, f func(string) string) []string {
|
||||
mapped := make([]string, len(original))
|
||||
for index, value := range original {
|
||||
mapped[index] = f(value)
|
||||
}
|
||||
return mapped
|
||||
}
|
51
main.go
51
main.go
@ -1,7 +1,6 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"sort"
|
||||
"strconv"
|
||||
@ -12,10 +11,6 @@ import (
|
||||
"github.com/animenotifier/arn"
|
||||
)
|
||||
|
||||
func s(v interface{}) string {
|
||||
return fmt.Sprintf("%v", v)
|
||||
}
|
||||
|
||||
func main() {
|
||||
app := aero.New()
|
||||
|
||||
@ -107,39 +102,27 @@ func main() {
|
||||
ctx.HTML(Render.GenreOverview())
|
||||
})
|
||||
|
||||
app.Get("/genres/:name", func(ctx *aero.Context) {
|
||||
genreName := ctx.Params.ByName("name")
|
||||
|
||||
var animeList []*arn.Anime
|
||||
results := make(chan *arn.Anime)
|
||||
arn.Scan("Anime", results)
|
||||
|
||||
for anime := range results {
|
||||
genres := Map(anime.Genres, arn.FixGenre)
|
||||
if Contains(genres, genreName) {
|
||||
animeList = append(animeList, anime)
|
||||
}
|
||||
}
|
||||
|
||||
ctx.HTML(Render.Layout(Render.AnimeInGenre(genreName, animeList), css))
|
||||
})
|
||||
|
||||
app.Get("/scripts.js", func(ctx *aero.Context) {
|
||||
ctx.SetHeader("Content-Type", "application/javascript")
|
||||
ctx.Respond(js)
|
||||
})
|
||||
|
||||
// layout := aero.NewTemplate("layout.pug")
|
||||
// template := aero.NewTemplate("anime.pug")
|
||||
|
||||
// app.Get("/anime/:id", func(ctx *aero.Context) {
|
||||
// id, _ := strconv.Atoi(ctx.Params.ByName("id"))
|
||||
// anime, err := arn.GetAnime(id)
|
||||
|
||||
// if err != nil {
|
||||
// ctx.Respond("Anime not found")
|
||||
// return
|
||||
// }
|
||||
|
||||
// content := template.Render(map[string]interface{}{
|
||||
// "anime": anime,
|
||||
// })
|
||||
|
||||
// final := layout.Render(map[string]interface{}{
|
||||
// "content": content,
|
||||
// })
|
||||
|
||||
// final = strings.Replace(final, cssSearch, cssReplace, 1)
|
||||
|
||||
// ctx.Respond(final)
|
||||
// })
|
||||
|
||||
// app.Get("/t", func(ctx *aero.Context) {
|
||||
// ctx.Respond(templates.Hello("abc"))
|
||||
// })
|
||||
|
||||
app.Run()
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user