
SD8ec           @   s   d  d l  Z  d  d l Z d  d l Z d  d l m Z d  d l m Z d  d l m Z y  d  d l	 m
 Z
 e Z e Z Wn e k
 r e Z n Xd d d     YZ d S(	   iN(   t   addon(   t   cRequestHandler(   t   cUtil(   t
   HTMLParsert   Cryptc           B   s   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d d  Z d   Z	 d	 d
 d  Z
 d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   s   d |  _  d d d d d d d d	 d
 d d d d d d d d d d d d d d d d d d d d d g |  _ d  |  _ d  |  _ d! |  _ d" |  _ d# |  _ d  S($   Ns   chmo.:ABCDEGIKLMNOPRSTUWYbpstuxt>   Wq97wQmdlPOJBGvNnbxcDHzFj2gkYURftEKV163A5MeSp0r8IXoZTyiuCLh4ast>   KdSiCM8nf9tIbwDzH04X325O67mRuBFNWkQvVTEcpexGy1agZYqAPLsUolJjrht>   9Y6kURti4gzhCIGwZM0PpBXuoVcl3e5Ky7fNFSTjms8AbHErxWDO2dnLaJQvq1t>   AfEeszp0ZRgJuqtyGOokvFjhHPrVb4cB2NIXnU6KxaS8dlQ57TLCi39wMWY1Dmt>   yBhlVjFDA1EKYuoGZ2NqnxUesdMS3Ofp0arzwtRIc8kb9JPQ4WH5Tvg6iCX7mLt>   wTfLtya01MnzeYSW9d4FoHcNkJZCvXQ3bgiGpEu825RrjP7OVKUxDqAIlsBh6mt>   ButrYenv6fX9NmCUI3Rs2V7hTAWHDkKglLc50jFQOpSPqy8w1EiZ4abJGodMzxt>   2gcSr0w8YeiXM4sAd6uxthnbqJ9BpQO7ZzKG3HTFUIVjlkEvL1oWRNmDyC5afPt>   R3ExPNnUhDyujmK4LAMVd52vIZtplqiHragzoekJ1TSb9W6GcOYfFBC0X87Qswt>   ZgtAmxakYKD0zpcsqLT9wHndP5B4Ir2huCRFQfb8M67UlVN3eGyvOEjWSJoiX1t>   YZt86WeN3ECKHA1x9vdhF4jzISL2RGurgpPsDwlJ7n0mOaBoyMUVcfib5TkXqQt>   uhl8iYHO6poTIvgDQ904PayfcrZ1J5zkmREFLVqBsUdNMxj7XCnGwtbW3AeKS2t>   VaU8utB2lSwpNq0yHhF7RMTJncDbIZYXs9dAiCzmj613QxOEW4PgfGL5oKvrekt>   zOFWr7JetVh0yN6vslDxn24fwHukXmEUj5qCSTRbgiYQPIZAM1aGL9dB8oKc3pt>   kM1AUuqnNfrKWRj0tOzm7C9lYShZGcQBL5J4DyF3wXT2aEd8VvoPHpbiexgsI6t>   9HYjEcLTutQpI0rO3M75ZvwA4GFK2koqzhUiCny6xNSdmRfJegDaVBXbs1PW8lt>   0UScdanhjeNVLrFXpx3wOD7ikZ4PBsmzJM8QI5RoyqWAtfEvY1l926TuHKCgGbt>   Bb3cNFeDkW5fwvVJm2QzgPiUL9nTZE4apdMSIqHhlxYrjC0AoK81uXRsOtGy76t>   n4tmQckyLRd13vPebl9EzhBa0MKXGj7NUf26CH8r5AFYWOopuxSDZwsiVIqJgTt>   ceQ68PDBs4huny23trq7ClvFWiAKHzZ1bgURwo9pXIOxdLNYVSkEfa0GJ5jmMTt>   jxMyhCUpStFgzs81lBvrXEOHAK6PbwiRDNd4ZTJ2oI03Lk9mucaY5V7WnQefGqt>   j4vcoE9lfpNwTsiDRQCdUbYu5k28JBWH7SeZrqyh3L6PxKGAXVOnm1tFIMazg0t>   Xk4teWwfzEBR9bHuUZoJ3Y0NxQO8phmGT1aFiyncj7KLqvPIrAlDsSC256dgVMt>   mWKyZVEilfpHD752LJRGvQuqIe0MawOnP81BFz69khdCSUsXjc4NYg3xrtboTAt>   8LzXWwKhl2oGdTYAM6yIaJ3bBce4fsg9rUuQktCxpi7VD0OZPnvFNSEHqmRj15t>   kopQbKsUMz4FCn0aqwyNAc23DlET7GWSfmd1IHO8PtevxrV6ZLghjYRXBJu5i9t>   rz5wTkpAKgYH32OuRl4nD0yNQva186FM7eJiScBIXhbVsdUE9oGqxPCtjLmWfZt>   H5KQUnLCvgWSYOka3PFAjhJ0cw61z2yR8tqmMXIlsupeZfoVNxT74EirdbDBG9t>   zvlEitNwd0bPqasYDArjgnJKIOoCSp589mM2TFy6WZk1RuxGBQL3hX7cHfeVU4t>   d5hjmCsA34nZu9pV76Sbz1NRYO8iFGlTLcMqUxHBgKvofXawDytIkeEWQPrJ02i    s!   https://anotepad.com/note/read/%ss   https://rentry.co/%s/raws3   .*<div class="plaintext *">(?P<txAnote>.+?)</div>.*(   t   st   tabKeyt   numRott   posTablet   adrPbit   adrPbi2t   motifAnotepad(   t   self(    (    s   C:\dev\Crypt\pasteCrypt.pyt   __init__"   s     														c   
      C   s   |  j  |  } |  j |  } t |  j |  } | j d  | j d d  | j   } t j |  j	 | t j
 t j B } | s g  SyO | j d  } t s t | d  } n  t   j |  } |  j | |  } Wn t k
 r }	 g  } n X| S(   Ni   s   Content-Types0   application/x-www-form-urlencoded; charset=UTF-8t   txAnotes   utf-8(   t   _decryptNumPastet	   _numDecalR   R'   t
   setTimeoutt   addHeaderEntryt   requestt   ret   matchR)   t	   MULTILINEt   DOTALLt   groupt   py3t   unicodeR   t   unescapet   _decryptt	   Exception(
   R*   t   numPastet   numt   posDecalt   oRequestHandlert   sContentt   rt   txt   lignest   e(    (    s   C:\dev\Crypt\pasteCrypt.pyt   loadFile4   s$    "
c         C   s$   | d @} | d ?} | d | d AS(   Ni   i   i   i   (    (   R*   t   nt   lowt   high(    (    s   C:\dev\Crypt\pasteCrypt.pyt   _revBit]   s    

c         C   s<   t  g  | D] } t |  ^ q
  } |  j |  d } | S(   NiF   (   t   sumt   ordRI   (   R*   R=   t   xt   v1(    (    s   C:\dev\Crypt\pasteCrypt.pyR.   b   s    %c   	      C   s   t  j d d  } |  j | d } d } d } xa t |  D]S \ } } | j |  | d | t |  } | t | |  7} | | | 7} q< W|  j | d @ } | d M} | | N} | t t	 |   d 7} | S(   Ni   i   t    i    i   i   (
   t   randomt   randintR$   t	   enumeratet   indext   lenRK   RI   t   strt   hex(	   R*   t   crt   rotRB   t   txCryptt   vt   it   tt   pos(    (    s   C:\dev\Crypt\pasteCrypt.pyt   cryptNumPasteg   s    %

c         C   s   y t  d | d d  } | d  } t g  | D] } t |  ^ q.  d @} |  j |  } | d M} | | A} |  j | d } d } xM t |  D]? \ } }	 | j |	  | d | t |  }
 | | |
 7} q WWn d } n X| S(   Ns   0x%si   i   i   i   i   RN   (   t   intRJ   RK   RI   R$   RQ   RR   RS   (   R*   t   tx2RY   RL   RM   RW   RB   t   txdecRZ   R[   R\   (    (    s   C:\dev\Crypt\pasteCrypt.pyR-   v   s    
)

%
i   c         C   s   | d k r | d 9} n  t  t t g  | D] } | ^ q)    } g  | D]' } | | j |  | t |  ^ qK } t s d j |  j d  Sd j |  S(   Ni    iRN   t   utf8(   t   sortedt   listt   setRR   RS   R7   t   joint   encode(   R*   RB   t   decalt   cryptRL   t   tabR[   RV   (    (    s   C:\dev\Crypt\pasteCrypt.pyt   _cryptDecrypt   s    +4c   
      C   s   g  | j    D] } | r | ^ q } | d d k r9 | Sg  } y x~ t |  D]p \ } } | d k r t |  } |  j j | j |   } d j |  } n  | j |  j | | d d  qO WWn t	 k
 r }	 g  } n X| S(   Ni    t   #RN   Rh   (
   t
   splitlinesRQ   Rc   R#   RR   t   popRe   t   appendRj   R;   (
   R*   RB   R>   RL   RC   t
   tabDecryptt   jt   ligneRg   RD   (    (    s   C:\dev\Crypt\pasteCrypt.pyR:      s    %'
RN   i   c            s  | s | d k r$ | r$ g  d f S| j  d  d } | j | d  } t |  d k rd | } n |  j |  } t g  | D] } t |  ^ q}  t |  j  }	 t | d  t |  j d  }
 t | d  t |  j d  } t | d  t |  j d  } t | d	  t |  j d  } |  j |  j |	 t |  j  |
  } |  j |  j |	 d t |  j  |  } |  j |  j |	 d t |  j  |  } |  j |  j |	 d	 t |  j  |    | | | g }   f d
   t    D } |  j	 | | |  } | d k r8| | d d f g } d } n | d k rc|  j
 | | |  \ } } n | d k r|  j | | |  \ } } n g  } | d k r|  j | |  \ } } | r| j |  qn  | d k r|  j | |  \ } } | r| j |  qn  | | f S(   s]   mode 0 = alldebrid, mode 1 = realdebrid, 2 = uptobox, 3 = uptostram, 4 = uptobox + uptostreami    t   errt   /iRN   i   i   i   i   c            s(   i  |  ] \ } }   | d  |  q S(   i   (    (   t   .0RZ   RL   (   t   rotRefl(    s   C:\dev\Crypt\pasteCrypt.pys
   <dictcomp>   s   	 t   orit   oki   (   i   i   (   i   i   (   t   splitt   replaceRS   R-   RJ   RK   R$   t   _swapKeyRQ   t   _decryptLinkt   _linkDownloadAlldebridt   _linkDownloadRealdebridt   _linkDownloadUptoboxt   extendt   _linkDownloadUptostream(   R*   R<   t   linkt   keyt   modet   codet   urlR=   RL   RM   t   pos1t   pos2t   pos3t   posReflt   rot1t   rot2t   rot3t   tabRott
   reflecteurt   linkFt   statust   links(    (   Ru   s   C:\dev\Crypt\pasteCrypt.pyt   resolveLink   sH    
	2!!!!&***	c         C   s   d |  _  d |  _ d } d } x | D] } x. | d  d  d  D] } | | j |  } q? W| | } x! | D] } | | j |  } qm W| | 7} |  j | |  j  d  | |  j  <q% W| S(   Ni    RN   t>   0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzii   (   R%   R&   RR   Rz   (   R*   R   R   R   t   fichCrt   alphat   lCrRW   (    (    s   C:\dev\Crypt\pasteCrypt.pyR{      s    		

$c         C   s   |  j  d 7_  |  j  t |  ;_  |  j  d k rT |  j d 7_ |  j d ;_ n  d j g  t t |   D] } | | | t |  ^ qm  } | S(   Ni   i    i   RN   (   R&   RS   R%   Re   t   range(   R*   R   t   swapRZ   (    (    s   C:\dev\Crypt\pasteCrypt.pyRz      s    @c         C   s  d | | f } g  } y t  |  } | j d t  } | d } | d k r | d d } | j d d  } | d	 d	 f g } d
 }	 nX | d k r d }	 nC | d k r | d d }	 |	 d | d d 7}	 n d t |  }	 Wn t k
 r}
 g  } |
 }	 n X| |	 f S(   Ns3   https://uptobox.link/api/link?token=%s&file_code=%st
   jsonDecodet
   statusCodei    t   datat   dlLinks   .coms   .linkRv   Rw   i   s   Pas de compte Premiumi   t   messages    - s   Erreur inconnue : (   R   R1   t   TrueRy   RT   R;   (   R*   R   t   fileCodet   url1R   R?   t
   dict_liensR   t   sUrlR   RD   (    (    s   C:\dev\Crypt\pasteCrypt.pyR~      s*    
		
c         C   s  d | | f } y t  |  } | j d t  } | d } | d k rU d  | d f Sd } | d } | d d	 k r | d
 } g  | j   D]4 \ }	 }
 |
 j   D] \ } } | |	 | f ^ q q } n$ | d } | d
 d | d f g } Wn t k
 r} g  } | } n X| | f S(   Ns8   https://uptobox.link/api/streaming?token=%s&file_code=%sR   R   i    R   Rw   R   t   versioni   t   streamLinkst   max_qualityt   srcRv   (   R   R1   R   t   Nonet   itemsR;   (   R*   R   R   R   R?   R   R   R   R   t   kRY   t   k1RM   R   t   resRD   (    (    s   C:\dev\Crypt\pasteCrypt.pyR     s$    


J

c   
      C   s   g  } d } t    } | j d  } | rC | | j   | f } n d | j   | f } t |  } | j d t  } y? | d d k r | d d d	 d	 f g } n | d
 d } Wn t k
 r }	 |	 } n X| | f S(   NRw   t   hoster_alldebrid_urlsG   http://api.alldebrid.com/v4/link/unlock?agent=vStream&apikey=%s&link=%sR   R   t   successR   R   Rv   t   errorR   (   R    t
   getSettingt   stripR   R1   R   R;   (
   R*   R   t   lienR   R   t   addonst   urlADR?   R   RD   (    (    s   C:\dev\Crypt\pasteCrypt.pyR|   0  s     	
c   	      C   s   i d | d 6} i | d 6d d 6} t  j d d | d | } | j   } d	 | j   k r g  d
 | d	 j   j d d  } } n | d d d f g d } } | | f S(   Ns	   Bearer %st   AuthorizationR   RN   t   passwords4   https://api.real-debrid.com/rest/1.0/unrestrict/linkR   t   headersR   s   RealDebrid - t   _t    t   downloadRv   Rw   (   t   requestst   postt   jsont   keyst   upperRy   (	   R*   R   R   R   R   RA   t   dictDataR   R   (    (    s   C:\dev\Crypt\pasteCrypt.pyR}   F  s    *(   t   __name__t
   __module__R+   RE   RI   R.   R]   R-   Rj   R:   R   R{   Rz   R~   R   R|   R}   (    (    (    s   C:\dev\Crypt\pasteCrypt.pyR       s   		)					.					$	(    (   R   R2   RO   t   resources.lib.comaddonR    t$   resources.lib.handler.requestHandlerR   t   resources.lib.utilR   t   html.parserR   R   R7   RT   R8   t   ImportErrort   FalseR   (    (    (    s   C:\dev\Crypt\pasteCrypt.pyt   <module>   s   

