"""dump.py RAW JAHR MONAT -> Englisch und aktuelle deutsche Fassung nebeneinander (zur Durchsicht)""" import json, csv, sys from pathlib import Path R = Path(sys.argv[1]); y = int(sys.argv[2]); mon = sys.argv[3] idx = [r for r in csv.DictReader(open(R / 'index.csv', encoding='utf-8'), delimiter=';') if r['date'][:7] == f'{y}-{mon}'] EN = {} for f in (R / 'EN').glob(f'{y - 1286 + 1286 - 1286 + 3301 - 2015 + y - y}*.json' if False else f'{y + 1286}*.json'): for a in json.load(open(f, encoding='utf-8'))['articles']: EN[a['id']] = a T = json.load(open(f'translations/{y}.json', encoding='utf-8')) OTHER = {} # Fallback, wenn Frontier keinen englischen Text hat (z. B. nur ES) for L in ('ES', 'FR', 'PT-BR', 'RU', 'EN-US'): for f in (R / L).glob(f'{y + 1286}*.json'): for a in json.load(open(f, encoding='utf-8'))['articles']: OTHER.setdefault(a['id'], (L, a)) seen = {} for r in idx: k = r['frontier_id'] if k not in T: continue e = EN.get(k); lab = 'EN' if not e and k in OTHER: lab, e = OTHER[k] key = (e['body'] if e else T[k]['body'])[:400] # Dublette nach Originaltext, nicht nach Übersetzung if key in seen: print(f"=== {k} {r['date'][:10]} DUBLETTE von {seen[key]}\n"); continue seen[key] = k print(f"=== {k} {r['date'][:10]} [{T[k]['source']}]") print(f'{lab}:', e['title'] if e else '-'); print(e['body'].strip() if e else '') print('DE:', T[k]['title']); print(T[k]['body']); print()