
    `ii                         S SK r S SKJrJrJrJrJrJr  S SKJ	r	  S SK
JrJrJr  SrSr S SKJr   " S S\5      rg!   S SKJr   N= f)	    N)dialogaddonVSlogVSPathisMatrixVSProfil)cInputParameterHandler)	QuotePlusUnquotecUtilcDbDB)dbapi2c                       \ rS rSrS rS rS S jrS rS rS!S jr	S	 r
S
 rS rS rS rS rS rS rS rS rS rS"S jrS rS rS rS rS S jrS rS rS rS rS rSr g)#r      c                    [        5       nUS:X  a  SnOSU-   S-   n [        U5      R                  S5      n [        R
                  " U5      U l        [        R                  U R                  l        U R                  R                  5       U l
        U R                  R                  S5        U R                  R                  5       c  U R                  5         U $ ! [         a    [        U5      n Nf = f!   [        SU-  5         g = f)NzMaster userzBspecial://home/userdata/addon_data/plugin.video.vstream/vstream.dbz!special://home/userdata/profiles/z+/addon_data/plugin.video.vstream/vstream.dbzutf-8zv
                SELECT name, sql FROM sqlite_master
                WHERE type='table'
                ORDER BY name;zError: Unable to access to %s)r   r   decodeAttributeErrorsqliteconnectdbRowrow_factorycursordbcurexecutefetchone_create_tablesr   )selfnamer   REALDBs       @/home/kodi/.kodi/addons/plugin.video.vstream/resources/lib/db.py	__enter__cDb.__enter__   s    z = UB4t;>kkB	 BZ&&w/F	nnV,DG"(**DGG)DJJJ  " # zz""$,##%K  	 BZF	  	1F:;s   C B C4 C10C14Dc                 |     U R                   R                  5         U R                  R                  5         g!    g= f)z!Cleanup db when object destroyed N)r   closer   )r   exc_type	exc_value	tracebacks       r"   __exit__cDb.__exit__3   s.    	JJGGMMO	s   47 ;c                    US:w  a8  U R                   R                  SU-   5        U R                  R                  5          SnU R                   R                  U5        SnU R                   R                  U5        SnU R                   R                  U5        SnU R                   R                  U5        SnU R                   R                  U5        SnU R                   R                  U5        [	        S	5        g )
N zDROP TABLE IF EXISTS zCREATE TABLE IF NOT EXISTS history (addon_id integer PRIMARY KEY AUTOINCREMENT, title TEXT, disp TEXT, icone TEXT, UNIQUE(title));zCREATE TABLE IF NOT EXISTS resume (addon_id integer PRIMARY KEY AUTOINCREMENT, title TEXT, hoster TEXT, point TEXT, total TEXT, UNIQUE(title, hoster));zCREATE TABLE IF NOT EXISTS watched (addon_id integer PRIMARY KEY AUTOINCREMENT, tmdb_id TEXT, title_id TEXT, title TEXT, siteurl TEXT, site TEXT, fav TEXT, cat TEXT, season integer, UNIQUE(title_id));zCREATE TABLE IF NOT EXISTS favorite (addon_id integer PRIMARY KEY AUTOINCREMENT, title TEXT, siteurl TEXT, site TEXT, fav TEXT, cat TEXT, icon TEXT, fanart TEXT, UNIQUE(title, site));zCREATE TABLE IF NOT EXISTS viewing (addon_id integer PRIMARY KEY AUTOINCREMENT, tmdb_id TEXT, title_id TEXT, title TEXT, siteurl TEXT, site TEXT, fav TEXT, cat TEXT, season integer, UNIQUE (title_id));zCREATE TABLE IF NOT EXISTS download (addon_id integer PRIMARY KEY AUTOINCREMENT, title TEXT, url TEXT, path TEXT, cat TEXT, icon TEXT, size TEXT,totalsize TEXT, status TEXT, UNIQUE(title, path));zTable initialized)r   r   r   commitr   )r   	dropTable
sql_creates      r"   r   cDb._create_tables;   s    ?JJ6BCGGNN
 	

:&
 	

:&
 	

:&

 	

:&
 	

:&
 	

:&!"    c                    [        5       (       do  [        U[        5      (       a   UR                  S5      nSS KnUR                  SU5      R                  SS5      n UR                  S5      nUR                  5       $ UR                  5       R                  5       nUR                  5       $ ! [         a     Nf = f!    UR                  5       $ = f)Nutf8r   NFKDasciiignorezstring-escape)	r   
isinstancestrr   r   unicodedata	normalizeencodestrip)r   datar:   s      r"   str_convcDb.str_conv   s    zz$$$;;v.D ((6==gxPD{{?3 zz| ;;='')Dzz| & 
 zz|s   B- B= -
B:9B:=Cc           
         U R                  [        US   5      5      nUS   nSnUS;  a  g  SnU R                  R                  XRX445        U R                  R                  5         [        S5        g ! [         a  nS[        U5      ;   aT  SU< S	U< S
U< SU< S3	nU R                  R                  U5        U R                  R                  5         [        S5        O[        SU< SU< 35         S nAg S nAff = f)Ntitledispzicon.png)12359z9INSERT INTO history (title, disp, icone) VALUES (?, ?, ?)zSQL INSERT history SuccessfullyUNIQUE constraint failedzUPDATE history set title = 'z', disp = 'z', icone= 'z' WHERE title = ''zSQL UPDATE history SuccessfullyzSQL ERROR INSERT, title = z, )	r?   r   r   r   r   r.   r   	Exceptionr9   )r   metarB   rC   iconexes          r"   insert_historycDb.insert_history   s     gd7m45F| 00	LBJJr4#67GGNN34 	)SV3glnrtxz  A

""2& 78E1EF	s   AA2 2
C<<A6C77C<Nc                     U(       a  SU-  nOSn U R                   R                  U5        U R                   R                  5       nU$ ! [         a  n[	        SU-  5         S nAg S nAff = f)Nz<SELECT * FROM history where disp = %s ORDER BY addon_id DESCz,SELECT * FROM history ORDER BY addon_id DESCzSQL ERROR EXECUTE, %sr   r   fetchallrK   r   r   cat
sql_select
matchedrowrO   s        r"   get_historycDb.get_history   se    WZ]]JGJ	JJz*,,.J 	)A-.	s   6A 
A*A%%A*c                    SSK Jn  U" 5       n[        5       nUR                  S5      (       a  SUR	                  S5      -  nOSn U R
                  R                  U5        U R                  R                  5         [        5       R                  [        5       R                  S5      5        UR                  5         g! [         a  n[        SU-  5         S nAgS nAff = f)	Nr   cGui
searchtextz&DELETE FROM history WHERE title = '%s'zDELETE FROM history;iYu  FFzSQL ERROR DELETE : %s)resources.lib.gui.guir]   r	   existgetValuer   r   r   r.   r   VSinfor   VSlangupdateDirectoryrK   r   )r   r]   oGuioInputParameterHandler
sql_deleterO   s         r"   del_historycDb.del_history   s    .v!7!9!''55AE[EdEdeqErsJ/J	 JJz*GGNNHOOEGNN512  " 	 )J67	 s   A5B< <
CCCc                    US   nU(       d  g US   R                  SS5      nSU;   a  US   OSn[        US   5      nSU;   a  US   OSnUS	   nUS
   nSU;   a  US   OSn	SU< SU< S3n
 U R                  R                  U
5        Sn
 U R                  R                  XX2XWXHU	45        U R                  R                  5         [        S5        US:X  a_  [        5       nSUS'   US   US
'   US    US'   UR                  U5      S!   US'   UR                  U5      S!   US'   U R                  U5        g g ! [         a  n[        SU
-   5         S nANS nAff = f! [         Gat  nS[        U5      ;   d  S[        U5      ;   d  S[        U5      ;   Ga-  S[        U5      ;   a@  U R                  R                  S5        U R                  R                  5         [        S5        S[        U5      ;   a@  U R                  R                  S5        U R                  R                  5         [        S5        S[        U5      ;   a@  U R                  R                  S5        U R                  R                  5         [        S5        U R                  R                  XX2XWXHU	45        U R                  R                  5          S nAGN[        SU-  5         S nAGNS nAff = f)"NrB   titleWatched r-   rV   rD   siteurltmdbIdsitefavseasonz&DELETE FROM watched WHERE title_id = 'z' and cat = 'rJ   SQL ERROR - zyINSERT or IGNORE INTO watched (tmdb_id, title_id, title, siteurl, site, cat, fav, season) VALUES (?, ?, ?, ?, ?, ?, ?, ?)zSQL INSERT watched Successfullyno such columnno column namedno such tablez	named catz'ALTER TABLE watched add column cat TEXTzTable recreated : watchedznamed tmdb_idz+ALTER TABLE watched add column tmdb_id TEXTznamed seasonz-ALTER TABLE watched add column season integerz%SQL ERROR INSERT watched : title = %s8   
seasonFunc	seasonUrlr   )replacer
   r   r   rK   r   r   r.   r9   r   getEpisodeTitreinsert_watched)r   rL   rB   rl   rV   rn   ro   rp   rq   rr   rN   rO   oUtils                r"   r}   cDb.insert_watched   s   WN+33C<"d]d5kDO,#+t#3hF|5k#+t#3h LXY\]	JJr"
 I	CJJrLPSZ`#abGGNN342 #:GEDK|,DK";/DO!11%8;DM#(#8#8#Fq#ID % C  	.2%&	  	C3q6)->#a&-HO_bcd_eLe#a&(JJ&&'PQGGNN$56"c!f,JJ&&'TUGGNN$56!SV+JJ&&'VWGGNN$56 

