import sqlite3,json,os
paths=['/opt/struktur/reports/backfill-backups-20260717T181315Z/knowledge.db','/opt/struktur/reports/obsidian-transcript-backup-20260717T193928Z/knowledge.db','/opt/struktur/reports/aa043-p34/20260827T223847Z/knowledge.db.pre-migration.bak']
ids=[54,65,68,71,78,80,90,97,100,102,117,119,128,134,140,195,196,251,256,258,293,299,300,301,307,311,319]
out=[]
for p in paths:
c=sqlite3.connect('file:'+p+'?mode=ro',uri=True)
vids=set(r[0] for r in c.execute('select id from videos'))
out.append({'path':p,'size':os.path.getsize(p),'fk_count':len(c.execute('pragma foreign_key_check').fetchall()),'integrity':c.execute('pragma integrity_check').fetchone()[0],'videos':len(vids),'missing_ids_present':[i for i in ids if i in vids],'chapters':c.execute('select count(*) from chapters').fetchone()[0],'video_links':c.execute('select count(*) from video_links').fetchone()[0]})
c.close()
print(json.dumps(out,ensure_ascii=False))