"""mkpkg.py OUT YEAR:OLD:NEW [...] -- Korrekturpaket: geänderte Meldungsseiten, Korrektur-CSV, Prüfungs-/Werkzeugseiten""" import os, sys, shutil, json, glob, filecmp, csv S='/tmp/claude-0/-home-claude/412360f8-9c0b-55d1-a24e-f4646e8683bb/scratchpad' OUT=sys.argv[1]; K=f'{S}/{OUT}'; W=f'{K}/pages/ki/galnet/werkzeuge' shutil.rmtree(K, ignore_errors=True); os.makedirs(W) years=[] for a in sys.argv[2:]: y,old,new=a.split(':'); years.append(y); n=0 for root,_,fs in os.walk(f'{S}/{new}/pages/news/galnet/{y}'): for f in fs: nf=os.path.join(root,f); of=nf.replace(f'/{new}/',f'/{old}/') if not os.path.exists(of) or not filecmp.cmp(of,nf,shallow=False): d=nf.replace(f'{S}/{new}/',f'{K}/'); os.makedirs(os.path.dirname(d),exist_ok=True); shutil.copy(nf,d); n+=1 oc=f'{S}/{old}/galnet_{y}.csv' if os.path.exists(oc): old_r={r['pid']:r for r in csv.DictReader(open(oc))} rows=list(csv.DictReader(open(f'{S}/{new}/galnet_{y}.csv'))); ch=[r for r in rows if old_r.get(r['pid'])!=r] if ch: with open(f'{K}/galnet_{y}_korrektur.csv','w',newline='') as f: w=csv.DictWriter(f,list(rows[0].keys())); w.writeheader(); w.writerows(ch) else: ch=[] print(y,'Seiten',n,'CSV',len(ch)) shutil.copy('translations/review/glossar.md', f'{K}/pages/ki/galnet/glossar.txt') def page(name, title, intro, files): out=[f'====== {title} ======','',intro,'',"Herunterladen: auf den Dateinamen über dem Code klicken.",''] for path, lang in files: fn=os.path.basename(path) out += [f"===== {fn} =====", f"Ablage beim Arbeiten: ''{path}''.", '', f'', open(path, encoding='utf-8').read().rstrip('\n'), '