
    *bi0                         S SK Jr  S SKJr  S SKJr  SSKJr  SSKJ	r	  SSK
Jr  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJrJr  / rSqSrS rS rS rS rS r\S 5       r\S 5       r g)    )AsyncClient)escape)quote   )LOGGER)Config)TorrentManager)new_task)get_readable_file_size)	telegraph)ButtonMaker)edit_messagesend_messageNi,  c                    #    [         R                  R                  R                  5       I S h  vN n U (       a`  U  Vs/ s H  oR                  PM     nn[         R                  R                  R                  U5      I S h  vN   [        R                  5         [        R                  (       a?  [         R                  R                  R                  [        R                  5      I S h  vN   [        R                  (       a   [        5        IS h  vN nUR                  [        R                   S35      I S h  vN nUR                  5       nS S S 5      IS h  vN   WS    Vs0 s H&  n[        U5      [        U5      R!                  5       _M(     snqS["        S'   g g  GNus  snf  GN* N N Nu NW! , IS h  vN  (       d  f       Nl= fs  snf ! [$         a%  n[&        R(                  " U S35        S q S nAg S nAff = f7f)Nz/api/v1/sitessupported_sitesAllallzN Can't fetching sites from SEARCH_API_LINK make sure use latest version of API)r	   qbittorrentsearchpluginsnameuninstall_pluginPLUGINSclearr   SEARCH_PLUGINSinstall_pluginSEARCH_API_LINKr   getjsonstr
capitalizeSITES	Exceptionr   error)
qb_pluginspluginnamesclientresponsedatasitees           /app/bot/modules/search.pyinitiate_search_toolsr.      s}    %1188@@BBJ+56::6((//@@GGG((//>>v?T?TUUU	"}}!'v/E/E.Fm,T!UU}} %} ?CCT>U>UdD	3t9//11>UE !E%L  C6G 	V
 %U %}}}  	LL#cd E		s   ,HF#HF&.HF+A'H)F.*HG F0G &F6<F2=F6G F4G (-GG !H&H.H0G 2F64G 6G<F?=G	G 
