This commit is contained in:
Daniil Gentili 2023-05-01 19:39:12 +02:00
parent 345adcf479
commit d5c467c691
Signed by: danog
GPG key ID: 8C1BE3B34B230CA7
10 changed files with 880 additions and 71 deletions

View file

@ -9,27 +9,30 @@ import (
"github.com/gofiber/fiber/v2"
"github.com/gofiber/template/html"
"github.com/robfig/cron/v3"
"git.massivebox.net/ecodash/ecodash/src/ecodash"
"git.massivebox.net/ecodash/ecodash/src/tools"
)
func main() {
config, isFirstRun, err := loadConfig()
config, isFirstRun, err := ecodash.LoadConfig()
if err != nil {
log.Fatal(err)
}
if !isFirstRun {
cr := cron.New()
_, err = cr.AddFunc("@hourly", config.updateHistory)
_, err = cr.AddFunc("@hourly", config.UpdateHistory)
if err != nil {
log.Fatal(err)
}
cr.Start()
config.updateHistory()
config.UpdateHistory()
}
engine := html.New("./templates/"+config.Dashboard.Theme, ".html")
engine.AddFunc("divide", templateDivide)
engine.AddFunc("HTMLDateFormat", templateHTMLDateFormat)
engine.AddFunc("divide", tools.TemplateDivide)
engine.AddFunc("HTMLDateFormat", tools.TemplateHTMLDateFormat)
app := fiber.New(fiber.Config{
Views: engine,
@ -40,25 +43,25 @@ func main() {
app.Get("/", func(c *fiber.Ctx) error {
if isFirstRun {
c.Cookie(&fiber.Cookie{Name: "admin_username", Value: ""})
c.Cookie(&fiber.Cookie{Name: "admin_password_hash", Value: hash("")})
return config.renderAdminPanel(c)
c.Cookie(&fiber.Cookie{Name: "admin_password_hash", Value: tools.Hash("")})
return config.RenderAdminPanel(c)
}
return config.renderIndex(c)
return config.RenderIndex(c)
})
app.Get("/accuracy-notice", func(c *fiber.Ctx) error {
return c.Render("accuracy-notice", config.templateDefaultsMap(), "base")
return c.Render("accuracy-notice", config.TemplateDefaultsMap(), "base")
})
app.All("/admin", config.adminEndpoint)
app.All("/admin", config.AdminEndpoint)
app.Get("/restart", func(c *fiber.Ctx) error {
if config.isAuthorized(c) {
if config.IsAuthorized(c) {
go func() {
time.Sleep(time.Second)
os.Exit(1)
}()
return c.Render("restart", config.templateDefaultsMap(), "base")
return c.Render("restart", config.TemplateDefaultsMap(), "base")
}
return c.Redirect("./", http.StatusTemporaryRedirect)
})