Explorer
/tmp/aa043_p29_r2_preflight.py
← Zurück ↓ Download
import sqlite3, pathlib, json, urllib.request
DB='/opt/struktur/youtube-research/knowledge.db'; c=sqlite3.connect('file:'+DB+'?mode=ro',uri=True)
out={}
for t in ['videos','e2e_jobs','transcript_segments','graphiti_import_queue']:
 out[t]={'columns':[r[1] for r in c.execute('PRAGMA table_info('+t+')')], 'indexes':c.execute('PRAGMA index_list('+t+')').fetchall()}
out['counts']={q:c.execute(q).fetchone()[0] for q in ["SELECT COUNT(*) FROM e2e_jobs WHERE status='blocked_transcript_fetch'","SELECT COUNT(*) FROM videos WHERE transcript_status='retry'","SELECT COUNT(*) FROM e2e_jobs"]}
s=pathlib.Path('/opt/struktur/youtube-research/supadata_native_batch.py').read_text()
out['processor_lines']=[f'{i} {l}' for i,l in enumerate(s.splitlines(),1) if any(x in l for x in ['def candidates','e2e_jobs','transcript_status','supadata_retry','mode','reserve'])]
try:
 from dotenv import dotenv_values
 key=dotenv_values('/opt/struktur/youtube-research/.env.supadata').get('SUPADATA_API_KEY')
 req=urllib.request.Request('https://api.supadata.ai/v1/me',headers={'x-api-key':key,'Authorization':'Bearer '+key})
 with urllib.request.urlopen(req,timeout=30) as r:
  data=json.load(r); out['account']={'http':r.status,**{k:data.get(k) for k in ['plan','usedCredits','maxCredits','availableCredits']}}
except Exception as e: out['account_error']={'type':type(e).__name__,'message':str(e).splitlines()[0][:160]}
print(json.dumps(out,ensure_ascii=False,default=str))
c.close()