From 4f88d773bc973d1654db8ae5d0d9da5b086ed1af Mon Sep 17 00:00:00 2001 From: gigirassy Date: Thu, 28 May 2026 05:57:53 +0200 Subject: [PATCH] add optional external backend --- main.go | 71 ++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 60 insertions(+), 11 deletions(-) diff --git a/main.go b/main.go index 59d8804..18f3755 100644 --- a/main.go +++ b/main.go @@ -66,6 +66,7 @@ var bookmarkKey []byte var bookmarkingEnabled bool var disableReverse bool var chunkedMode bool +var imageBackendBase string var chunkSize = 8 var chunkWorkers = 4 @@ -131,6 +132,7 @@ func init() { if chunkedMode { log.Printf("Chunked mode enabled: chunkSize=%d workers=%d", chunkSize, chunkWorkers) } + imageBackendBase = strings.TrimRight(strings.TrimSpace(os.Getenv("PINATA_IMAGE_BACKEND")), "/") } // ---------- encryption helpers (AES-GCM) ---------- @@ -542,6 +544,11 @@ func writeChunkedCards(w http.ResponseWriter, q, next string, urls []string, thu } } + +func useImageBackend() bool { + return imageBackendBase != "" +} + // Index (front) - server-rendered bookmarks and settings form (no JS) func indexHandler(w http.ResponseWriter, r *http.Request) { accent, imgScale := getThemeVars(r) @@ -654,7 +661,7 @@ func searchHandler(w http.ResponseWriter, r *http.Request) { inlineStyle := fmt.Sprintf(``, html.EscapeString(accent), html.EscapeString(accentRgba), html.EscapeString(imgScale)) // Start streaming HTML - w.Header().Set("Content-Type", "text/html; charset=utf-8") + w.Header().Set("Content-Type", "text/html; charset=utf8") _, _ = io.WriteString(w, ``+html.EscapeString(q)+` - Pinata`+inlineStyle+``) // header: inline search and Save-search form _, _ = io.WriteString(w, `
Pinata