
    KiG                     4    d dl Z d dlmZ dZddedefdZd Zy)	    N)etreei  xml_pathservicec                    | j                         }g }t        j                  |ddd      }|D ]x  \  }}|j                  j	                         dk(  s%|j                  d      }t        |j                  d            }	t        |j                  d            }
|j                  d      xs d	}t        |j                  d
            }|j                         D ci c]  }||j                  |       }}|j                  ||	|
|||t        j                  |      f       t        |      t        k\  r2|j                  d|       | j                          |j                          |j                          |j!                         W|j#                         d= |j!                         "{ |r#|j                  d|       | j                          yyc c}w )z
  Streaming import: iterparse does not load the full XML into memory.
  Supports SMS Backup & Restore-like structures where <sms ... body="..."/> is common.
  )endT)eventsrecover	huge_treesmsaddressdatetypebody 	thread_idzaINSERT INTO messages(address,date_ms,type,body,thread_id,service,raw_json) VALUES (?,?,?,?,?,?,?)Nr   )cursorr   	iterparsetaglowergetsafe_intkeysappendjsondumpslen
BATCH_SIZEexecutemanycommitcleargetprevious	getparent)connr   r   cur	to_insertcontexteventelemr   date_msmsg_typer   r   kraws                  V/mnt/media_drive2/site-root/code.jetlifecdn.com/xml-tools/sms-search/app/import_xml.pyimport_sms_xmlr.      s   
 	#) OOHXttT'  keTxx~~5 #g&)*g$((6*+hXXf#d488K01i%)YY[1Q^1c1(D)WdjjY\o^_	Y:	%
m
	
 	 jjl*NNQ *+ 0 OOi 	KKM ! 2s   Gc                 0    	 | t        |       S d S #  Y y xY w)N)int)vs    r-   r   r   0   s$    ]3q6,,s     )
sms_backup)r   lxmlr   r   strr.   r        r-   <module>r7      s)     
(3 ( (Tr6   