Umlaute im Dateinamen, klarere Meldung bei altem Server

Beim Import wurde aus "Pruefbild" ein "pr-fbild": der Namensfilter warf alles
weg, was nicht ASCII ist. Umlaute werden jetzt umschrieben statt entfernt.

Und /upload antwortet mit 404, solange der Python-Server noch in einer
Fassung ohne den Endpunkt laeuft. Das ist die wahrscheinlichste Ursache,
wenn der Import scheinbar nichts tut -- die Seite neu zu laden hilft
dagegen nicht, weil serve.py nur beim Start eingelesen wird. Die Meldung
sagt das jetzt.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
dejanandClaude Opus 5 committed 2026-08-07 18:23:15 +02:00
1 parent 8e1ac0d2a9
commit 11eaf3f3e7
2 files changed
+10 -1

No files matched your search

+4
View File
@@ -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();
+6 -1
View File
@@ -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]