+
    [ij                     ~    ^ RI t ^ RIHt ^ RIHt ^ RIHtHtHtHtH	t	H
t
 ^ RIHt ^ RIHt ^ RIHt  ! R R	4      tR# )
    N)datetime)
HTMLParser)AnyDictListMappingTupleUnion)unquote)retrieve_url)prettyPrinterc                   n   a  ] tR t^t o RtRtRR/t ! R R]4      tRV 3R lR llt	V 3R	 lR
 lt
RtV tR# )torrentprojectzhttps://torrentproject.com.seTorrentProjectall0c                   z   a  ] tR t^t o V 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R	 lR
 ltRt	V t
R# )torrentproject.MyHTMLParserc                $   < V ^8  d   QhRS[ RR/# )   urlreturnNstr)format__classdict__s   "3/config/qBittorrent/nova3/engines/torrentproject.py__annotate__(torrentproject.MyHTMLParser.__annotate__   s     	8 	8 	8 	8    c                    \         P                  ! V 4       Wn        R V n        R V n        R V n        RV n        R^ R^ R^R^R^R^/V n        . V n        . V n	        V P                  4       V n        R# )	FnametorrLinkseedsleechpub_datesizeN)r   __init__r   insideResultsinsideDataDivpageComplete	spanCountinfoMapfullResDatapageResget_single_datasingleResData)selfr   s   &&r   r)   $torrentproject.MyHTMLParser.__init__   s}    %H!&D!&D %DDNAADL .0D)+DL!%!5!5!7Dr    c                6   < V ^8  d   QhRS[ S[S[3,          /# )r   r   )r   r   r   )r   r   s   "r   r   r   (   s     
	 
	T#s(^ 
	r    c                :    R RRRRRRRRRRRRV P                   RR/# )	r"   -1r$   r%   r'   link	desc_link
