
    Rj                        d dl Z d dlZd dlZdZdZg dZdefdeffD ]  \  ZZ e j                  dez   dz   d	
      Z	e j                  e	_         ede       edk(  reD ]  ZdeiZdD ]f  Z	 e	j!                  dez   dz         D  cg c]  } | d   	 c} Zdev rdndZer1e	j!                  dez   dz   ef      j'                         d    Zereee<   h  e ej*                  e              neD ]  ZdeiZdD ]  Ze	j!                  dez   dz         D  cg c]  } | d   	 c} Zdev s0e	j!                  def      j-                         ZesTeD cg c]>  }|j1                         D ci c]"  }| e||   e      r e||         dd n||   $ c}@ c}}ed<     e ej*                  ed              e	j7                            e j                  dez   dz   d	
      Z	e j                  e	_        dD ]  Z ede       e	j!                  dez   dz         D  cg c]  } | d   	 c} ZdD ]h  Zeev sg ZeD ]N  Z	 e	j!                  dez   dz   ez   dz    ee      f      j'                         d    Zerej;                  eeg       P es` eee       j  e	j7                          yc c} w #  Y NxY wc c} w c c}w c c}}w c c} w #  Y xY w)    Nz+/opt/struktur/youtube-research/knowledge.dbz;/opt/struktur/content-extraction/data/content_extraction.db)6   A   D   G   N   P   Z   a   d   f   u   w                        i  i%  i+  i,  i-  i3  i7  i?  KCEzfile:z?mode=roT)uriDBvideo_id)chaptersvideo_linkse2e_jobse2e_extractionstranscript_segmentsprocessing_runsgraphiti_import_queuezpragma table_info()   zselect count(*) from z where video_id=?source_video_id)
ce_sourcesce_itemszselect id,youtube_id,title,youtube_url,transcript_status,obsidian_artifact_path,source_snapshot_hash,transcript_hash,content_hash from ce_sources where source_video_id=?   r%   F)ensure_ascii)source_processing_registrysource_versionsreconciliation_decisionsr!   TABLE)	source_idsource_identityr   
youtube_idz where "z"=?)sqlite3jsonosr   r   idslabelpathconnectcRowrow_factoryprintvidouttexecutecscolfetchonendumpsfetchallrskeys
isinstancestrclosevalsappend)rxks   000*/opt/struktur/AA-043-P34-R1-reconstruct.py<module>rP      sV    /4qi7D9% JE$7??74<
*t4GKKamtE	3J 
c33 D qyy!5a!7!;<=!1=R!R'TS			)!+,??GPPRSTUa	
1CF 	C
  -c#3% vqii 4Q 6s :;<!<BB			  ~  @C  E  	F  	O  	O  	QR
rtumn_`_e_e_ghZ[j1c6J3qt9Tc?PQRSPT ThuC	v
 	CU	+,- 14 '//'!)J&40!-	l Awq991!3C789aQqT9C SBY
4 s			)!+J6s:5@#c(MVVXYZ[R
DKKR!
 E#dO 	? 	>
 D =  iu : DsO   ,J1J,
>J1J9
K''J>KK	>AK,J11J6	>KK	