From efcb889c96bdbb2c3352cb3c813a204d1ee49abe Mon Sep 17 00:00:00 2001 From: Till Heidrich Date: Fri, 24 Jul 2026 08:13:36 +0000 Subject: [PATCH] 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-_30x40 kept their doubled date prefix. Drop \b; match dates/hex globally. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01XNQ8ghPfzAfsyVYd6HgFb6 --- src/lib/pipeline.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/lib/pipeline.ts b/src/lib/pipeline.ts index e958c6c..f9b8ad7 100644 --- a/src/lib/pipeline.ts +++ b/src/lib/pipeline.ts @@ -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. */ function cleanMotif(name: string | null): string { 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(/\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); }