From 7e21b10a6c6adabb64e3d78a3fff2ee3ca6a5bd8 Mon Sep 17 00:00:00 2001 From: jbergner Date: Sun, 11 May 2025 11:30:52 +0200 Subject: [PATCH] Persistenz implementiert + Anpassungen --- cmd/blog/main.go | 45 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 42 insertions(+), 3 deletions(-) diff --git a/cmd/blog/main.go b/cmd/blog/main.go index af5f19a..8c1d4fc 100644 --- a/cmd/blog/main.go +++ b/cmd/blog/main.go @@ -1,6 +1,7 @@ package main import ( + "encoding/json" "fmt" "html/template" "net/http" @@ -14,6 +15,28 @@ import ( var TickCatalog []TickEntry +func SaveTickCatalog(filename string) error { + file, err := os.Create(filename) + if err != nil { + return err + } + defer file.Close() + + encoder := json.NewEncoder(file) + encoder.SetIndent("", " ") + return encoder.Encode(TickCatalog) +} + +func LoadTickCatalog(filename string) error { + file, err := os.Open(filename) + if err != nil { + return err + } + defer file.Close() + + return json.NewDecoder(file).Decode(&TickCatalog) +} + func IncTick(xSlug string) error { for a, b := range TickCatalog { if b.Slug == xSlug { @@ -33,12 +56,12 @@ func getTick(xSlug string) string { return strconv.FormatInt(n, 10) } } - return "-1" + return "0" } type TickEntry struct { - Slug string - Count int64 + Slug string `json:"slug"` + Count int64 `json:"count"` } func getenv(k, d string) string { @@ -75,6 +98,15 @@ func main() { staticDir := getenv("BLOG_STATIC_DIR", "/app/internal/web/static") pagesDir := getenv("BLOG_PAGES_DIR", "/pages") templatesDir := getenv("BLOG_TEMPLATES_DIR", "/templates") + ticksDir := getenv("BLOG_TICKS_DIR", "/ticks") + + TickCatalog = nil + if err := LoadTickCatalog(ticksDir + "/ticks.json"); err != nil { + fmt.Println("Fehler beim Laden:", err) + return + } + + fmt.Println("Geladener Katalog:", TickCatalog) funcs := template.FuncMap{ "now": time.Now, // jetzt‑Zeit bereitstellen @@ -166,4 +198,11 @@ func main() { http.FileServer(http.Dir(staticDir))))) http.ListenAndServe(":8080", mux) + + if err := SaveTickCatalog(ticksDir + "/ticks.json"); err != nil { + fmt.Println("Fehler beim Speichern:", err) + return + } + + fmt.Println("Geladener Katalog:", TickCatalog) }