""2WTW^d'ef  =ABB+	Cs8   .D7 AE 7
EEEK'EKKKc                    US   nU(       d  gUR                  SS5      nSU;   a  US   OSnSU-  n U R                  R                  U5        U R                  R                  5       nU H(  nUS   nU(       d  M  [	        U5      [	        U5      :H  s  $    U(       a  S$ S$ ! [
         a  nS	[        U5      ;   d  S
[        U5      ;   d  S[        U5      ;   a{  U R                  5          U R                  R                  U5        U R                  R                  5       nU(       a  SOSs S nA$ ! [
         a  n[        SU-  5         S nAOS nAff = f S nAgS nAff = f)Nrl   Frm   r-   rV   rD   z+SELECT * FROM watched WHERE title_id = '%s'Trt   ru   rv   SQL ERROR %s)	r{   r   r   rT   intrK   r9   convertWatchedr   )	r   rL   rB   rV   rW   rX   r>   
matchedcatrO   s	            r"   get_watchedcDb.get_watched#  s:   ^$c2&"d]d5kBUJ
	JJz*,,.J #!%[
:z?c#h66 #
 &4050 
	3q6)->#a&-HO_bcd_eLe##%7JJ&&z2!%!4!4!6J#-458  7.:5667
	sT   AB! ;B! 
B! B! !
E+=E)?D.(E.
E8EEEEEc                 
   SnU(       a  USU-  -  nUS-  n U R                   R                  U5        U R                   R                  5       nU$ ! [         a  nS[	        U5      ;   d  S[	        U5      ;   d  S[	        U5      ;   ad  U R                  5          U R                   R                  U5        U R                   R                  5       nUs S nA$ ! [         a
  n S nAOS nAff = f[        SU-  5         S nAg S nAff = f)NzSELECT tmdb_id, * FROM watched where cat = '%s'z order by addon_id DESCrt   ru   rv   SQL ERROR : %s)r   r   rT   rK   r9   r   r   rU   s        r"   get_catWatchedcDb.get_catWatchedD  s    5
-33J//
	1JJz*,,.J 		13q6)->#a&-HO_bcd_eLe##%JJ&&z2!%!4!4!6J%%  "Z/00		1s;   6A 
D=C=6CD
C'C="C''C==Dc                    US   nU(       d  g SU;   a  US   OSnU(       a  SU-  nOSU-  n U R                   R                  U5        U R                  R                  5         g! [         a  n[        SU-  5         S nAgS nAff = f)Nrl   ro   r-   z(DELETE FROM watched WHERE tmdb_id = '%s'z)DELETE FROM watched WHERE title_id = '%s'r_   r   r   r   r   r.   rK   r   )r   rL   rB   ro   rW   rO   s         r"   del_watchedcDb.del_watched_  s    ^$#+t#3hCfLJDuLJ	/JJz*GGNN 	/.:-..	/s   5A$ $
B.BBc                     U R                   R                  S5         U R                   R                  S5         U R                   R                  S5         U R                   R                  S5         U R                   R                  S5         U R                   R                  S5         U R                   R                  S5        g ! [         a
  n S nANS nAff = f! [         a
  n S nANS nAff = f! [         a
  n S nANS nAff = f! [         a
  n S nANS nAff = f! [         a
  n S nANS nAff = f! [         a
  n S nANS nAff = f! [         a
  n S nAg S nAff = f)Nz3ALTER TABLE watched RENAME COLUMN title TO title_idz"ALTER TABLE watched add title TEXTz$ALTER TABLE watched add tmdb_id TEXTz$ALTER TABLE watched add siteurl TEXTz!ALTER TABLE watched add site TEXTz ALTER TABLE watched add fav TEXTz&ALTER TABLE watched add season integer)r   r   rK   )r   rO   s     r"   r   cDb.convertWatcheds  s?   	JJTU	JJCD	JJEF	JJEF	JJBC	JJAB	JJGH 	7  		  		  		  		  		  		  		s{   C C C4 D 2D" D9 *E 
CC
C1,C14
DD
DD"
D61D69
EE
E$E$c                    U R                  US   5      R                  SS5      n[        US   5      nUS   nUS   nSU-  n U R                  R	                  U5         S	nU R                  R	                  XbX4U45        U R                  R                  5         g ! [
         a  n[        SU-   5         S nANYS nAff = f! [
         a  nS
[        U5      ;   d  S[        U5      ;   d  S[        U5      ;   aY  U R                  S5        [        S5        U R                  R	                  XbX4U45        U R                  R                  5          S nAg [        SU-  5         S nAg S nAff = f)Nrl   rm   r-   rp   pointtotal%DELETE FROM resume WHERE title = '%s'rs   zDINSERT INTO resume (title, hoster, point, total) VALUES (?, ?, ?, ?)rt   ru   rv   resumeTable recreated : resumeSQL ERROR INSERT : %s)r?   r{   r
   r   r   rK   r   r   r.   r9   r   )r   rL   rB   rp   r   r   rN   rO   s           r"   insert_resumecDb.insert_resume  sA   d>23;;CDf&WW4u<	JJr"
	3WBJJr4#>?GGNN  	.2%&	  		33q6)->#a&-HO_bcd_eLe##H-01 

""2tE'BC  -122		3s7   B :B? 
B<$B77B<?
E'	BE"E""E'c                    U R                  US   5      nSU-  n U R                  R                  U5        U R                  R                  5       nU(       d  g[	        US   5      [	        US   5      4$ ! [
         aW  nS[        U5      ;   d  S[        U5      ;   a!  U R                  S5        [        S	5         S nAg[        S
U-  5         S nAgS nAff = f)Nrl   z2SELECT point, total FROM resume WHERE title = '%s'r_   r      rt   ru   r   r   r   )	r?   r   r   r   floatrK   r9   r   r   )r   rL   rB   rW   rX   rO   s         r"   
get_resumecDb.get_resume  s    d>23 JEQ
	,JJz*,,.J#A'z!})=== 	,3q6)->#a&-H##H-011  &*++	,s#   <A4 A4 4
C>:C=CCc                     US   nU(       d  gS[        U5      -  n U R                  R                  U5        U R                  R	                  5         g! [
         a  n[        SU-  5         S nAgS nAff = f)Nrl   r_   r   r   r
   r   r   r   r.   rK   r   )r   rL   sTitleWatchedrh   rO   s        r"   
del_resumecDb.del_resume  si    ^,<y?WW
	 JJz*GGNN 	 .:-.	 s   5A 
A5A00A5c                 x   U R                  US   5      n[        US   5      n US   R                  S5      n SnU R                  R	                  XRX1S   US   US   XAS	   45        U R
                  R                  5         [        5       R                  [        5       R                  S
5      US   S5        [        SUS   -   5        g !   US   n N= f! [         a[  nS[        U5      ;   a4  [        5       R                  [        5       R                  S5      US   5        [        SU-  5         S nAg S nAff = f)NrB   rn   rM   zUTF-8z`INSERT INTO favorite (title, siteurl, site, fav, cat, icon, fanart) VALUES (?, ?, ?, ?, ?, ?, ?)rp   rq   rV   fanartiZu  rx   z#SQL INSERT favorite Successfully - rI   i[u  r   )r?   r
   r   r   r   r   r.   r   rc   r   rd   r   rK   r9   )r   rL   rB   rn   sIconrN   rO   s          r"   insert_bookmarkcDb.insert_bookmark  s   d7m,DO,	!L''0E	sBJJr7L$u+tTY{\ahpcq#rsGGNNHOOEGNN514=!D7$w-GH	!LE  	)SV3u 5tG}E)A-.		s$   C BC C
D9AD44D9c                     Sn U R                   R                  U5        U R                   R                  5       nU$ ! [         a  n[	        S5         S nAg S nAff = f)Nz-SELECT * FROM favorite order by addon_id desczSQL ERROR EXECUTErS   r   rW   rX   rO   s       r"   get_bookmarkcDb.get_bookmark  sR    D
	JJz*,,.J 	%&	s   6; 
AAAc                    S nU(       a  SnOU(       a:  [        U5      nU R                  U5      nUR                  SS5      nSU< SU< S3nO?U(       a  [        U5      nSU-  nO'U(       a   SnX8;  a  SnX8;  a  S	U4nS
[        U5      -  nU(       a  SSKJn	   U R                  R                  U5        U R                  R                  5         U R                  R                  n
U
(       d  U(       a  U(       a  U R                  U5      $ [        5       R                  [        5       R                  S5      5        U	" 5       R!                  5         gg! ["         a  n[%        SU-  5         S nAgS nAff = f)NzDELETE FROM favorite;rJ   z''z&DELETE FROM favorite WHERE siteurl = 'z' AND title = 'z)DELETE FROM favorite WHERE siteurl = '%s')rD   7)rE   rF   4rw   0z$DELETE FROM favorite WHERE cat in %sr   r\   i\u  Tr   F)r
   r?   r{   r9   r`   r]   r   r   r   r.   total_changesdel_bookmarkr   rc   r   rd   re   rK   r   )r   sSiteUrlsMovieTitlesCatsAllrh   siteUrlrB   catListr]   updaterO   s               r"   r   cDb.del_bookmark   s:   
 0J )GMM+.EMM#u-EY`bghJ )GDwNJ  G".&"DkG?#g,NJ23

"":. ..({,,X66u 56&&(   3nz1223s    A0E AE 
E5E00E5c                    SU;  a  g SU;  a  g U R                  US   5      nU R                  US   5      R                  SS5      n[        US   5      nUS   nSU;   a  US   OSnSU;   a  US   OSnU R                  U5         S	nU R                  R                  XX2XAS
   US   XV45        U R                  R                  5         [        S5        g ! [         a  n	S[        U	5      ;   d  S[        U	5      ;   d  S[        U	5      ;   a^  U R                  S5        [        S5        U R                  R                  WXsX$US
   US   XV45        U R                  R                  5         O[        SU	-  5         S n	A	g S n	A	ff = f)NrB   rn   rl   rm   r-   rV   rr   ro   zoINSERT INTO viewing (tmdb_id, title_id, title, siteurl, site, fav, cat, season) VALUES (?, ?, ?, ?, ?, ?, ?, ?)rp   rq   zSQL INSERT viewing Successfullyrt   ru   rv   viewingzTable recreated : viewingr   )r?   r{   r
   del_viewingr   r   r   r.   r   rK   r9   r   )
r   rL   rB   rl   rn   rV   saisonsTmdbIdrN   rO   s
             r"   insert_viewingcDb.insert_viewing3  s}   $D d7m,}}T.%9:BB3KDO,5k#+t#3h$,$4$x." 		 CBJJr\'PV<Y]^cYdfi#rsGGNN34 
	3q6)->#a&-HO_bcd_eLe##I.12 

""2utTZ|]abg]hjm'vw -12
	s   AC 
FBE<<Fc                     Sn U R                   R                  U5        U R                   R                  5       nU$ ! [         a  n[	        SU-  5         S nAg S nAff = f)Nz;SELECT * FROM viewing group by title order by addon_id DESCr   rS   r   s       r"   get_viewingcDb.get_viewingU  sW    R
	JJz*,,.J 	"Z/0	s   6; 
AAAc                 2   SU;   a  US   OS nU(       d  SnSU;   a  USUS   -  -  nOSU-  nSU;   a  USUS   -  -  nSn U R                   R                  U5        U R                  R                  5         U R                  R                  nU(       dY  U(       aR  US   S:X  a/  S	U;   a)  US   R                  S	S
5      US'   U R                  U5      $ SU;   a  US	 U R                  U5      $ g! [         a  n[        SU< SU< 35         S nAU$ S nAff = f)Nrl   zDELETE FROM viewingrV   r   z)DELETE FROM viewing WHERE title_id = '%s'z and cat = '%s'r   r   _S0_STz
SQL ERROR z
, error = )	r   r   r   r.   r   r{   r   rK   r   )r   rL   r   rh   r   rO   s         r"   r   cDb.del_viewinga  s*   0>$0F^,D.J}1DK??
CmSJ}/$u+==
	@JJz*GGNNWW**F m;#%%=*@+/+?+G+Gt+TD(++D11 D=U++D11 	@
A>??	@s   BC. C. .
D8DDc                 L   U R                  US   5      n[        US   5      n[        US   5      nUS   nSn U R                  R                  XbX5US   USSS45        U R                  R                  5         [        S	5        g ! [         a  n[        S
5         S nAg S nAff = f)NrB   urlrM   pathzkINSERT INTO download (title, url, path, cat, icon, size, totalsize, status) VALUES (?, ?, ?, ?, ?, ?, ?, ?)rV   r-   r   z SQL INSERT download SuccessfullyzSQL ERROR INSERT into download)r?   r
   r   r   r   r.   r   rK   )r   rL   rB   r   r   sPathrN   rO   s           r"   insert_downloadcDb.insert_download  s    d7m,U$$v,'Vz	JJr3tE{E2rST#UVGGNN45 	23	s   A
B 
B#BB#c                     US:X  a  SnO[        US   5      nSU-  n U R                  R                  U5        U R                  R                  5       nU$ ! [         a  n[        SU-  5         S nAg S nAff = f)Nr-   zSELECT * FROM downloadr   z8SELECT * FROM download WHERE url = '%s' AND status = '0'r   )r
   r   r   rT   rK   r   )r   rL   rW   r   rX   rO   s         r"   get_downloadcDb.get_download  sv    2:1JDK(CSVYYJ	JJz*,,.J 	.:-.	s   6A 
A7A22A7c                     Sn U R                   R                  U5        U R                  R                  5         g! [         a  n[        SU-  5         S nAgS nAff = f)Nz'DELETE FROM download WHERE status = '2'r_   r   r   r   rW   rO   s      r"   clean_downloadcDb.clean_download  sO    >
	 JJz*GGNN 	 .:-.	    5: 
AAAc                     [        US   5      nSU-  n U R                  R                  U5        U R                  R	                  5         g! [
         a  n[        SU-  5         S nAgS nAff = f)Nr   zBUPDATE download SET status = '0' WHERE status = '2' AND url = '%s'r_   r   r   )r   rL   r   rW   rO   s        r"   reset_downloadcDb.reset_download  sc    U$Y\__
	 JJz*GGNN 	 .:-.	 s   5A 
A-A((A-c                 B   [        US   5      S:  a  [        US   5      nSU-  nO[        US   5      S:  a  US   nSU-  nOg  U R                  R                  U5        U R                  R                  5         g! [         a  n[        SU-  5         S nAgS nAff = f)Nr   r   z%DELETE FROM download WHERE url = '%s'r   z&DELETE FROM download WHERE path = '%s'r_   r   )lenr
   r   r   r   r.   rK   r   )r   rL   r   rW   r   rO   s         r"   del_downloadcDb.del_download  s    tE{aDK(C@3FJf"<DADHJ	 JJz*GGNN 	 .:-.	 s   5A< <
BBBc                     Sn U R                   R                  U5        U R                  R                  5         g! [         a  n[        SU-  5         S nAgS nAff = f)Nz3UPDATE download SET status = '0' WHERE status = '1'r_   r   r   r   s      r"   cancel_downloadcDb.cancel_download  sO    J
	 JJz*GGNN 	 .:-.	 r   c           	         US   nUS   nUS   nUS   nSU< SU< SU< SU< S	3	n U R                   R                  U5        U R                  R                  5         g
! [         a  n[        SU-  5         S nAg
S nAff = f)Nr   size	totalsizestatuszUPDATE download set size = 'z', totalsize = 'z', status= 'z' WHERE path = 'rJ   r_   r   r   )r   rL   r   r   r   r   rW   rO   s           r"   update_downloadcDb.update_download  s    F|F|%	hlpr{  ~D  FJ  K
	 JJz*GGNN 	 .:-.	 s   5A 
B)A<<B)r   r   )r-   )N)r-   r-   r-   F)!__name__
__module____qualname____firstlineno__r#   r*   r   r?   rP   rY   ri   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   __static_attributes__ r2   r"   r   r      s    >Q#h24 .9&vB6(J36, $0-f D
"P  
   &  r2   )reresources.lib.comaddonr   r   r   r   r   r   +resources.lib.handler.inputParameterHandlerr	   resources.lib.utilr
   r   r   SITE_IDENTIFIER	SITE_NAMEsqlite3r   r   	pysqlite2objectr   r   r2   r"   <module>r      sC    
 S S N 8 8	+(
[ & [ 	+*s	   < A