From ff045c90d0b2237f4b2fa32286b973071c0207b1 Mon Sep 17 00:00:00 2001 From: Floke Date: Fri, 15 May 2026 21:06:29 +0000 Subject: [PATCH] fix(competitor-analysis): final migration fixes and documentation updates --- fotograf-de-scraper/frontend/src/App.tsx | 9 +++------ patch_cleaning.py | 18 ++++++++++++++++++ patch_cleaning_release.py | 19 +++++++++++++++++++ 3 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 patch_cleaning.py create mode 100644 patch_cleaning_release.py diff --git a/fotograf-de-scraper/frontend/src/App.tsx b/fotograf-de-scraper/frontend/src/App.tsx index 3974f39d5..758acfaeb 100644 --- a/fotograf-de-scraper/frontend/src/App.tsx +++ b/fotograf-de-scraper/frontend/src/App.tsx @@ -202,10 +202,7 @@ function App() { const childrenNames = parts[2] ? parts[2].trim() : "Euren Kindern"; const kindergartenName = selectedJob ? selectedJob.name - .replace(/\(JOB\d+\)\s*/, '') - .replace(/Kindergarten\s+/gi, '') // Remove "Kindergarten" prefix - .replace(/\s+\d{4}$/, '') // Remove year at the end - .trim() + .replace(/\(JOB\d+\)/gi, '').replace(/Kindergarten/gi, '').replace(/\d{4}/g, '').replace(/\s+/g, ' ').trim() : "dem Kindergarten"; let subject = "Eure Bilder vom Kindergarten-Fotoshooting"; @@ -227,7 +224,7 @@ function App() { return reminderResult.map(row => { let einrichtung = selectedJob - ? selectedJob.name.replace(/\(JOB\d+\)\s*/, '').replace(/Kindergarten\s+/gi, '').replace(/\s+\d{4}$/, '').trim() + ? .replace(/\(JOB\d+\)/gi, '').replace(/Kindergarten/gi, '').replace(/\d{4}/g, '').replace(/\s+/g, ' ').trim() : "eurer Einrichtung"; let subject = emailSubject .replace(/{Kindernamen}/g, row["Kindernamen"]) @@ -730,7 +727,7 @@ function App() { const emailsToSend = reminderResult.map(row => { let einrichtung = selectedJob - ? selectedJob.name.replace(/\(JOB\d+\)\s*/, '').replace(/Kindergarten\s+/gi, '').replace(/\s+\d{4}$/, '').trim() + ? .replace(/\(JOB\d+\)/gi, '').replace(/Kindergarten/gi, '').replace(/\d{4}/g, '').replace(/\s+/g, ' ').trim() : "eurer Einrichtung"; let subject = emailSubject .replace(/{Kindernamen}/g, row["Kindernamen"]) diff --git a/patch_cleaning.py b/patch_cleaning.py new file mode 100644 index 000000000..f34b447a8 --- /dev/null +++ b/patch_cleaning.py @@ -0,0 +1,18 @@ +import sys + +with open('fotograf-de-scraper/frontend/src/App.tsx', 'r') as f: + content = f.read() + +# Robust cleaning logic +new_cleaning = ".replace(/\\(JOB\\d+\\)/gi, '').replace(/Kindergarten/gi, '').replace(/\\d{4}/g, '').replace(/\\s+/g, ' ').trim()" + +# Old cleaning pattern (multi-line) +old_pattern = """selectedJob.name.replace(/\\(JOB\\d+\\)\\s*/, '').replace(/Kindergarten\\s+/gi, '').replace(/\\s+\\d{4}$/, '').trim()""" + +if old_pattern in content: + content = content.replace(old_pattern, new_cleaning) + with open('fotograf-de-scraper/frontend/src/App.tsx', 'w') as f: + f.write(content) + print("Cleaning logic updated") +else: + print("Old cleaning pattern not found") diff --git a/patch_cleaning_release.py b/patch_cleaning_release.py new file mode 100644 index 000000000..bc8fdf33b --- /dev/null +++ b/patch_cleaning_release.py @@ -0,0 +1,19 @@ +import sys + +with open('fotograf-de-scraper/frontend/src/App.tsx', 'r') as f: + content = f.read() + +new_cleaning = ".replace(/\\(JOB\\d+\\)/gi, '').replace(/Kindergarten/gi, '').replace(/\\d{4}/g, '').replace(/\\s+/g, ' ').trim()" + +old_pattern = """.replace(/\\(JOB\\d+\\)\\s*/, '') + .replace(/Kindergarten\\s+/gi, '') // Remove "Kindergarten" prefix + .replace(/\\s+\\d{4}$/, '') // Remove year at the end + .trim()""" + +if old_pattern in content: + content = content.replace(old_pattern, new_cleaning) + with open('fotograf-de-scraper/frontend/src/App.tsx', 'w') as f: + f.write(content) + print("Cleaning logic updated for release feature") +else: + print("Old cleaning pattern not found")