engine_urlr&   )r   )r3   s   &r   r1   +torrentproject.MyHTMLParser.get_single_data(   s8    TdhhD	 	r    c          	      d   < V ^8  d   QhRS[ RS[S[S[ S[S[ R3,          3,          ,          RR/# )r   tagattrsNr   )r   r   r	   r
   )r   r   s   "r   r   r   4   s@     	\ 	\s 	\4c5dCS>S8T3U 	\Z^ 	\r    c                @   R  R lp\        V4      pVR8X  d   RV! VR4      9   d   RV n        VR8X  d   VP                  RR4      R8X  d   RV n        VR8X  d)   V P                  '       d   RV! VR	4      9  d	   RV n        MIVR
8X  dC   V P                  '       d1   RVP                  RR4      8w  d   V ;P
                  ^,          un        V P                  '       d   VR8X  d   \        V4      ^ 8  d   V P                  R,          V P
                  8X  d/   RV9   d(   V P                  V! VR4      ,           V P                  R&   V P                  R,          V P
                  8X  d3   RV9   d*   V P                  V! VR4      ,           V P                  R&   R# R# R# R# R# R# )c                x    V ^8  d   QhR\         \        \        \        R3,          3,          R\        R\        /# )r   dNkeyr   )r   r   r
   )r   s   "r   r   Atorrentproject.MyHTMLParser.handle_starttag.<locals>.__annotate__5   s4     : :'#uS$Y'7"78 :s :s :r    c                 6    V P                  VR 4      pVe   V# R # ) )get)rA   rB   values   && r   getStr;torrentproject.MyHTMLParser.handle_starttag.<locals>.getStr5   s!    c2 % 1u9r9r    divnavidTrE   similarfilesgac_bbclassspanverifiedtitlear#   hrefr8   r"   r9   N)
dictr,   rF   r*   r+   r-   lenr.   r   r2   )r3   r=   r>   rH   
attributess   &&&  r   handle_starttag+torrentproject.MyHTMLParser.handle_starttag4   sV   : eJe|
D)A A$(!e|
tR 8N J%)"e| 2 2 2xvjZaGb7b%)"4#5#5#5*
W^`bHc:c!#!!!cSjSZ!^<<
+t~~=&JBV15F:v<V1VD&&v.<<'4>>9f
>R6:hh
TZA[6[D&&{3 ?S9 6Dj!r    c                $   < V ^8  d   QhRS[ RR/# )r   r=   r   Nr   )r   r   s   "r   r   r   H   s     	D 	DS 	DT 	Dr    c                   V P                   '       Eg   VR 8X  Ed|   RV n        RV n        \        V P                  4      ^ 8  EdQ   V P                  R,          R8w  Ed!   V P                  R,          R8w  Ed   V P                  R,          P                  4       R8w  d   V P                  R,          R8w  g   V P                  R,          R8w  d    V P                  R,          p\        P                  ! VR	4      p\        VP                  4       4      V P                  R&    \        V P                  4       V P                  P                  V P                  4       V P                  P                  V P                  4       V P!                  4       V n        R
# R
# R
# R
#   \         d     Li ; i  \         d    \        T P                  4        Li ; i)rJ   Fr"   r7   r'   nomer9   r8   r&   z%Y-%m-%d %H:%M:%SNr(   )r,   r+   r-   rV   r2   lowerr   strptimeint	timestamp	Exceptionr   printr0   appendr/   r1   )r3   r=   date_stringdates   &&  r   handle_endtag)torrentproject.MyHTMLParser.handle_endtagH   s|   $$$%<).D&%'DN4--.2--f5=$($6$6v$>$$F$($6$6v$>$D$D$F&$P#11+>$F'+'9'9&'AT'I!)262D2DZ2PK+3+<+<[J]+^DEHIYEZD$6$6z$B!>$1$2D2D$E !% 3 3D4F4F G $ 0 0 7 78J8J K-1-A-A-C*) 3   %  (1 !)$(!) (1 !>$)$*<*<$=!>s%   AF F, F)(F), GGc                $   < V ^8  d   QhRS[ RR/# )r   datar   Nr   )r   r   s   "r   r   r   c   s     		M 		MC 		MD 		Mr    c                   V P                   '       d   V P                  P                  4        F  w  r#V P                  V8X  g   K  TpW@P                  9   g   K,  VP                  4       R 8w  g   KC  V P                  V,          R8X  d    VP                  4       V P                  V&   Kz  VR8w  g   K  V P                  V;;,          VP                  4       ,          uu&   K  	  R# R# )rE   r7   r"   N)r+   r.   itemsr-   r2   strip)r3   ri   rB   valcurr_keys   &&   r   handle_data'torrentproject.MyHTMLParser.handle_datac   s    !!! $ 2 2 4HC~~,#&#'9'99djjlb>P#11(;tC?Czz| 2 28 <!)V!3 $ 2 28 <

 L < !5 "r    )	r/   r.   r+   r*   r,   r0   r2   r-   r   N)__name__
__module____qualname____firstlineno__r)   r1   rX   rf   ro   __static_attributes____classdictcell__r   s   @r   MyHTMLParserr      s=     	8 	8&
	 
		\ 	\(	D 	D6		M 		Mr    rx   c                *   < V ^8  d   QhRS[ RS[ RR/# )r   whatcatr   Nr   )r   r   s   "r   r   torrentproject.__annotate__n   s"      3 S T r    c                @   VP                  R R4      p\        ^ ^4       F{  pV P                   RV RV 2p\        V4      pV P	                  V P                  4      pVP                  V4       VP                  4        \        VP                  4      ^8  g   Kz   R# 	  R# )z%20+z
/browse?t=z&p=N)	replaceranger   r   rx   feedcloserV   r0   )r3   rz   r{   currPager   htmlparsers   &&&    r   searchtorrentproject.searchn   s    ||E3'aHXXJjc(<C$D&&txx0FKKLLN6>>"R' $r    c                $   < V ^8  d   QhRS[ RR/# )r   infor   Nr   )r   r   s   "r   r   r|   {   s     ' 'S 'T 'r    c                   \        V4      p\        P                  ! RV4      pV'       dV   \        VP	                  4       4      ^ 8  d6   \        VP                  ^4      4      p\        VR,           V,           4       R# R# R# )zDownloader zhref=['"].*?(magnet.+?)['"] N)r   rer   rV   groupsr   grouprb   )r3   r   r   mmagnets   &&   r   download_torrenttorrentproject.download_torrent{   s[    D!II7>QXXZ1$QWWQZ(F&3,%& %1r     N)r   )rq   rr   rs   rt   r   r"   supported_categoriesr   rx   r   r   ru   rv   rw   s   @r   r   r      s>     
)CD!3<YMz YMv ' 'r    r   )r   r   html.parserr   typingr   r   r   r   r	   r
   urllib.parser   helpersr   novaprinterr   r   r   r    r   <module>r      s+    
  " 9 9     %s' s'r    