parse_old.py

Zerlegt die alten Tagesseiten (data/pages/galnet/JJJJ/MM/TT.txt) in einzelne Meldungen → old.json.

Ablage beim Arbeiten: tools/parse_old.py. Herunterladen: auf den Dateinamen über dem Code klicken.

parse_old.py
import re,json,sys
from pathlib import Path
root=Path(sys.argv[1]); out=[]
for f in sorted(root.glob('[0-9]*/[0-9]*/*.txt')):
    y,m=f.parts[-3],f.parts[-2]; d=f.stem
    t=f.read_text(encoding='utf-8',errors='replace')
    # Blöcke: <WRAP group> ... </WRAP></WRAP>
    for g in re.split(r'<WRAP group>',t)[1:]:
        h=re.search(r'^=====\s*(.+?)\s*=====\s*$',g,re.M)
        if not h: continue
        body=g[h.end():]
        body=body.split('</WRAP>')[0].strip()
        imgs=re.findall(r'\{\{\s*([^}|?]+?\.(?:jpg|png|jpeg|gif|webp))',g,re.I)
        out.append(dict(date=f'{y}-{m}-{d}',title=h.group(1).strip(),body=body,images=[i.strip() for i in imgs],file=str(f.relative_to(root))))
json.dump(out,open(sys.argv[2],'w'),ensure_ascii=False,indent=1)
print(len(out))