HG?:H?HHc           	      	  #    UR                  S5      (       Gag  US:X  at  [        R                  " SU  SU 35        US:X  a(  [        R                   SU  S[        R
                   3nGO	[        R                   SU S	U  S[        R
                   3nOUS
:X  aj  [        R                  " SU 35        US:X  a$  [        R                   S[        R
                   3nO[        R                   SU S[        R
                   3nOoUS:X  ai  [        R                  " SU 35        US:X  a$  [        R                   S[        R
                   3nO&[        R                   SU S[        R
                   3n [        5        IS h  vN nUR                  W5      I S h  vN nUR                  5       nS S S 5      IS h  vN   SW;   d	  US   S:X  a/  [        USU  S[        R                  U5       S35      I S h  vN   g S[        US   [        5       S3nUS
:X  a  US[        R                  U5       S3-  nOBUS:X  a  US[        R                  U5       S3-  nOUSU  S[        R                  U5       S3-  nUS   nGO~[        R                  " SU  SU 35        [        R                   R"                  R%                  X/SS 9I S h  vN n
U
R&                  n [        R                   R"                  R)                  U5      I S h  vN nUS   R(                  nUS!:w  a  OMI  [        R                   R"                  R+                  U[        S"9I S h  vN nUR*                  nUR,                  nUS:X  a*  [        USU  SUR/                  5        S35      I S h  vN   g S[        U[        5       S3nUSU  SUR/                  5        S3-  n[        R                   R"                  R1                  U5      I S h  vN   [3        XpX#5      I S h  vN n[5        5       nUR7                  S#U5        UR9                  S$5      n[        X(U5      I S h  vN   g  GN GN GN! , IS h  vN  (       d  f       GN= f GN! [         a(  n	[        U[        U	5      5      I S h  vN     S n	A	g S n	A	ff = f GN GN GNd GN  N N Nq7f)%Napi	apisearchzAPI Searching: z from r   z/api/v1/all/search?query=z&limit=z/api/v1/search?site=z&query=apitrendzAPI Trending from z/api/v1/all/trending?limit=z/api/v1/trending?site=	apirecentzAPI Recent from z/api/v1/all/recent?limit=z/api/v1/recent?site=r$   totalr   zNo result found for <i></i>
Torrent Site:- <i>z</i>z	<b>Found z</b>z) <b>trending result(s)
Torrent Site:- <i></i></b>z' <b>recent result(s)
Torrent Site:- <i>z <b>result(s) for <i>r*   zPLUGINS Searching: )patternr   categoryRunning)idlimitu	   🔎 VIEW   )
startswithr   infor   r   SEARCH_LIMITr   r   r   r   r"   minTELEGRAPH_LIMITr#   r    r	   r   r   startr:   statusresultsr4   r!   delete
get_resultr   
url_button
build_menu)keyr+   messagemethodr0   r(   r)   search_resultsmsgr,   r   	search_idresult_statusrC   dict_search_resultstotal_resultslinkbuttonsbuttons                      r-   r   r   -   s    [ KK/#fTF;<u}//00I#gV\ViViUjk//00DTF'RUQVV]^d^q^q]rsz!KK,TF34u}//00KFL_L_K`a//00FtfGTZTgTgShi{"KK*4&12u}//00I&J]J]I^_//00DTF'RXReReQfg	"}}!'C0!) %} .(N7,Cq,H"-cU2J599UY?J[[_`   c."9?KLDQC#CEIIdOCTT\]];&>uyy>OxX .se3KEIIVZOK\\dee+F3N
 	)#fTF;<%1188>>% ? 
 
 II	"0"<"<"C"C"J"J9"UUM"1%,,F"	 
 %3$>$>$E$E$M$M %N %
 
 -44+11A)#.FtGXFYY]^   #m_=>dC&se+CDOODUCVV^__((//66yAAANAADmG{D)"F
wV
,,,g %0 %}}}  	wA///	


 V
 	BA -s,  E1S4Q< QQ< QQQ0Q< ;Q<<Q< 8Q99Q< =S>BQ< ?A
S	R1
=SR4ASR7ASR:AS:R=;SR?A SSSQ< QQ< Q6$Q'%Q61	Q< <
R.R)R!R)$S)R..S4S7S:S=S?SSc           	        #    / nUS:X  a  SnOUS:X  a  SU S3nOUS:X  a  SnOSU S3n[        U S	S
9 GH0  u  pgUR                  S5      (       Ga3   SUR                  5       ;   a  USUS    S[        US   5       S3-  nSUR                  5       ;   az  US    Hj  nUSUS    SUS    S3-  nUSUS    S3-  nSUR                  5       ;   a  USUS    S3-  nMC  SUR                  5       ;   d  MY  US-  nUSUS    S 3-  nMl     US-  nGOUSUS    S3-  n US!US"    S#US$    S3-  nSUR                  5       ;   a  USUS    S%3-  nOSUR                  5       ;   a  US-  nUS[	        US   5       S&3-  nOUS-  nOUSUR
                   S[        UR                  5       S'3-  nUS[        UR                  5       S3-  nUS!UR                   S#UR                   S3-  nUR                  n	U	R                  S(5      (       a  US)[	        U	5       S&3-  nO	USU	 S%3-  n[        UR                  S*5      5      S+:  a  UR                  U5        S,nU[        :X  d  GM1    O   US,:w  a  UR                  U5        [!        US-[        U5       S.35      I S h  vN   U V
s/ s H#  n
["        R$                  " S/U
S09I S h  vN S1   PM%     nn
[        U5      S	:  a?  [!        US2[        U5       S.35      I S h  vN   ["        R&                  " X5      I S h  vN   S3US4    3$ !    GN= f!    GM  = f N Nvs  sn
f  ND N(7f)5Nr3   z<h4>API Recent Results</h4>r1   z<h4>API Search Result(s) For z</h4>r2   z<h4>API Trending Results</h4>z!<h4>PLUGINS Search Result(s) For r<   )rB   r0   r   z<code><a href='urlz'>z</a></code><br>torrentsz<b>Quality: </b>qualityz | <b>Type: </b>typez | z<b>Size: </b>sizez<br>torrentz	<a href='z'>Direct Link</a><br>magnetz<b>Share Magnet to</b> z#<a href='http://t.me/share/url?url=z'>Telegram</a><br>z<b>Seeders: </b>seedersz | <b>Leechers: </b>leechersz'>Direct Link</a><br><br>z'>Telegram</a><br><br>z</a><br>zmagnet:z:<b>Share Magnet to</b> <a href='http://t.me/share/url?url=zutf-8iX   z<b>Creating</b> z <b>Telegraph pages.</b>zMirror-leech-bot Torrent Search)titlecontentpathz<b>Editing</b> zhttps://telegra.ph/r   )	enumerater=   keysr   r   	descrLinkfileNamer   fileSize	nbSeeders
nbLeechersfileUrllenencodeappendrA   r   r   create_pageedit_telegraph)rL   rI   rJ   rK   telegraph_contentrM   indexresultsubresrR   ra   rb   s               r-   rF   rF   x   s%    +	;	-cU%8	:	-1#e<">;U##V[[]*_VE]O2fVF^>T=UUdeeC."("4!1&2C1DDTU[\bUcTddghhvf~.>dCC$5Yvi/@.AAV#WWC%6#<<C%HPXIYHZZl#mmC #5 6MC]6&>*:$??C!1&2C1DDXY_`jYkXllpqq !FKKM16)+<*==VWW!V[[]288!DU6RZK[E\D]]sttv Yv//06&//3J2K8TTC]#9&//#J"K4PPC%f&6&6%77KFL]L]K^^bccC>>Dy))STYZ^T_S``vww4&(ABBszz'"#e+$$S)CO#[ <^ by  %
#C(9$:#;;ST   ) )G	 ''7  		
 ) 	  4y1}s+<'=&>>VW
 	
 	
 &&t??? a	**_*
	
 	@s   AMBL/3L/ML/L'. L/M.L/=M>L/CM%7ML8M%L<L:
L<-M<M=MMM'L,)L//L51M:L<<MMc           
          [        5       n[        R                  5        H   u  p4UR                  USU  SU SU 35        M"     UR                  SSU  S35        UR	                  S5      $ )Ntorser  Cancel cancelr   )r   r"   itemsdata_buttonrH   )user_idrK   rS   r*   r   s        r-   api_buttonsr|      sh    mGkkm
DGG9AdV1VH"EF $GG9G"<=a      c           	        #    [        5       n[        (       dX  [        R                  R                  R                  5       I S h  vN nU H"  n[        R                  UR                  5        M$     [         H*  nUR                  UR                  5       SU  SU S35        M,     UR                  SSU  S35        UR                  SSU  S35        UR                  S5      $  N7f)	Nru   rv    pluginr   z all pluginrw   rx   r   )r   r   r	   r   r   r   rm   r   rz   r!   rH   )r{   rS   plisiteNames        r-   plugin_buttonsr      s     mG7!--44<<>>ANN166" !WWIQxj#H	
  	=>GG9G"<=a   ?s   AC#C!BC#c                   #    UR                   R                  n[        5       nUR                  R	                  5       n[
        c*  [        R                  (       d  [        US5      I S h  vN   g [        U5      S:X  a  [
        c  [        US5      I S h  vN   g [        U5      S:X  ai  UR                  SSU S35        UR                  SSU S35        UR                  S	SU S
35        UR                  S5      n[        USU5      I S h  vN   g [
        b~  [        R                  (       ai  UR                  SSU S35        UR                  SSU S35        UR                  S	SU S
35        UR                  S5      n[        USU5      I S h  vN   g [
        b"  [        US5      n[        USU5      I S h  vN   g [        U5      I S h  vN n[        USU5      I S h  vN   g  GN GNX N N_ N8 N& N7f)Nz5No API link or search PLUGINS added for this functionr<   z$Send a search key along with commandTrendingru   z	 apitrendRecentz
 apirecentrw   rx   r   Apiz
 apisearchPluginsr   zChoose tool to search:r1   zChoose site to search | API:z Choose site to search | Plugins:)	from_userr:   r   textsplitr"   r   r   r   rk   rz   rH   r|   r   )_rJ   r{   rS   rI   rT   s         r-   torrent_searchr      s    ""GmG
,,


C}V22L
 	
 	
 
SQ5=7$JKKK	SQJ'')(DEHy
&CDHy&@A##A&7$JFSSS		v44EWWIZ#@AI	'ABHy&@A##A&7$<fEEE		Wk27$BFKKK%g..7$FOOO-	
 	L 	T 	F 	L.Os   A&G8(G()*G8G+A7G8G.BG8G0(G89G2:G8G4G8"G6#G8+G8.G80G82G84G86G8c           	      "  #    UR                   R                  nUR                  nUR                  R                  R                  SS9n[        U5      S:  a  US   R                  5       OS nUR                  R                  5       nU[        US   5      :w  a  UR                  SSS9I S h  vN   g US   R                  S5      (       a<  UR                  5       I S h  vN   [        X%S   5      n[        USU5      I S h  vN   g US   S	:X  aA  UR                  5       I S h  vN   [        U5      I S h  vN n[        USU5      I S h  vN   g US   S
:w  a  UR                  5       I S h  vN   US   nUS   nUR                  S5      (       ar  Uc@  US:X  a  Sn	OUS:X  a  Sn	[        USW	 S[        R!                  U5       S35      I S h  vN   OX[        USU S[        R!                  U5       S35      I S h  vN   O)[        USU SUR#                  5        S35      I S h  vN   [%        XGX85      I S h  vN   g UR                  5       I S h  vN   [        US5      I S h  vN   g  GN GN GNt GNU GNE GN3 GN N N N_ NM N6 N$7f)Nr<   )maxsplitz
Not Yours!T)
show_alertr   r0   zChoose site:r&   cancel   r3   r   r2   r   z<b>Listing z Items...
Torrent Site:- <i>r6   z<b>Searching for <i>r5   zSearch has been canceled!)r   r:   rJ   reply_to_messager   r   rk   stripr*   intanswerr=   r|   r   r   r"   r   r!   r   )
r   queryr{   rJ   rI   r*   rT   r+   rK   endpoints
             r-   torrent_search_updater      si    oo  GmmG

"
"
'
'
-
-q
-
9CHqL#a&,,.dC::D#d1g,ll<Dl999	a		E	"	"llnW1g.7NF;;;	aH	lln%g..7NF;;;	aH	llnAwaU##{[('Hz))H"!(+HSWHYYab  
 #*3%/G		RVGXX`a  
 &se+CDOODUCVV^_   S000lln7$?@@@I 	:;.;

 	1@s   B)J+I.,1JI1"J I4!J"I7#J5I:6J
I=!J,J -A!JJ.J=J>)J'J(J;J	<JJJ(J)J1J4J7J:J=J JJJJ	JJJ)!httpxr   htmlr   urllib.parser   r_   r   core.config_managerr   core.torrent_managerr	   helper.ext_utils.bot_utilsr
   helper.ext_utils.status_utilsr   !helper.ext_utils.telegraph_helperr   #helper.telegram_helper.button_buildr   $helper.telegram_helper.message_utilsr   r   r   r"   rA   r.   r   rF   r|   r   r   r    r}   r-   <module>r      s~        ( 1 1 B 9 = M
4H-VL+^!! 
P 
P< 
+A 
+Ar}   