#!/opt/fluchtplan/venv/bin/python
"""Führt eine Testseite aus und schreibt die nachgebaute Datenbank als Export (Format ArtifactData out_dir)."""
import json, shutil, sys, time
from pathlib import Path
from playwright.sync_api import sync_playwright
seite, ziel = sys.argv[1], Path(sys.argv[2])
with sync_playwright() as p:
    b = p.chromium.launch(args=['--no-sandbox']); s = b.new_page(viewport={'width': 360, 'height': 900})
    s.goto(f'http://127.0.0.1:8765/{seite}')
    for _ in range(300):
        t = s.evaluate("document.getElementById('ergebnis')?.textContent || ''")
        if 'ENDE' in t or 'ABBRUCH' in t: break
        time.sleep(0.5)
    daten = s.evaluate('JSON.stringify(DATEN)'); b.close()
if ziel.exists(): shutil.rmtree(ziel)
for pfad, doc in json.loads(daten).items():
    teile = pfad.split('/')
    if len(teile) != 2: continue
    (ziel / teile[0]).mkdir(parents=True, exist_ok=True)
    (ziel / teile[0] / f'{teile[1]}.json').write_text(json.dumps(doc, ensure_ascii=False, indent=1), encoding='utf-8')
print(sorted(x.name + ':' + str(len(list(x.iterdir()))) for x in ziel.iterdir()))
