TEST Kerstin: Unterschied zwischen den Versionen

Aus Bündnis für Familie Tübingen.
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
from pathlib import Path
import re, html, json
src = Path("/mnt/data/Eingefügter Text(8).txt")
src = Path("/mnt/data/Eingefügter Text(8).txt")
text = src.read_text(encoding="utf-8")
text = src.read_text(encoding="utf-8")

Version vom 17. August 2026, 10:35 Uhr

src = Path("/mnt/data/Eingefügter Text(8).txt") text = src.read_text(encoding="utf-8")

events = re.findall(

r'

\s*
(.*?)
\s*

',

   text, flags=re.S

)

def parse_info(title):

   title = html.unescape(title)
   parts = {}
   for key in ["Uhrzeit", "Zielgruppe", "Treffpunkt", "Beschreibung"]:
       m = re.search(
           rf'{key}:\s*(.*?)(?=\n\s*(?:Uhrzeit|Zielgruppe|Treffpunkt|Beschreibung):|$)',
           title, re.S
       )
       if m:
           parts[key] = " ".join(m.group(1).split())
   return parts

date_map = [

   ("2026-10-06","Oktober 2026",6), ("2026-10-08","Oktober 2026",8),
   ("2026-10-09","Oktober 2026",9), ("2026-10-09","Oktober 2026",9),
   ("2026-10-09","Oktober 2026",9), ("2026-10-21","Oktober 2026",21),
   ("2026-10-22","Oktober 2026",22), ("2026-10-31","Oktober 2026",31),
   ("2026-11-05","November 2026",5), ("2026-11-05","November 2026",5),
   ("2026-11-09","November 2026",9), ("2026-11-10","November 2026",10),
   ("2026-11-10","November 2026",10), ("2026-11-11","November 2026",11),
   ("2026-11-15","November 2026",15), ("2026-11-17","November 2026",17),
   ("2026-11-19","November 2026",19), ("2026-11-21","November 2026",21),
   ("2026-11-24","November 2026",24), ("2026-11-24","November 2026",24),
   ("2026-11-25","November 2026",25), ("2026-11-26","November 2026",26)

] assert len(events) == len(date_map)

records=[] for i, ((date, month, day), (title, visible)) in enumerate(zip(date_map, events), 1):

   info=parse_info(title)
   records.append({
       "id":i, "date":date, "month":month, "day":day,
       "title":" ".join(html.unescape(visible).split()),
       "time":info.get("Uhrzeit",""),
       "audience":info.get("Zielgruppe",""),
       "place":info.get("Treffpunkt",""),
       "description":info.get("Beschreibung","")
   })

data_json=json.dumps(records,ensure_ascii=False,indent=2)

html_out = """<!doctype html> Familienangebote – Oktober & November 2026

Familienangebote – Oktober & November 2026

Alle im Kalender vorhandenen Termine sind enthalten. Unter dem Kalender finden Sie sämtliche Informationen zu jedem einzelnen Angebot.

Alle Angebote im Überblick

Hier finden Sie zu jedem Termin Datum, Uhrzeit, Zielgruppe, Treffpunkt und die vollständige Beschreibung.

"""

html_out = html_out.replace("__DATA__", data_json) out_path = Path("/mnt/data/Familienangebote_Oktober_November_2026_mobile.html") out_path.write_text(html_out, encoding="utf-8") print(f"Fertig: {out_path}") print(f"Erhaltene Termine: {len(records)}")