From e8ba7f7390779ce94986d69511d6c3010eeba7bc Mon Sep 17 00:00:00 2001 From: Florian Walther Date: Wed, 11 Feb 2026 20:12:09 +0100 Subject: [PATCH] mein bereinigt --- main.go | 85 ++++++++++++++++++++++++--------------------------------- 1 file changed, 36 insertions(+), 49 deletions(-) diff --git a/main.go b/main.go index 6240438..95b8f81 100644 --- a/main.go +++ b/main.go @@ -3,13 +3,13 @@ package main import ( "crypto/rand" "encoding/json" + "fmt" "html/template" - "path/filepath" "log" "net" - "fmt" "net/http" "os" + "path/filepath" "strconv" "strings" "sync" @@ -17,13 +17,11 @@ import ( ) const ( - passwordLength = 32 - chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" - startTimeKey contextKey = "startTime" + passwordLength = 32 + chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" + startTimeKey contextKey = "startTime" ) -type contextKey string - var ( debug = false templates = make(map[string]*template.Template) @@ -32,26 +30,7 @@ var ( mu sync.Mutex ) -func initConfig() { - // 1. Counter-Pfad auslesen - if envFile := os.Getenv("COUNTER_FILE"); envFile != "" { - counterFile = envFile - log.Printf("counterFile st to %s, by ENV\n", envFile) - // Prüfen, ob das Verzeichnis für die Datei existiert - dir := filepath.Dir(counterFile) - if _, err := os.Stat(dir); os.IsNotExist(err) { - log.Printf("WARNUNG: Verzeichnis %s existiert nicht. Counter wird evtl. fehlschlagen.", dir) - } - } - - // 2. Debug-Modus auslesen (String zu Bool) - envDebug := strings.ToLower(os.Getenv("DEBUG")) - if envDebug == "true" || envDebug == "1" { - debug = true - log.Println("DEBUG-Modus ist aktiviert") - } -} - +type contextKey string type responseWriter struct { http.ResponseWriter statusCode int @@ -66,6 +45,24 @@ func newResponseWriter(w http.ResponseWriter) *responseWriter { return &responseWriter{w, http.StatusOK} // Default 200 OK } +func initConfig() { + if envFile := os.Getenv("COUNTER_FILE"); envFile != "" { + counterFile = envFile + log.Printf("counterFile st to %s, by ENV\n", envFile) + // Prüfen, ob das Verzeichnis für die Datei existiert + dir := filepath.Dir(counterFile) + if _, err := os.Stat(dir); os.IsNotExist(err) { + log.Printf("WARNUNG: Verzeichnis %s existiert nicht. Counter wird evtl. fehlschlagen.", dir) + } + } + + envDebug := strings.ToLower(os.Getenv("DEBUG")) + if envDebug == "true" || envDebug == "1" { + debug = true + log.Println("DEBUG-Modus ist aktiviert") + } +} + func LoggingMiddleware(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { start := time.Now() @@ -141,20 +138,17 @@ func IncrementPasswordCount() { } func loadTemplates() { - // 1. FuncMap definieren funcMap := template.FuncMap{ "getAppVersion": func() string { return AppVersion }, "getPassCount": func() int { return GetPasswordCount() }, - "isDebug": func() bool { return debug }, + "isDebug": func() bool { return debug }, "dt": func(startTime time.Time) string { duration := time.Since(startTime) - // Gibt die Zeit in Millisekunden mit 2 Nachkommastellen aus, z.B. "1.45ms" - return fmt.Sprintf("%.2fms", float64(duration.Nanoseconds())/1e6) + // Gibt die Zeit in Millisekunden mit 2 Nachkommastellen aus, z.B. "1.45ms" + return fmt.Sprintf("%.2fms", float64(duration.Nanoseconds())/1e6) }, } - // 2. Templates mit FuncMap laden - // Wir nutzen New("base.html"), da base.html meist das Haupt-Layout definiert templates["index.html"] = template.Must(template.New("base.html").Funcs(funcMap).ParseFiles( "templates/base.html", "templates/index.html", @@ -212,13 +206,6 @@ func passwordAPIHandler(w http.ResponseWriter, r *http.Request) { w.Write([]byte(password)) } -type PageData struct { - Title string - StartTime time.Time - Request *http.Request - Data interface{} // Deine eigentlichen Seitendaten -} - func indexHandler(w http.ResponseWriter, r *http.Request) { if debug { log.Printf("call indexHandler: Request %s %s\n", r.Method, r.URL) @@ -232,16 +219,16 @@ func indexHandler(w http.ResponseWriter, r *http.Request) { password := generatePassword() data := struct { - Password string - StartTime time.Time - Request *http.Request + Password string + StartTime time.Time + Request *http.Request RealIP string - }{ - Password: password, - StartTime: startTime, - Request: r, - RealIP: getClientIP(r), - } + }{ + Password: password, + StartTime: startTime, + Request: r, + RealIP: getClientIP(r), + } if debug { log.Printf("prepare template for index\n")