14 lines
1.2 KiB
Python
14 lines
1.2 KiB
Python
import pathlib,sqlite3,json,collections
|
|
root=pathlib.Path('/home/ps/huobao-video-cleanup');out=root/'historical-20261112';cfg=json.loads((root/'config.json').read_text())
|
|
approved=json.loads((root/'historical-approved.json').read_text());ids={r['id']:r['task'] for r in approved};results=[]
|
|
for b in cfg['bridges']:
|
|
with sqlite3.connect('file:'+b['database']+'?mode=ro',uri=True) as db:
|
|
db.row_factory=sqlite3.Row
|
|
for r in db.execute('select id,status,attempts,error,manifest from video_cleanup_acks'):
|
|
if r['id'] not in ids:continue
|
|
results.append({'task':ids[r['id']],'id':r['id'],'bridge':b['name'],'status':r['status'],'attempts':r['attempts'],'error':r['error']})
|
|
(out/'cleanup-status.json').write_text(json.dumps(results,indent=2))
|
|
print(json.dumps({'approved':len(approved),'acknowledged':len(results),'counts':dict(collections.Counter(r['status'] for r in results)),'enqueueDone':(out/'enqueue-done.json').exists(),'errors':[r for r in results if r['error']]}))
|
|
if (out/'enqueue-results.json').exists():
|
|
enqueued=json.loads((out/'enqueue-results.json').read_text());print(json.dumps({'prepared':sum(r['enqueued'] for r in enqueued),'blocked':[r for r in enqueued if not r['enqueued']]}))
|