
    *bi                         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  \
S 5       rSS jrS rg)    )ElementTree)ClientSession   )LOGGER)Config)new_task)get_readable_file_size)	telegraph)ButtonMaker)edit_messagesend_messagec                   #    UR                   R                  5       n[        U5      S:X  a  [        US5      I S h  vN   g SR	                  USS  5      R                  5       n[        USU S35      I S h  vN n [        U5      I S h  vN nU(       d.  [        US5      I S h  vN   [        R                  " SU 35        g [        X45      I S h  vN n[        5       nUR                  SU5        UR                  5       n[        US	U S
3U5      I S h  vN   g  N N N N} NR N! [         a9  n[        R                  " SU< 35        [        US5      I S h  vN     S nAg S nAff = f7f)N   zAPlease provide a search query. Example: `/nzbsearch movie title`. zSearching for 'z'...zNo results found.z#No results found for search query: ResultszSearch results for 'z' are available herezError in hydra_search: zSomething went wrong.)textsplitlenr   joinstripsearch_nzbhydrar   r   infocreate_telegraph_pager   
url_button
build_menu	Exceptionerror)	_messagekeyqueryitemspage_urlbuttonsbuttones	            /app/bot/modules/nzb_search.pyhydra_searchr(      sY    
,,


C
3x1}O
 	
 	
 	HHSW##%E OE7$*GHHG=%e,,w(;<<<KK=eWEF.u<<-9h/##%"5')=>
 	
 	
'	
 I,< =	

  =.qe457$;<<<=s   9E/D:E/6D7E/<D) 
D!D) %D#&D) E/D) D%AD) D'D) E/E/!D) #D) %D) 'D) )
E,3)E'EE'"E/'E,,E/c                 2  #    [         R                   S3n[         R                  SU US.nSS0n[        5        IS h  vN n UR	                  UUUS9 IS h  vN nUR
                  S:X  aa  UR                  5       I S h  vN n[        R                  " U5      nUR                  S5      sS S S 5      IS h  vN   sS S S 5      IS h  vN   $ [        R                  " S	UR
                   35        [        R                  " S
UR                  5       I S h  vN  35         S S S 5      IS h  vN   S S S 5      IS h  vN   g  GN N N N N N7 N" N! , IS h  vN  (       d  f       O= f! [        R                   a*    [        R                  " S5         S S S 5      IS h  vN    g [         a5  n	[        R                  " SU	< 35         S n	A	S S S 5      IS h  vN    g S n	A	ff = fS S S 5      IS h  vN    g ! , IS h  vN  (       d  f       g = f7f)Nz/apisearch)apikeytqlimitz
User-AgentzrMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3)paramsheaders   z.//itemz(Failed to search NZBHydra. Status Code: zResponse Text: z!Failed to parse the XML response.zError in search_nzbhydra: )r   HYDRA_IPHYDRA_API_KEYr   getstatusr   ET
fromstringfindallr   r   
ParseErrorr   )
r!   r.   
search_urlr/   r0   sessionresponsecontentrootr&   s
             r'   r   r   .   s    OO$D)J&&	F 	  KG '	{{ #   ??c)$,MMO3G==1D<<	2    >x>OP X]]_/D.EFG   4  0E    }} 	LL<=' (  	LL5aU;<- (	) sZ  ;HEHG=E-EE-$E E*E+E-7E	8E-<HE	HAEEE!E-,E-E-1H<E=HE-E	E-HEE-HE*	EE*	&E-)G=*E--*G(G=H#F&$H*	G(3G#G=HGH#G((G=+H6G97H=HHHHc                 z  #    Sn[        US S  Vs/ s H=  nUR                  S5      b$  [        UR                  S5      R                  5      OSU4PM?     snSS S9n[	        US5       H  u  nu  pcUR                  S	5      b  UR                  S	5      R                  OS
nUR                  S5      b  UR                  S5      R                  OSn[        U5      n	UU SU SU SU SU	 S3
-  nM     [        R                  " SU  S3US9I S h  vN n
[        R                  " SU  35        SU
S    3$ s  snf  N*7f)Nz<b>Search Results:</b><br><br>d   sizer   Tc                     U S   $ )Nr    )xs    r'   <lambda>'create_telegraph_page.<locals>.<lambda>_   s    ad    )reverser    r   titlezNo Title AvailablelinkzNo Link Availablez. z<br><b><a href='z8'>Download URL</a> | <a href='http://t.me/share/url?url=z-'>Share Download URL</a></b><br><b>Size:</b> uN   <br>━━━━━━━━━━━━━━━━━━━━━━<br><br>zSearch Results for '')rI   r=   z#Telegraph page created for search: zhttps://telegra.ph/path)
sortedfindintr   	enumerater	   r
   create_pager   r   )r!   r"   r=   itemsorted_itemsidx
size_bytesrI   download_urlrA   r<   s              r'   r   r   T   s    .G ds	

 $ 04yy/@/LDIIf%**+RS $	
 
L $-\1#=j yy!- IIg##% 	 yy , IIf""$ 	
 &j1e2eW '.(`am`n o 6 "YZ	
 $>( **$UG1- H KK5eW=> &!1 233I	
>s   D;AD4B9D;D9+D;N)2   )	xml.etreer   r6   aiohttpr    r   core.config_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   r   rC   rG   r'   <module>ra      s@    ' !  ( 1 B 9 = M 
= 
=@#L'4rG   