Ë
    ƒ‰‚j_  ã                   ó,  — d Z ddlZddlZddlZddlZddlZddlZd„ Z eej                  «      dk  r e
d«        ej                  d«       ej                  d   Z eej                  «      dkD  rej                  d   ndZ ej                  dd	«      Z ej                   e«      ZdZdZ ee«      5 ZeD �]F  Zej/                  «       ZesŒ	  ej0                  e«      Zej5                  d
«      xs ddd Zej5                  d«      xs ddd Z eej5                  d«      xs d«      Zej5                  d«      xs ddd Zej5                  d«      xs ddd Zej5                  d«      xs g Z e r ejB                  e d¬«      ndZ"ejG                  def«       ejG                  deeeeeee"f«       ejG                  d«      jI                  «       d   Z%eredd nedd Z&ejG                  de%eee&f«       edz  Z�ŒI 	 ddd«       ejS                  «        ejG                  d«      jI                  «       d   Z*ejW                  «         ejX                  e«        e
de› de› de› d e*› �«       y# e'$ rZ(edz  ZY dZ([(�ŒÌdZ([(ww xY w# 1 sw Y   ŒŠxY w)!uL   Server-side JSONL importer v2: ä¿�ç•™è¡¨æ ¼ç»“æž„(è½¬|åˆ†éš”è¡Œ)ä¸Žé“¾æŽ¥URLé    Nc                 ó®  ‡— | syt        j                  | «      } g Šˆfd„}t        j                  d|| t        j                  t        j
                  z  ¬«      } d„ }t        j                  d|| t        j                  t        j
                  z  ¬«      } t        j                  dt        d«      | t        j
                  ¬«      } t        j                  d	d| «      } t        j                  d
d| «      } t        j                  dt        d«      dz  | «      } d„ }t        ‰«      D ]!  \  }}| j                  d|› d� ||«      «      } Œ# | j                  «       S )u^   æ­£æ–‡æ¸…æ´—: ä¿�ç•™ <table> ç»“æž„è½¬ | åˆ†éš”è¡Œ, a é“¾æŽ¥è½¬ [æ–‡æœ¬](URL), å…¶ä½™è½¬æ®µè�½Ú c                 óh   •— ‰j                  | j                  d«      «       dt        ‰«      dz
  › d�S )Nr   ú@@TABLEé   ú@@)ÚappendÚgroupÚlen)ÚmÚtabless    €úimport_jsonl_v2.pyÚ_hold_tablezstrip_html.<locals>._hold_table   s.   ø€ Ø�‰�a—g‘g˜a“jÔ!Øœ˜V› Q™˜ rÐ*Ð*ó    z<table[^>]*>.*?</table>©Úflagsc                 ó¦   — t        j                  dd| j                  d«      «      j                  «       }| j                  d«      }|r	d|› d|› d�S |S )Nú<[^>]+>r   é   r   ú[z](ú))ÚreÚsubr
   Ústrip)r   ÚtxtÚhrefs      r   Ú
_hold_linkzstrip_html.<locals>._hold_link   sN   € Ü�f‰f�Z  Q§W¡W¨Q£ZÓ0×6Ñ6Ó8ˆØ�w‰w�q‹zˆÙ%(��3�%�r˜$˜˜qÐ!Ð2¨dÐ2r   z.<a[^>]+href=["\']([^"\']+)["\'][^>]*>(.*?)</a>zB</?(?:p|div|h[1-6]|li|br\s*/?|blockquote|section|article|tr)[^>]*>é
   r   z[ \t]+ú z\n{3,}r   c           	      óš  — t        j                  d| t         j                  ¬«      }g }|D ]€  }t        j                  d|t         j                  ¬«      }|D �cg c]'  }t        j                  dd|«      j	                  «       ‘Œ) }}|j                  ddj                  |«      z   dz   «       Œ‚ t        d	«      j                  |«      S c c}w )
