2016-10-21 16:25:35 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
2016-11-02 13:47:22 +00:00
|
|
|
"bytes"
|
|
|
|
"fmt"
|
2016-10-22 17:03:16 +00:00
|
|
|
"io/ioutil"
|
2016-10-21 16:25:35 +00:00
|
|
|
"strconv"
|
|
|
|
|
|
|
|
"github.com/aerojs/aero"
|
2016-11-02 13:47:22 +00:00
|
|
|
"github.com/animenotifier/arn"
|
2016-10-21 16:25:35 +00:00
|
|
|
)
|
|
|
|
|
2016-11-02 13:47:22 +00:00
|
|
|
func s(v interface{}) string {
|
|
|
|
return fmt.Sprintf("%v", v)
|
|
|
|
}
|
|
|
|
|
2016-10-22 17:03:16 +00:00
|
|
|
func main() {
|
2016-10-21 16:25:35 +00:00
|
|
|
app := aero.New()
|
2016-10-22 17:03:16 +00:00
|
|
|
|
2016-10-28 16:11:25 +00:00
|
|
|
cssBytes, _ := ioutil.ReadFile("layout.css")
|
|
|
|
css := string(cssBytes)
|
2016-11-02 13:47:22 +00:00
|
|
|
|
|
|
|
animeCSSBytes, _ := ioutil.ReadFile("anime.css")
|
|
|
|
css += string(animeCSSBytes)
|
|
|
|
|
|
|
|
scripts, _ := ioutil.ReadFile("scripts.js")
|
|
|
|
js := string(scripts)
|
2016-10-22 17:03:16 +00:00
|
|
|
|
2016-10-23 15:45:37 +00:00
|
|
|
app.Get("/", func(ctx *aero.Context) {
|
2016-11-02 13:47:22 +00:00
|
|
|
ctx.HTML(Render.Layout(Render.Dashboard(), css))
|
|
|
|
})
|
|
|
|
|
|
|
|
app.Get("/_/", func(ctx *aero.Context) {
|
|
|
|
ctx.HTML(Render.Dashboard())
|
2016-10-22 17:03:16 +00:00
|
|
|
})
|
|
|
|
|
2016-10-23 15:45:37 +00:00
|
|
|
app.Get("/anime/:id", func(ctx *aero.Context) {
|
|
|
|
id, _ := strconv.Atoi(ctx.Params.ByName("id"))
|
2016-10-21 16:25:35 +00:00
|
|
|
anime, err := arn.GetAnime(id)
|
|
|
|
|
|
|
|
if err != nil {
|
2016-11-02 13:47:22 +00:00
|
|
|
ctx.Text("Anime not found")
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
ctx.HTML(Render.Layout(Render.Anime(anime), css))
|
|
|
|
})
|
|
|
|
|
|
|
|
app.Get("/_/anime/:id", func(ctx *aero.Context) {
|
|
|
|
id, _ := strconv.Atoi(ctx.Params.ByName("id"))
|
|
|
|
anime, err := arn.GetAnime(id)
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
ctx.Text("Anime not found")
|
2016-10-21 16:25:35 +00:00
|
|
|
return
|
|
|
|
}
|
|
|
|
|
2016-11-02 13:47:22 +00:00
|
|
|
ctx.HTML(Render.Anime(anime))
|
|
|
|
})
|
|
|
|
|
|
|
|
app.Get("/api/anime/:id", func(ctx *aero.Context) {
|
|
|
|
id, _ := strconv.Atoi(ctx.Params.ByName("id"))
|
|
|
|
anime, err := arn.GetAnime(id)
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
ctx.Text("Anime not found")
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
ctx.JSON(anime)
|
|
|
|
})
|
|
|
|
|
|
|
|
app.Get("/api/users/:nick", func(ctx *aero.Context) {
|
|
|
|
nick := ctx.Params.ByName("nick")
|
|
|
|
user, err := arn.GetUserByNick(nick)
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
ctx.Text("User not found")
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
ctx.JSON(user)
|
|
|
|
})
|
|
|
|
|
|
|
|
app.Get("/all", func(ctx *aero.Context) {
|
|
|
|
var buffer bytes.Buffer
|
|
|
|
|
|
|
|
results := make(chan *arn.Anime)
|
|
|
|
arn.Scan("Anime", results)
|
|
|
|
|
|
|
|
for anime := range results {
|
|
|
|
buffer.WriteString(anime.Title.Romaji)
|
|
|
|
buffer.WriteByte('\n')
|
|
|
|
}
|
|
|
|
|
|
|
|
ctx.Text(buffer.String())
|
|
|
|
})
|
|
|
|
|
|
|
|
app.Get("/scripts.js", func(ctx *aero.Context) {
|
|
|
|
ctx.SetHeader("Content-Type", "application/javascript")
|
|
|
|
ctx.Respond(js)
|
2016-10-21 16:25:35 +00:00
|
|
|
})
|
|
|
|
|
2016-10-28 16:11:25 +00:00
|
|
|
// 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"))
|
|
|
|
// })
|
|
|
|
|
2016-10-21 16:25:35 +00:00
|
|
|
app.Run()
|
|
|
|
}
|