import compare as c, json, os, io, contextlib, time
c.VEDABASE_PDF=c.BASE_DIR/"master_corrected.pdf"
c.OUTPUT_DIR=c.BASE_DIR/"reports_master_v2"; c.OUTPUT_DIR.mkdir(exist_ok=True)
mr=json.load(open(c.BASE_DIR/"master_ranges.json"))
for k,r in mr.items():
    if k in c.BOOKS: c.BOOKS[k]["vedabase_start"]=r["vedabase_start"]; c.BOOKS[k]["vedabase_end"]=r["vedabase_end"]
keys=[k for k in mr if k!="bg"]
t0=time.time()
for i,k in enumerate(keys,1):
    try:
        with contextlib.redirect_stdout(io.StringIO()): c.compare_book(k)
        td=json.load(open(c.OUTPUT_DIR/f"{k}_diffs.json"))["stats"]["total_diffs"]
        print(f"[{i}/{len(keys)}] {k:9s} {td}",flush=True)
    except Exception as e: print(f"[{i}/{len(keys)}] {k} FAIL {e}",flush=True)
print("DONE",round(time.time()-t0),"s",flush=True)
