2016-11-09 11:32:19 +00:00
package main
import (
"io/ioutil"
2016-11-09 13:11:49 +00:00
"github.com/aerogo/aero"
2016-11-12 16:40:16 +00:00
"github.com/animenotifier/notify.moe/components"
2016-11-23 03:44:28 +00:00
"github.com/animenotifier/notify.moe/pages/airing"
2016-11-19 14:54:31 +00:00
"github.com/animenotifier/notify.moe/pages/anime"
"github.com/animenotifier/notify.moe/pages/forum"
2016-11-19 18:02:33 +00:00
"github.com/animenotifier/notify.moe/pages/forums"
2016-11-19 14:54:31 +00:00
"github.com/animenotifier/notify.moe/pages/genre"
"github.com/animenotifier/notify.moe/pages/genres"
2016-11-22 03:34:59 +00:00
"github.com/animenotifier/notify.moe/pages/posts"
2016-11-20 10:26:11 +00:00
"github.com/animenotifier/notify.moe/pages/profile"
2016-11-22 03:34:59 +00:00
"github.com/animenotifier/notify.moe/pages/search"
2016-11-19 14:54:31 +00:00
"github.com/animenotifier/notify.moe/pages/threads"
2016-12-06 03:36:31 +00:00
"github.com/animenotifier/notify.moe/pages/users"
2016-11-09 11:32:19 +00:00
)
var app = aero . New ( )
func main ( ) {
2016-11-28 16:06:00 +00:00
// CSS
2016-11-27 14:28:22 +00:00
app . SetStyle ( components . CSS ( ) )
2016-11-09 11:32:19 +00:00
2016-12-02 15:23:05 +00:00
// HTTPS
2016-12-06 03:36:31 +00:00
app . Security . Load ( "security/fullchain.pem" , "security/privkey.pem" )
2016-12-02 15:23:05 +00:00
2016-11-28 16:06:00 +00:00
// Layout
2016-11-09 11:32:19 +00:00
app . Layout = func ( ctx * aero . Context , content string ) string {
2016-11-12 16:40:16 +00:00
return components . Layout ( content )
2016-11-09 11:32:19 +00:00
}
2016-11-28 16:06:00 +00:00
// Ajax routes
2017-06-01 13:38:08 +00:00
app . Ajax ( "/" , func ( ctx * aero . Context ) string {
return ctx . HTML ( "ARN 4.0 is currently under construction.<br><a href='https://paypal.me/blitzprog' target='_blank' rel='noopener'>Support the development</a>" )
} )
2016-11-22 03:34:59 +00:00
app . Ajax ( "/anime" , search . Get )
2016-11-19 14:54:31 +00:00
app . Ajax ( "/anime/:id" , anime . Get )
app . Ajax ( "/genres" , genres . Get )
app . Ajax ( "/genres/:name" , genre . Get )
2016-11-19 18:02:33 +00:00
app . Ajax ( "/forum" , forums . Get )
2016-11-19 14:54:31 +00:00
app . Ajax ( "/forum/:tag" , forum . Get )
app . Ajax ( "/threads/:id" , threads . Get )
2016-11-22 03:34:59 +00:00
app . Ajax ( "/posts/:id" , posts . Get )
2016-11-20 10:26:11 +00:00
app . Ajax ( "/user/:nick" , profile . Get )
2016-11-23 03:44:28 +00:00
app . Ajax ( "/airing" , airing . Get )
2016-12-06 03:36:31 +00:00
app . Ajax ( "/users" , users . Get )
2016-11-27 14:28:22 +00:00
2017-06-01 13:38:08 +00:00
app . Get ( "/manifest.json" , func ( ctx * aero . Context ) string {
return ctx . JSON ( app . Config . Manifest )
} )
2016-11-28 16:06:00 +00:00
// Scripts
scripts , _ := ioutil . ReadFile ( "temp/scripts.js" )
js := string ( scripts )
app . Get ( "/scripts.js" , func ( ctx * aero . Context ) string {
ctx . SetHeader ( "Content-Type" , "application/javascript" )
return js
} )
// For testing
app . Get ( "/hello" , func ( ctx * aero . Context ) string {
return ctx . Text ( "Hello World" )
} )
// Let's go
2016-11-09 11:32:19 +00:00
app . Run ( )
}