Konfi-Castle-Kasino/main.go

88 lines
2.8 KiB
Go

package main
import (
"github.com/labstack/echo"
"github.com/labstack/echo/middleware"
"html/template"
"github.com/labstack/gommon/log"
"github.com/astaxie/session"
_ "github.com/astaxie/session/providers/memory"
"fmt"
)
//Initialize Session
var GlobalSessions *session.Manager
// initialize in init() function
func Init() {
GlobalSessions, _ = session.NewManager("memory", "kasinoadmin", 43200)
go GlobalSessions.GC()
}
func main() {
//Session init
Init()
//Config
SiteConf := initConfig()
//Startup Banner
fmt.Println("################################################################")
fmt.Println("# _ __ __ _ _____ _ _ #")
fmt.Println("# | | / / / _(_) ____ / __ \\ | | | | #")
fmt.Println("# | |/ / ___ _ __ | |_ _ / __ \\| / \\/ __ _ ___| |_| | ___ #")
fmt.Println("# | \\ / _ \\| '_ \\| _| |/ / _` | | / _` / __| __| |/ _ \\ #")
fmt.Println("# | |\\ \\ (_) | | | | | | | | (_| | \\__/\\ (_| \\__ \\ |_| | __/ #")
fmt.Println("# \\_| \\_/\\___/|_| |_|_| |_|\\ \\__,_|\\____/\\__,_|___/\\__|_|\\___| #")
fmt.Println("# \\____/ #")
fmt.Println("# #")
fmt.Println("# _ __ _ #")
fmt.Println("# | | / / (_) #")
fmt.Println("# | |/ / __ _ ___ _ _ __ ___ #")
fmt.Println("# | \\ / _` / __| | '_ \\ / _ \\ #")
fmt.Println("# | |\\ \\ (_| \\__ \\ | | | | (_) | #")
fmt.Println("# \\_| \\_/\\__,_|___/_|_| |_|\\___/ #")
fmt.Println("# #")
fmt.Println("# © 2017 Konrad Langenberg (kola-entertainments.de) #")
fmt.Println("################################################################")
//Echo init
e := echo.New()
e.HideBanner = true
//Logger
e.Use(middleware.LoggerWithConfig(middleware.LoggerConfig{
Format: "${time_rfc3339}: ${remote_ip} ${method} ${status} ${uri} - ${user_agent}\n",
}))
//Static ontent
e.Static("/assets", "assets")
//Routes
e.GET("/", showList)
e.GET("/list", getList)
e.GET("/admin", adminHandler)
e.GET("/logout", logout)
e.POST("/login", login)
e.POST("/update", update)
e.POST("/delete", deleteKonfi)
e.POST("/add", addKonfi)
//Template
t := &Template{
templates: template.Must(template.ParseGlob("tpl/*.html")),
}
e.Renderer = t
//DB init - Create tables
db := DBinit()
db.CreateTables(&Kofi{})
//Start the server
e.Logger.SetLevel(log.ERROR)
e.Start(SiteConf.Interface)
//e.Logger.Debug(e.Start(SiteConf.Interface))
}