Persistenz implementiert + Anpassungen
All checks were successful
release-tag / release-image (push) Successful in 2m7s

This commit is contained in:
2025-05-11 11:30:52 +02:00
parent 8cd66c9f59
commit 7e21b10a6c

View File

@@ -1,6 +1,7 @@
package main package main
import ( import (
"encoding/json"
"fmt" "fmt"
"html/template" "html/template"
"net/http" "net/http"
@@ -14,6 +15,28 @@ import (
var TickCatalog []TickEntry 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 { func IncTick(xSlug string) error {
for a, b := range TickCatalog { for a, b := range TickCatalog {
if b.Slug == xSlug { if b.Slug == xSlug {
@@ -33,12 +56,12 @@ func getTick(xSlug string) string {
return strconv.FormatInt(n, 10) return strconv.FormatInt(n, 10)
} }
} }
return "-1" return "0"
} }
type TickEntry struct { type TickEntry struct {
Slug string Slug string `json:"slug"`
Count int64 Count int64 `json:"count"`
} }
func getenv(k, d string) string { func getenv(k, d string) string {
@@ -75,6 +98,15 @@ func main() {
staticDir := getenv("BLOG_STATIC_DIR", "/app/internal/web/static") staticDir := getenv("BLOG_STATIC_DIR", "/app/internal/web/static")
pagesDir := getenv("BLOG_PAGES_DIR", "/pages") pagesDir := getenv("BLOG_PAGES_DIR", "/pages")
templatesDir := getenv("BLOG_TEMPLATES_DIR", "/templates") 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{ funcs := template.FuncMap{
"now": time.Now, // jetztZeit bereitstellen "now": time.Now, // jetztZeit bereitstellen
@@ -166,4 +198,11 @@ func main() {
http.FileServer(http.Dir(staticDir))))) http.FileServer(http.Dir(staticDir)))))
http.ListenAndServe(":8080", mux) http.ListenAndServe(":8080", mux)
if err := SaveTickCatalog(ticksDir + "/ticks.json"); err != nil {
fmt.Println("Fehler beim Speichern:", err)
return
}
fmt.Println("Geladener Katalog:", TickCatalog)
} }