Nz<tr[^>]*>([\s\S]*?)</tr>r   z<t[dh][^>]*>([\s\S]*?)</t[dh]>r   r   z| z | z |r   )r   ÚfindallÚ
IGNORECASEr   r   r	   ÚjoinÚchr)ÚtÚrowsÚlinesÚrÚcellsÚcs         r   Ú_restore_tablez"strip_html.<locals>._restore_table   s§   € Ü�z‰zÐ5°qÄÇÁÔNˆØˆØò 	:ˆAÜ—J‘JÐ@À!Ì2Ï=É=ÔYˆEØ@EÖF¸1”R—V‘V˜J¨¨AÓ.×4Ñ4Õ6ÐFˆEÐFØ�L‰L˜ §
¡
¨5Ó 1Ñ1°DÑ8Õ9ð	:ô �2‹w�|‰|˜EÓ"Ð"ùò Gs   Á,Cr   r   )
ÚhtmlÚunescaper   r   ÚDOTALLr"   r$   Ú	enumerateÚreplacer   )Útextr   r   r+   Úir%   r   s         @r   Ú
strip_htmlr3      s$  ø€ áØÜ�=‰=˜Ó€Dà€Fô+ô �6‰6Ð,¨k¸4ÄrÇyÁyÔSU×S`ÑS`ÑG`Ôa€Dò3ô �6‰6ÐCÀZÐQUÔ]_×]fÑ]fÔik×ivÑivÑ]vÔw€Dä�6‰6ÐWÔY\Ð]_ÓY`ÐbfÔnp×n{Ñn{Ô|€DÜ�6‰6�*˜b $Ó'€DÜ�6‰6�)˜S $Ó'€DÜ�6‰6�)œS ›W Q™Y¨Ó-€Dò#ô ˜&Ó!ò @‰ˆˆ1Ø�|‰|˜g a S¨˜O©^¸AÓ->Ó?‰ð@à�:‰:‹<Ðr   r   z+Usage: import_jsonl.py <jsonl_path> [label]r   ÚdataÚ	SEARCH_DBz/root/search.dbÚtitler   iô  Úpage_urliè  ÚcontentÚpublish_dateé   Ú	site_nameÚunknownéd   ÚattachmentsF)Úensure_asciizTDELETE FROM gov_search WHERE rowid IN (SELECT rowid FROM gov_raw WHERE page_url = ?)zšINSERT OR REPLACE INTO gov_raw (title, page_url, content, publish_date, site_name, source_url, status, attachments) VALUES (?, ?, ?, ?, ?, ?, 'synced', ?)zSELECT last_insert_rowid()zWINSERT OR REPLACE INTO gov_search(rowid, title, site_name, summary) VALUES (?, ?, ?, ?)zSELECT COUNT(*) FROM gov_rawu   âœ… z: +z errz total=)-Ú__doc__ÚjsonÚsqlite3ÚsysÚosr   r,   r3   r   ÚargvÚprintÚexitÚ
jsonl_pathÚlabelÚgetenvÚdb_pathÚconnectÚdbÚaddedÚerrorsÚopenÚfÚliner   ÚloadsÚitemÚgetr6   r7   r8   r9   r;   ÚattÚdumpsÚattachments_strÚexecuteÚfetchoneÚ	new_rowidÚsummaryÚ	ExceptionÚeÚcommitÚtotalÚcloseÚremove© r   r   ú<module>rd      s©  ðá Rß '× '× 'ò!ñF €s‡x�xƒ=�1ÒÙ	Ð
7Ô8Ø€C‡H�HˆQ„Kà�X‰X�a‰[€
Ù˜3Ÿ8™8“} qÒ(ˆ�‰�Š¨f€à
ˆ"�)‰)�KÐ!2Ó
3€Ø€W‡_�_�WÓ€Ø	€Ø	
€á	ˆ*Óð $˜Øó #ˆØ�z‰z‹|ˆÙØð	Ø�4—:‘:˜dÓ#ˆDØ—X‘X˜gÓ&Ò,¨"¨d¨sÐ3ˆEØŸ™ Ó,Ò2°°E°TÐ:ˆHÙ  §¡¨)Ó!4Ò!:¸Ó;ˆGØ ŸH™H ^Ó4Ò:¸¸C¸RÐ@ˆLØŸ™ +Ó.Ò;°)¸T¸cÐBˆIð —(‘(˜=Ó)Ò/¨RˆCÙEH˜j˜dŸj™j¨¸5ÕAÈbˆOð �J‰JÐmÐpxÐozÔ{ð �J‰Jð mØ˜ '¨<¸ÀHÈoÐ^ôð Ÿ
™
Ð#?Ó@×IÑIÓKÈAÑNˆIÙ'.�g˜d˜s‘m°E¸$¸3°KˆGØ�J‰JØiØ˜E 9¨gÐ6ôð
 �Q‰JŠEñC#÷$ðL ‡	�	„à
�
‰
Ð1Ó2×;Ñ;Ó=¸aÑ@€Ø ‡�„
à 	€‡	�	ˆ*Ô Ù ˆ�ˆw�c˜%˜  V H¨G°E°7Ð;Õ <øð ò 	Ø�a‰KŽFûð	ú÷G$ð $ús7   Â3J
ÃD/I2Ç=J
É2JÉ7JÉ<J
ÊJÊJ
Ê
J