
    +i                         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\	5      r
 " S S	5      r\S
:X  a  \" 5       r\R                  S5        gg)    )retrieve_url)
HTMLParser)prettyPrinter)Queue)Threadc                   .   ^  \ rS rSrU 4S jrS rSrU =r$ )PrettyWorker   c                 .   > [         TU ]  5         Xl        g )N)super__init__queue)selfr   	__class__s     //app/qBittorrent/data/nova3/engines/uniondht.pyr   PrettyWorker.__init__   s    
    c                       [        U R                  R                  SS95        U R                  R                  5         M?  !    g = f)N   )timeout)r   r   get	task_doner   s    r   runPrettyWorker.run   sB    djjnnQn78 JJ  " s   "A A)r   )__name__
__module____qualname____firstlineno__r   r   __static_attributes____classcell__r   s   @r   r	   r	      s    # #r   r	   c                   D    \ rS rSrSrSrSS0r " S S\5      rSS jr	S	r
g
)uniondht   UnionDHTzhttp://uniondht.orgall c                   @   ^  \ rS rSrU 4S jrS rS rS rS rSr	U =r
$ )uniondht.UnionDHTParser   c                 |  > [         TU ]  5         Xl        U R                  5       U l        SU l        [        5       U l        [        U R                  5      U l	        SU l
        SU l        SU l        SU l        SU l        SU l        SU l        SU l        SU l        SU l        SU l        SU l        SU l        SU l        g )Nr   TF)r   r   
engine_urldefault_torrent_infotorrent_infototal_resultsr   print_queuer	   print_workerfind_total_resultsfind_torrentfind_desc_link	find_name	find_link
find_seedsfind_leech_class
find_leechparse_total_results
parse_name
parse_sizeparse_seedsparse_leechprint_result)r   urlr   s     r   r    uniondht.UnionDHTParser.__init__    s    G!O $ 9 9 ;D!"D$wD ,T-=-= >D&*D# %D"'D"DN"DN#DO$)D!#DO',D$#DO#DO$D$D %Dr   c                 *    SSSSSU R                   SS.$ )Nr(   z-1)linknamesizeseedsleechr-   	desc_link)r-   r   s    r   r.   ,uniondht.UnionDHTParser.default_torrent_info6   s*    D4RVfjfufu  EG  H  Hr   c                    U R                   (       a2  US:X  a+  [        U5      nSU;   a  US   S:X  a  SU l         SU l        g g g g U R                  (       aB  US:X  a;  [        U5      nSU;   a)  US   R	                  S5      (       a  SU l        SU l        g g g g U R
                  (       aa  US	:X  aZ  [        U5      nS
U;   aH  US
   R	                  S5      (       a.  U R                  US
   -   U R                  S'   SU l        SU l        g g g g U R                  (       a  US:X  a  SU l        SU l	        g g U R                  (       av  US:X  a  SU l
        SU l	        g US	:X  aZ  [        U5      nS
U;   aH  US
   R	                  S5      (       a.  U R                  US
   -   U R                  S'   SU l
        SU l        g g g g U R                  (       aA  US:X  a:  [        U5      nSU;   a(  US   R                  S5      S:w  a  SU l        SU l        g g g g U R                  (       aA  US:X  a:  [        U5      nSU;   a(  US   R                  S5      S:w  a  SU l        SU l        g g g g U R                   (       a  US:X  a  SU l        SU l        g g g )NpclassfloatRFTtridtorahrefz/topicrI   bwbrz/dl.rD   tdseedrH   )r3   dictr;   r4   
startswithr5   r-   r/   r6   r<   r7   r=   r8   findr>   r9   r:   r?   )r   tagattrs
attributess       r   handle_starttag'uniondht.UnionDHTParser.handle_starttag9   s   &&#:!%eJ*,%g.(:6;D37;D4 ; -  ""$;!%eJz)%d+66u==05D-26D/ > *  $$#:!%eJ+%f-88BB=A__zZ`Oa=aD--k:27D/-1DN C ,  #:%*DN&*DO  %<%*DN&*DOCZ!%eJ+%f-88@@8<*U[J\8\D--f5-2DN.2DO A ,   $;!%eJ*,%g.33F;rA.3DO/3D, B -  &&$;!%eJ*,%g.33G<B49D1.2DO C -  #:&+DO'+D$  !r   c                    U R                   (       aS  UR                  S5      S   R                  S5      S   R                  5       n[        U5      U l        SU l         SU l        g U R                  (       a4  U R                  S==   UR                  5       -  ss'   SU l        SU l        g U R                  (       a<  UR                  SS	5      R                  5       U R                  S
'   SU l	        SU l        g U R                  (       a,  UR                  5       U R                  S'   SU l        SU l        g U R                  (       a,  UR                  5       U R                  S'   SU l        SU l        g g )N:   (r   FTrE       r(   rF   rG   rH   )r;   splitstripintr0   r4   r<   r/   r7   r=   replacer8   r>   r9   r?   r@   )r   datar0   s      r   handle_data#uniondht.UnionDHTParser.handle_datar   s    '' $

3 2 8 8 =a @ F F H%(%7"+0($(!!!&)TZZ\9)"'!%,0LL,D,J,J,L!!&)"'"&!!-1ZZ\!!'*#( (,%!!-1ZZ\!!'*#( $(! "r   c                     U R                   (       aI  U R                  R                  U R                  5        U R	                  5       U l        SU l         SU l        g g )NFT)r@   r1   putr/   r.   r4   )r   r\   s     r   handle_endtag%uniondht.UnionDHTParser.handle_endtag   sK        $$T%6%67$($=$=$?!$)!$(!	 !r   )r-   r5   r:   r9   r7   r6   r8   r4   r3   r?   r<   r>   r=   r;   r1   r@   r2   r/   r0   )r   r   r   r   r   r.   r_   rk   ro   r    r!   r"   s   @r   UnionDHTParserr*      s#    	&,	H7	,r	).	) 	)r   rq   c                    U R                  U R                  5      nUR                  R                  5         SnSn U R                   SU SU 3n [	        U5      nUR                  U5        US-  nXSR                  :  a  US-  nUS:  a  OOOMU  UR                  R                  5         UR                  5         g !    M0  = f)Nrc   r   z/tracker.php?nm=z&start=2      )
rq   rA   r2   startr   feedr0   r1   joinclose)r   whatcatparserpage_numbertorrent_count
search_urlretrieved_pages           r   searchuniondht.search   s    $$TXX.!!# HH:%5dV7=/RJ!-j!9N+ RM333q # $   	!s   B; ;C  N)r'   )r   r   r   r   rE   rA   supported_categoriesr   rq   r   r    r   r   r   r$   r$      s*    D
C!2;o) o)br   r$   __main__ubuntuN)helpersr   html.parserr   novaprinterr   r   r   	threadingr   r	   r$   r   enginer   r   r   r   <module>r      sQ   
 ! " %  #6 #J JZ zZF
MM( r   