package main import ( "strings" "github.com/aerogo/aero" "github.com/animenotifier/notify.moe/components" "github.com/animenotifier/notify.moe/pages/airing" "github.com/animenotifier/notify.moe/pages/anime" "github.com/animenotifier/notify.moe/pages/dashboard" "github.com/animenotifier/notify.moe/pages/forum" "github.com/animenotifier/notify.moe/pages/forums" "github.com/animenotifier/notify.moe/pages/genre" "github.com/animenotifier/notify.moe/pages/genres" "github.com/animenotifier/notify.moe/pages/posts" "github.com/animenotifier/notify.moe/pages/profile" "github.com/animenotifier/notify.moe/pages/search" "github.com/animenotifier/notify.moe/pages/threads" "github.com/animenotifier/notify.moe/pages/users" ) var app = aero.New() func main() { // CSS app.SetStyle(components.CSS()) // HTTPS app.Security.Load("security/fullchain.pem", "security/privkey.pem") // Layout app.Layout = func(ctx *aero.Context, content string) string { return components.Layout(content) } // Ajax routes app.Ajax("/", dashboard.Get) app.Ajax("/anime", search.Get) app.Ajax("/anime/:id", anime.Get) app.Ajax("/genres", genres.Get) app.Ajax("/genres/:name", genre.Get) app.Ajax("/forum", forums.Get) app.Ajax("/forum/:tag", forum.Get) app.Ajax("/threads/:id", threads.Get) app.Ajax("/posts/:id", posts.Get) app.Ajax("/user/:nick", profile.Get) app.Ajax("/airing", airing.Get) app.Ajax("/users", users.Get) app.Get("/images/cover/:file", func(ctx *aero.Context) string { format := ".jpg" accept := ctx.GetRequestHeader("Accept") if strings.Index(accept, "image/webp") != -1 { format = ".webp" } return ctx.File("images/cover/" + ctx.Get("file") + format) }) // Favicon app.Get("/favicon.ico", func(ctx *aero.Context) string { return ctx.File("images/icons/favicon.ico") }) // Web manifest app.Get("/manifest.json", func(ctx *aero.Context) string { return ctx.JSON(app.Config.Manifest) }) // Scripts app.Get("/scripts.js", func(ctx *aero.Context) string { return ctx.File("temp/scripts.js") }) // For benchmarks app.Get("/hello", func(ctx *aero.Context) string { return ctx.Text("Hello World") }) // Let's go app.Run() }