import sys
with open('fotograf-de-scraper/frontend/src/App.tsx', 'r') as f:
content = f.read()
# Replace the generic subject
old_subject = 'const [emailSubject, setEmailSubject] = useState("Fotos von {Kindernamen}");'
new_subject = 'const [emailSubject, setEmailSubject] = useState("Die Kindergarten-Fotos von {Kindernamen} sind da! 📸");'
# Replace the generic body
old_body = 'const [emailBody, setEmailBody] = useState("Hallo {Name Käufer},
deine Fotos sind fertig und warten auf dich! Klicke einfach auf die Links unten, um direkt zu den Galerien zu gelangen:
{LinksHTML}
Viel Spaß beim Anschauen!");'
new_body = 'const [emailBody, setEmailBody] = useState("Hallo {Name Käufer},
ich hoffe, es geht euch gut! 😊
Wir haben die wunderschönen Bilder vom Fotoshooting fertiggestellt. Die Fotos von {Kindernamen} sind wirklich ganz toll geworden und warten nun darauf, von euch entdeckt zu werden!
Klicke einfach auf den untenstehenden Link, um direkt, sicher und bequem zu eurer persönlichen Galerie zu gelangen:
{LinksHTML}
Wenn ihr Fragen habt, meldet euch gerne jederzeit bei mir.
Viel Freude beim Anschauen und Aussuchen der Erinnerungen!");'
if old_subject in content and old_body in content:
content = content.replace(old_subject, new_subject)
content = content.replace(old_body, new_body)
# We also need to add dynamic Einrichtungsname replacement to the parser
old_parser = """ let subject = emailSubject.replace(/{Kindernamen}/g, row["Kindernamen"]);
let body = emailBody
.replace(/{Name Käufer}/g, row["Name Käufer"])
.replace(/{Kindernamen}/g, row["Kindernamen"])
.replace(/{LinksHTML}/g, row["LinksHTML"])
.replace(/\\n/g, "
");"""
new_parser = """ let einrichtung = selectedJob
? selectedJob.name.replace(/\\(JOB\\d+\\)\\s*/, '').replace(/Kindergarten\\s+/gi, '').replace(/\\s+\\d{4}$/, '').trim()
: "eurer Einrichtung";
let subject = emailSubject
.replace(/{Kindernamen}/g, row["Kindernamen"])
.replace(/{Einrichtung}/g, einrichtung);
let body = emailBody
.replace(/{Name Käufer}/g, row["Name Käufer"])
.replace(/{Kindernamen}/g, row["Kindernamen"])
.replace(/{Einrichtung}/g, einrichtung)
.replace(/{LinksHTML}/g, row["LinksHTML"])
.replace(/\\n/g, "
");"""
content = content.replace(old_parser, new_parser)
# Note: We need to replace the parser in the send function too
old_sender = """ let subject = emailSubject.replace(/{Kindernamen}/g, row["Kindernamen"]);
let body = emailBody
.replace(/{Name Käufer}/g, row["Name Käufer"])
.replace(/{Kindernamen}/g, row["Kindernamen"])
.replace(/{LinksHTML}/g, row["LinksHTML"])
.replace(/\\n/g, "
");"""
content = content.replace(old_sender, new_parser)
# Add {Einrichtung} to the hint text in the UI
old_hint = 'Platzhalter: {Name Käufer}, {Kindernamen}, {LinksHTML}'
new_hint = 'Platzhalter: {Name Käufer}, {Kindernamen}, {Einrichtung}, {LinksHTML}'
content = content.replace(old_hint, new_hint)
with open('fotograf-de-scraper/frontend/src/App.tsx', 'w') as f:
f.write(content)
print("Frontend email template patched")
else:
print("Frontend code not found")