diff --git a/post1.html b/post1.html index 3f9144a..9aa43e4 100644 --- a/post1.html +++ b/post1.html @@ -2509,6 +2509,10 @@ }); if (!res.ok) { const w = await res.json().catch(() => ({})); + /* 404 heisst hier fast immer: der Python-Server laeuft noch in einer + Fassung ohne /upload. Die Seite neu zu laden hilft dagegen nicht -- + serve.py wird nur beim Start eingelesen. */ + if (res.status === 404) throw new Error("Server kennt /upload nicht · ./serve.sh neu starten"); throw new Error(w.error || ("HTTP " + res.status)); } const { pfad } = await res.json(); diff --git a/serve.py b/serve.py index e07988a..317827d 100755 --- a/serve.py +++ b/serve.py @@ -133,7 +133,12 @@ class Handler(http.server.SimpleHTTPRequestHandler): if endung not in BILD_ENDUNGEN: self._json(400, '{"error":"kein Bildformat"}') return - # Aus dem Stamm wird ein unverfaenglicher Dateiname, der Rest faellt weg. + # Aus dem Stamm wird ein unverfaenglicher Dateiname. Umlaute werden + # umschrieben statt weggeworfen, sonst wird aus "pruefbild" ein + # "pr-fbild" und der Name sagt nichts mehr. + for a, b in (("ä", "ae"), ("ö", "oe"), ("ü", "ue"), ("Ä", "Ae"), + ("Ö", "Oe"), ("Ü", "Ue"), ("ß", "ss")): + stamm = stamm.replace(a, b) stamm = re.sub(r"[^A-Za-z0-9._-]+", "-", stamm).strip("-.") or "bild" stamm = stamm[:80]