fix: strip dates/UUIDs in filenames even when adjacent to underscores

Word-boundary (\b) anchors don't fire next to underscores, so
already-processed names like 2026-07-24_2026-07-24-<uuid>_30x40 kept
their doubled date prefix. Drop \b; match dates/hex globally.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XNQ8ghPfzAfsyVYd6HgFb6
This commit is contained in:
2026-07-24 08:13:36 +00:00
parent 70f3904d0e
commit efcb889c96
+3 -2
View File
@@ -97,9 +97,10 @@ const GENERIC = new Set(['', 'foto', 'photo', 'bild', 'image', 'img', 'telegram'
* Datumspräfixe, UUIDs und lange Hex-Ketten entfernen, damit keine Doppelungen entstehen. */ * Datumspräfixe, UUIDs und lange Hex-Ketten entfernen, damit keine Doppelungen entstehen. */
function cleanMotif(name: string | null): string { function cleanMotif(name: string | null): string {
let s = (name || '').replace(/\.[^.]+$/, ''); let s = (name || '').replace(/\.[^.]+$/, '');
s = s.replace(/\b\d{4}-\d{2}-\d{2}\b/g, ' '); // Datum // Ohne \b arbeiten — Wortgrenzen greifen an Unterstrichen nicht (…_2026-07-24…).
s = s.replace(/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/gi, ' '); // UUID s = s.replace(/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/gi, ' '); // UUID
s = s.replace(/\b[0-9a-f]{16,}\b/gi, ' '); // lange Hex-Ketten s = s.replace(/\d{4}-\d{2}-\d{2}/g, ' '); // Datum (auch mehrfach)
s = s.replace(/[0-9a-f]{16,}/gi, ' '); // lange Hex-Ketten
return slugify(s); return slugify(s);
} }