
    "Dj                     N    S SK r S SKJr  S SKJr   " S S\5      r " S S5      rg)    N)HTTPBasicAuth)dumpsc                       \ rS rSrSrg)TorrServerError    N)__name__
__module____qualname____firstlineno____static_attributes__r       Z/home/rurouni/addon-audit/build/ultimate-nondebrid/resources/lib/modules/torrserver_api.pyr   r      s    r   r   c                       \ rS rSrSS jrS rS rS rS r\	S 5       r
\	S 5       rSS	 jrS
 rS rS rSS jrSS jrS rSrg)TorrServerAPI   c                     SR                  U(       a  SOSX5      U l        X0l        X@l        U(       a   [	        U R                  U R                  5      OS U l        [        R                  " 5       U l        g )Nz
{}://{}:{}httpshttp)	format	_base_url	_username	_passwordr   _authrequestsSession_session)selfhostportusernamepasswordssl_enableds         r   __init__TorrServerAPI.__init__   sP    %,,WQU\!!FN]4>>4>>BTX
 ((*r   c                     U R                   U-   nU R                  (       a$  U R                  R                  X R                  SS9$ U R                  R                  USS9$ )N   authtimeout)r*   )r   r   r   get)r   pathurls      r   _getTorrServerAPI._get   sO    nnt#::==$$Szz2$FF}}  b 11r   c                     U R                   U-   nU R                  (       a*  U R                  R                  " U4U R                  SS.UD6$ U R                  R                  " U4SS0UD6$ )Nr'   r(   r*   )r   r   r   post)r   r,   kwargsr-   s       r   _postTorrServerAPI._post   s[    nnt#::==%%cQ

BQ&QQ}}!!#<r<V<<r   c                 ^    [        U[        5      (       a  U(       d  [        S5      eUS   $ U$ )NzTorrServer returned empty listr   )
isinstancelistr   )r   datas     r   
_normalizeTorrServerAPI._normalize   s,    dD!!%&FGG7Nr   c                 J    U R                  UR                  5       5      nUS   $ )Nhash)r9   json)r   responseresults      r   _extract_hashTorrServerAPI._extract_hash&   s     1f~r   c                 N     U R                  S5      R                  S:H  $ !    g= f)N/echos   uptimeF)r.   contentr   s    r   aliveTorrServerAPI.alive*   s+    	99W%--::	s     $c                 d     U R                  S5      R                  R                  5       $ !    g= f)NrC   unknown)r.   rD   decoderE   s    r   versionTorrServerAPI.version1   s/    	99W%--4466	s   (+ /c                 `    U R                  U R                  S[        SXX4S.5      SS0S95      $ )N	/torrentsadd)actionlinktitleposter
save_to_dbContent-Typeapplication/jsonr8   headers)r@   r3   r   )r   magnetrR   rS   saves        r   
add_magnetTorrServerAPI.add_magnet8   sG    !!JJ{eV%+A B');<  
 	
r   c                 Z    U R                  S[        SS05      SS0S9R                  5       $ )NrN   rP   r7   rU   rV   rW   r3   r   r=   rE   s    r   torrentsTorrServerAPI.torrentsA   s9    zz+&)*#%78  
 $&	r   c                 \    U R                  S[        SUS.5      SS0S9R                  5       $ )NrN   r+   rP   r<   rU   rV   rW   r^   r   r<   s     r   get_torrent_infoTorrServerAPI.get_torrent_infoG   s9    zz+%67#%78  
 $&	r   c                 \    U R                  S[        SUS.5      SS0S9R                  5       $ )NrN   removerb   rU   rV   rW   r^   rc   s     r   remove_torrentTorrServerAPI.remove_torrentM   s9    zz+(D9:#%78  
 $&	r   c                 $    SU R                   X4-  $ )Nz %s/stream?hash=%s&index=%d&link=r   r   r<   file_ids      r   get_stream_urlTorrServerAPI.get_stream_urlS   s    1T^^T4SSSr   c                 $    SU R                   X4-  $ )Nz%s/play?hash=%s&file_id=%drk   rl   s      r   play_torrentTorrServerAPI.play_torrentV   s    +t~~t.MMMr   c                     U R                  U5      n[        U[        5      (       a  U(       a  US   n[        U[        5      (       a  UR	                  S/ 5      $ / $ )Nr   
file_stats)rd   r6   r7   dictr+   )r   r<   infos      r   	get_filesTorrServerAPI.get_filesY   sL    $$T*dD!!d7D-7d-C-Ctxxb)KKr   )r   r   r   r   r   N)z	127.0.0.1i   ry   F)ry   ry   T)r   )r	   r
   r   r   r$   r.   r3   r9   r@   propertyrF   rK   r[   r_   rd   rh   rn   rq   rw   r   r   r   r   r   r      si    +2=    
TNLr   r   )r   requests.authr   r=   r   	Exceptionr   r   r   r   r   <module>r}      s*     ' 	i 	RL RLr   