2022-01-09 21:17:05 +01:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"html/template"
|
2022-02-12 10:29:56 +01:00
|
|
|
"igar/storage"
|
2022-01-09 21:17:05 +01:00
|
|
|
"io"
|
|
|
|
"net/http"
|
|
|
|
"strings"
|
|
|
|
|
2022-02-11 19:52:56 +01:00
|
|
|
"github.com/google/uuid"
|
2022-01-09 21:17:05 +01:00
|
|
|
"github.com/labstack/echo"
|
|
|
|
//"github.com/labstack/echo/middleware"
|
|
|
|
)
|
|
|
|
|
|
|
|
type (
|
|
|
|
TemplateRenderer struct {
|
|
|
|
template *template.Template
|
|
|
|
}
|
|
|
|
)
|
|
|
|
|
|
|
|
var (
|
2022-02-12 10:29:56 +01:00
|
|
|
list *storage.EntryMap = &storage.EntryMap{
|
2022-02-12 10:35:14 +01:00
|
|
|
Filename: "/var/lib/igar/list.json",
|
2022-01-09 21:17:05 +01:00
|
|
|
}
|
|
|
|
)
|
|
|
|
|
|
|
|
// FUNCTIONS
|
|
|
|
|
|
|
|
func genName() string {
|
|
|
|
return strings.Replace(uuid.New().String(), "-", "", -1)
|
|
|
|
}
|
|
|
|
|
|
|
|
// TemplateRenderer
|
|
|
|
|
|
|
|
func (renderer *TemplateRenderer) Render(w io.Writer, name string, data interface{}, c echo.Context) error {
|
|
|
|
return renderer.template.ExecuteTemplate(w, name, data)
|
|
|
|
}
|
|
|
|
|
2022-02-12 10:29:56 +01:00
|
|
|
func IndexController(c echo.Context) (err error) {
|
|
|
|
entries, err := list.GetEntries()
|
2022-01-09 21:17:05 +01:00
|
|
|
if err == nil {
|
2022-02-12 10:29:56 +01:00
|
|
|
err = c.Render(http.StatusOK, "index.html", entries)
|
2022-01-09 21:17:05 +01:00
|
|
|
}
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
func ViewController(c echo.Context) (err error) {
|
|
|
|
uuid := c.QueryParam("uuid")
|
2022-02-12 10:29:56 +01:00
|
|
|
entry, err := list.GetEntry(uuid)
|
2022-01-09 21:17:05 +01:00
|
|
|
if err == nil {
|
|
|
|
err = c.Render(http.StatusOK, "view.html", entry)
|
|
|
|
}
|
|
|
|
if err != nil {
|
|
|
|
c.Logger().Error(err)
|
|
|
|
}
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
e := echo.New()
|
|
|
|
|
|
|
|
e.Renderer = &TemplateRenderer{
|
|
|
|
template: template.Must(template.ParseGlob("templates/*.html")),
|
|
|
|
}
|
|
|
|
|
2022-02-12 10:29:56 +01:00
|
|
|
e.GET("/", IndexController)
|
2022-01-09 21:17:05 +01:00
|
|
|
e.GET("/view", ViewController)
|
|
|
|
|
2022-02-12 10:29:56 +01:00
|
|
|
//e.GET("/list", server.ListController)
|
|
|
|
|
|
|
|
//e.GET("/rss", server.RSSController)
|
|
|
|
//e.GET("/json", server.JSONController)
|
|
|
|
//e.GET("/atom", server.AtomController)
|
2022-01-09 21:17:05 +01:00
|
|
|
|
|
|
|
e.Static("/static", "static")
|
2022-02-12 10:35:14 +01:00
|
|
|
e.Static("/img", "/var/lib/igar")
|
2022-01-09 21:17:05 +01:00
|
|
|
|
2022-02-12 10:29:56 +01:00
|
|
|
//admin := e.Group("/admin", middleware.BasicAuth(auth))
|
2022-01-09 21:17:05 +01:00
|
|
|
|
2022-02-12 10:29:56 +01:00
|
|
|
//admin.GET("/", server.AdminController)
|
|
|
|
//admin.POST("/post", server.PostController)
|
2022-01-09 21:17:05 +01:00
|
|
|
//admin.DELETE("/post", DeleteController)
|
|
|
|
|
2022-02-12 10:29:56 +01:00
|
|
|
//admin.Static("/static", "admin/static")
|
2022-01-09 21:17:05 +01:00
|
|
|
|
|
|
|
e.Logger.Fatal(e.Start(":40404"))
|
|
|
|
}
|