
    `i0                         S SK r S SKrS SKrS SKrS SKJr  S SKJr  S SKJ	r	  S SK
JrJrJrJr  S SKJr   " S S5      rg)	    N)cGui)cRechercheHandler)cInputParameterHandler)progressVSlogaddonwindow)Quotec                   b    \ rS rSrS rSS jrSS jrS rS rS r	S r
S	 rS
 rS rSS jrSrg)cSearch   c                 "    [        5       U l        g N)r   addonsselfs    D/home/kodi/.kodi/addons/plugin.video.vstream/resources/lib/search.py__init__cSearch.__init__   s    g    c                 *    U(       dD  [        5       nUR                  S5      nU(       d  UR                  S5      nUR                  S5      nUR                  SS5      R                  5       n[        R
                  " SSU5      nU R                  X5      n[        U5      S:X  a  g[        U5      S	:g  nU R                  X@R                  [        U5      U/5      nU R                  U5        [        5       nU(       a/  UR                  S
U R                  R                  S5      U-  S5        S=pUR!                  5       n
U
R#                  5       nU H  nU[        U5      -  nM     U R%                  5         U(       Ga  U(       a  [&        R(                  " S5        [+        5       R-                  U R                  R                  S5      S-   U-   US:  S9nU H  nUS   nXR/                  5       ;  a  M  X   n[        U5      S:X  a  M2  U(       a%  U	S	-  n	UR                  X< SUS   < S3SU-  5        U HD  nUR1                  X5        UR3                  US   US   5        UR5                  5       (       d  MC    M     M     UR7                  U5        OUR                  S
5        S[        l        UR;                  5         g! [<         aF  n[?        S[A        U5      -   5        [B        RD                  " 5         U RG                  5          S nAgS nAff = f)N
searchtextsMovieTitlesCat: z +r   T   globalSearchiu  z
search.pngi  i|u  z - 2   large
identifierz. [COLOR olive]namez[/COLOR]zsites/%s.png
guiElementparamsfileszError with searchGlobal: )$r   getValuereplacestripresub_initSearchlen_launchSearch_pluginSearchr
   _finishSearchr   addTextr   VSlanggetSearchResultvalues_progressClosexbmcsleepr   VScreatekeysVSupdate	addFolder
iscanceledVScloseCONTENTsetEndOfDirectory	Exceptionr   str	traceback	print_exc_progressForceClose)r   sSearchTextr   oInputParameterHandlerlistPluginsmultiSource
listThreadoGuitotalcountsearchResultsr4   resultprogressMetapluginpluginIdresultserrors                     r   searchGlobalcSearch.searchGlobal   s   H	')?)A&4==lK""8"A"A-"PK-66v>%--c37==?K&&sK8K**;=K;1$ k*a/K++K9K9KeT_N`bmMnoJz*6D^T[[-?-?-F-TVbcE 002M"))+F V$ !! JJsO'z224;;3E3Ee3Lu3TWb3bjortjt2u)F%l3H'9'9';; +5G7|q( "
XPUW]^dWe/f!/(!:< #*$--lBvl';VH=MN'2244!	 #* *( $$\2 ^,"DL""$   	'-E
:;!$$&&	's&   B#K &GK :AK 
L<LLc                 <    [        5       R                  US9U l        g )Nr    )r   r8   	progress_)r   r!   s     r   _progressInitcSearch._progressInita   s    !,,5,9r   c                    [        5       R                  5       nSnUR                  5       nU H  nU[        U5      -  nM     SnXPR                  R                  S5      U-  -  nUS-  nXPR                  R                  S5      SR                  U R                  SS 5      -  -  n[        U R                  5      S:  a  US-  nU R                  R                  U R                  U R                  US5        g )	Nr   
iy  iy  z,    z, ...T)r   r3   r4   r-   r   r2   joinlistRemainingPluginsrW   r:   progressTotal)r   rM   numberResultr4   rN   messages         r   _progressUpdatecSearch._progressUpdated   s    ..0%%'FCK'L KK&&u-<=4KK&&u-4;T;TUVWX;Y1Z[\t(()A-wG0B0BGTRr   c                 N    U R                   R                  U R                   5        g r   rW   r=   r   s    r   r5   cSearch._progressCloser   s    t~~.r   c                 8    U R                   R                  5         g r   re   r   s    r   rD   cSearch._progressForceCloseu   s     r   c                 z    [        5       nUR                  U5        UR                  U5        UR                  5       $ r   )r   setTextsetCatgetAvailablePlugins)r   
searchText	categorieoHandlers       r   _getAvailablePluginscSearch._getAvailablePluginsx   s3    $&$	"++--r   c                     US:X  a  [         R                  " SSU5      nU R                  X5      nU(       d  / $ [        U5      U l        U R                  U R                  S:  5        U Vs/ s H  oDS   PM	     snU l        [        5       R                  5         U$ s  snf ! [         aH  n[        S[        U5      -   5        [        R                  " 5         U R                  5         / s S nA$ S nAff = f)N4z S\d+ r   r#   zError when search is initiate: )r*   r+   rp   r-   r_   rX   r^   r   resetSearchResultr@   r   rA   rB   rC   rD   )r   rm   	searchCatrG   rP   rS   s         r   r,   cSearch._initSearch~   s    	CVVGR<
33JJK	!$[!1Dt11A56FQ(RkFk(RD%F$$& )S  	3c%j@A!$$&I		s4   7B! 2B! ,B:!B! B! !
C3+=C.(C3.C3c           	      :   [        S5      R                  SS5        / nU R                  S:  aQ  U HI  n[        R                  " X%S   [        U/U-   5      S9nUR                  5         UR                  U5        MK     U$ U R                  US   US   US   5        U$ )Nu'  searchtruer   r#   )targetr#   argsr   )	r	   setPropertyr_   	threadingThreadtuplestartappendr/   )r   rG   targetFunctionargsListrI   rP   threads          r   r.   cSearch._launchSearch   s     	u!!(F3
!%"))Vn[`bhailtat[uv!!&) &  {1~x{HQKHr   c                 l    U H  nUR                  5         M     [        S5      R                  SS5        g )Nry   rz   false)r]   r	   r~   )r   rI   r   s      r   r0   cSearch._finishSearch   s+     FKKM ! 	u!!(G4r   c                     [        SUS   -  US   /S9n[        XAS   S   5      nUS   S   nSU;   a  U[        U5      -  nOU[        U5      -   nU" U5        U(       a.  U R                  R	                  US   5        U R                  5         [        S	[        US   5      -   5        g ! [         a*  n[        US   S
-   [        U5      -   S-   5         S nAg S nAff = f)Nzresources.sites.%sr"   )fromlistrz   r   r   z%sr#   zLoad Search: z: search failed ())
__import__getattrrA   r^   removerb   r   r@   )	r   rP   rE   updateProcesspluginsfunction	urlSearchsUrles	            r   r/   cSearch._pluginSearch   s    	M !5|8L!LX^_kXlWmnGwx(8(;<Hx(+Iy  3{#33 3{#33TN))00@$$&/C|(<$==> 	M&&)<<s1vEKLL	Ms   B'B* *
C4 CC)r   r^   r_   rW   N)rt   rt   )T)F)__name__
__module____qualname____firstlineno__r   rT   rX   rb   r5   rD   rp   r,   r.   r0   r/   __static_attributes__ r   r   r   r      s=    KZ:S/!.,5Mr   r   )rB   r   r6   r*   resources.lib.gui.guir   &resources.lib.handler.rechercheHandlerr   +resources.lib.handler.inputParameterHandlerr   resources.lib.comaddonr   r   r   r	   resources.lib.utilr
   r   r   r   r   <module>r      s3       	 & D N A A $lM lMr   