
    SD8e6                         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 	 d dl	m
Z
 dZeZn# e$ r dZY nw xY w G d d	          ZdS )
    N)addon)cRequestHandler)cUtil)
HTMLParserTFc                   l    e Zd Zd Zd Zd Zd Zd Zd ZddZ	d	 Z
ddZd Zd Zd Zd Zd Zd ZdS )Cryptc                 l    d| _         g d| _        d| _        d| _        d| _        d| _        d| _        d S )Nzchmo.:ABCDEGIKLMNOPRSTUWYbpstux)>Wq97wQmdlPOJBGvNnbxcDHzFj2gkYURftEKV163A5MeSp0r8IXoZTyiuCLh4as>KdSiCM8nf9tIbwDzH04X325O67mRuBFNWkQvVTEcpexGy1agZYqAPLsUolJjrh>9Y6kURti4gzhCIGwZM0PpBXuoVcl3e5Ky7fNFSTjms8AbHErxWDO2dnLaJQvq1>AfEeszp0ZRgJuqtyGOokvFjhHPrVb4cB2NIXnU6KxaS8dlQ57TLCi39wMWY1Dm>yBhlVjFDA1EKYuoGZ2NqnxUesdMS3Ofp0arzwtRIc8kb9JPQ4WH5Tvg6iCX7mL>wTfLtya01MnzeYSW9d4FoHcNkJZCvXQ3bgiGpEu825RrjP7OVKUxDqAIlsBh6m>ButrYenv6fX9NmCUI3Rs2V7hTAWHDkKglLc50jFQOpSPqy8w1EiZ4abJGodMzx>2gcSr0w8YeiXM4sAd6uxthnbqJ9BpQO7ZzKG3HTFUIVjlkEvL1oWRNmDyC5afP>R3ExPNnUhDyujmK4LAMVd52vIZtplqiHragzoekJ1TSb9W6GcOYfFBC0X87Qsw>ZgtAmxakYKD0zpcsqLT9wHndP5B4Ir2huCRFQfb8M67UlVN3eGyvOEjWSJoiX1>YZt86WeN3ECKHA1x9vdhF4jzISL2RGurgpPsDwlJ7n0mOaBoyMUVcfib5TkXqQ>uhl8iYHO6poTIvgDQ904PayfcrZ1J5zkmREFLVqBsUdNMxj7XCnGwtbW3AeKS2>VaU8utB2lSwpNq0yHhF7RMTJncDbIZYXs9dAiCzmj613QxOEW4PgfGL5oKvrek>zOFWr7JetVh0yN6vslDxn24fwHukXmEUj5qCSTRbgiYQPIZAM1aGL9dB8oKc3p>kM1AUuqnNfrKWRj0tOzm7C9lYShZGcQBL5J4DyF3wXT2aEd8VvoPHpbiexgsI6>9HYjEcLTutQpI0rO3M75ZvwA4GFK2koqzhUiCny6xNSdmRfJegDaVBXbs1PW8l>0UScdanhjeNVLrFXpx3wOD7ikZ4PBsmzJM8QI5RoyqWAtfEvY1l926TuHKCgGb>Bb3cNFeDkW5fwvVJm2QzgPiUL9nTZE4apdMSIqHhlxYrjC0AoK81uXRsOtGy76>n4tmQckyLRd13vPebl9EzhBa0MKXGj7NUf26CH8r5AFYWOopuxSDZwsiVIqJgT>ceQ68PDBs4huny23trq7ClvFWiAKHzZ1bgURwo9pXIOxdLNYVSkEfa0GJ5jmMT>jxMyhCUpStFgzs81lBvrXEOHAK6PbwiRDNd4ZTJ2oI03Lk9mucaY5V7WnQefGq>j4vcoE9lfpNwTsiDRQCdUbYu5k28JBWH7SeZrqyh3L6PxKGAXVOnm1tFIMazg0>Xk4teWwfzEBR9bHuUZoJ3Y0NxQO8phmGT1aFiyncj7KLqvPIrAlDsSC256dgVM>mWKyZVEilfpHD752LJRGvQuqIe0MawOnP81BFz69khdCSUsXjc4NYg3xrtboTA>8LzXWwKhl2oGdTYAM6yIaJ3bBce4fsg9rUuQktCxpi7VD0OZPnvFNSEHqmRj15>kopQbKsUMz4FCn0aqwyNAc23DlET7GWSfmd1IHO8PtevxrV6ZLghjYRXBJu5i9>rz5wTkpAKgYH32OuRl4nD0yNQva186FM7eJiScBIXhbVsdUE9oGqxPCtjLmWfZ>H5KQUnLCvgWSYOka3PFAjhJ0cw61z2yR8tqmMXIlsupeZfoVNxT74EirdbDBG9>zvlEitNwd0bPqasYDArjgnJKIOoCSp589mM2TFy6WZk1RuxGBQL3hX7cHfeVU4>d5hjmCsA34nZu9pV76Sbz1NRYO8iFGlTLcMqUxHBgKvofXawDytIkeEWQPrJ02r   z!https://anotepad.com/note/read/%szhttps://rentry.co/%s/rawz3.*<div class="plaintext *">(?P<txAnote>.+?)</div>.*)stabKeynumRotposTableadrPbiadrPbi2motifAnotepad)selfs    C:\dev\Crypt\pasteCrypt.py__init__zCrypt.__init__"   sK    2	J 	J 	J 91S    c                 n   |                      |          }|                     |          }t          | j        |z            }|                    d           |                    dd           |                                }t          j        | j	        |t          j
        t          j        z            }|sg S 	 |                    d          }t          st          |d          }t                                          |          }|                     ||          }n# t$          $ r}	g }Y d }	~	nd }	~	ww xY w|S )N   zContent-Typez0application/x-www-form-urlencoded; charset=UTF-8txAnotezutf-8)_decryptNumPaste	_numDecalr   r,   
setTimeoutaddHeaderEntryrequestrematchr.   	MULTILINEDOTALLgrouppy3unicoder   unescape_decrypt	Exception)
r/   numPastenumposDecaloRequestHandlersContentrtxligneses
             r0   loadFilezCrypt.loadFile4   s2   ##H-->>#&&" *$+*;<<""1%%%&&~7ijjj"**,,HT'2<	3IJJ 	I		##B *R))!!"%%B]]2x00FF 	 	 	FFFFFF	 s   8A#D 
D2&D--D2c                 ,    |dz  }|dz	  }|dz  |z   dz  S )N             )r/   nlowhighs       r0   _revBitzCrypt._revBit]   s'    #gAvb44''r2   c                 h    t          d |D                       }|                     |          dz  }|S )Nc                 ,    g | ]}t          |          S rT   ord.0xs     r0   
<listcomp>z#Crypt._numDecal.<locals>.<listcomp>c       &&&Q#a&&&&&r2   F   )sumrX   )r/   rF   v1s      r0   r7   zCrypt._numDecalb   s9    &&#&&&''\\""	r2   c                    t          j        dd          }| j        |dz
           }d}d}t          |          D ]V\  }}|                    |          |dz   |z  z   t          |          z  }|t          ||                   z  }|||         z  }W|                     |dz            }|dz  }||z  }|t          t          |                    dd          z  }|S )N   rP    r   rS      )
randomrandintr)   	enumerateindexlenr\   rX   strhex)	r/   crrotrK   txCryptvitposs	            r0   cryptNumPastezCrypt.cryptNumPasteg   s    nQ##[q!bMM 	 	DAq88A;;1q5C-0CGG;CRWAr#wGGLLT""	S	S3s1vv;;qrr?"r2   c                    	 t          d|dd          z  d          }|d d         }t          d |D                       dz  }|                     |          }|dz  }||z  }| j        |dz
           }d}t	          |          D ]>\  }}|                    |          |dz   |z  z
  t          |          z  }	|||	         z  }?n	#  d}Y nxY w|S )	Nz0x%s   rR   c                 ,    g | ]}t          |          S rT   r[   r]   s     r0   r`   z*Crypt._decryptNumPaste.<locals>.<listcomp>z   s    ***c!ff***r2   rS   rP   rf   rg   )intrc   rX   r)   rk   rl   rm   )
r/   tx2rs   rd   rq   rK   txdecrt   ru   rv   s
             r0   r6   zCrypt._decryptNumPastev   s    	FCGOR((Abqb'C**c***++d2Bb!!B#IBb&CS1W%BE!# ! !1xx{{q1um4B?C !	EEEs   C C C	rf   c                 (   |dk    rdz  t          t          t          d |D                                           fd|D             }t          s(d                    |                              d          S d                    |          S )Nr   c                     g | ]}|S rT   rT   r]   s     r0   r`   z'Crypt._cryptDecrypt.<locals>.<listcomp>   s    oooQqooor2   c                 l    g | ]0}                     |          z   t                    z           1S rT   )rl   rm   )r^   ru   decaltabs     r0   r`   z'Crypt._cryptDecrypt.<locals>.<listcomp>   s8    CCC1sCIIaLL5(CHH45CCCr2   rg   utf8)sortedlistsetr@   joinencode)r/   rK   r   cryptrp   r   s     `  @r0   _cryptDecryptzCrypt._cryptDecrypt   s    A::RKE T#oo"ooo..//00CCCCCCCC 	.772;;%%f---wwr{{r2   c                    d |                                 D             }|d         dk    r|S g }	 t          |          D ]\  }}|dk    rQt          |          }| j                            |                    |                    }d                    |          }|                    |                     ||d                     n# t          $ r}g }Y d }~nd }~ww xY w|S )Nc                     g | ]}||S rT   rT   r]   s     r0   r`   z"Crypt._decrypt.<locals>.<listcomp>   s    2222!222r2   r   #rg   )r   )

splitlinesrk   r   r(   rl   popr   appendr   rD   )	r/   rK   rG   rL   
tabDecryptjligner   rM   s	            r0   rC   zCrypt._decrypt   s    22R]]__222a5C<<M
	%f-- M M566 KKE FLL8)<)<==EGGENNE!!$"4"4UE"4"K"KLLLLM  	 	 	JJJJJJ	s   BC 
CCCrg   rh   c                 p   |r|dk    r|sg dfS |                     d          d         }|                    |d          }t          |          dk    r|}n|                     |          }t	          d |D                       t          | j                  z  }t          |d                   t          | j        d                   z  }	t          |d                   t          | j        d                   z  }
t          |d	                   t          | j        d                   z  }t          |d
                   t          | j        d                   z  }|                     | j        |t          | j                  z           |	          }|                     | j        |dz   t          | j                  z           |
          }|                     | j        |d	z   t          | j                  z           |          }|                     | j        |d
z   t          | j                  z           |          |||g}fdt                    D             }| 	                    |||          }|dk    r||z   ddfg}d}n|dk    r| 
                    |||z             \  }}n|dk    r|                     |||z             \  }}njg }|dv r0|                     ||          \  }}|r|                    |           |dv r0|                     ||          \  }}|r|                    |           ||fS )z]mode 0 = alldebrid, mode 1 = realdebrid, 2 = uptobox, 3 = uptostram, 4 = uptobox + uptostreamr   err/r   rg   ry   c                 ,    g | ]}t          |          S rT   r[   r]   s     r0   r`   z%Crypt.resolveLink.<locals>.<listcomp>   ra   r2   rf   rh      c                 0    i | ]\  }}||d z             S rf   rT   )r^   rt   r_   rotRefls      r0   
<dictcomp>z%Crypt.resolveLink.<locals>.<dictcomp>   s*    JJJtq!a1q5*JJJr2   oriok)rh   rQ   )r   rQ   )splitreplacerm   r6   rc   r)   r\   _swapKeyrk   _decryptLink_linkDownloadAlldebrid_linkDownloadRealdebrid_linkDownloadUptoboxextend_linkDownloadUptostream)r/   rE   linkkeymodecodeurlrF   rd   pos1pos2pos3posReflrot1rot2rot3tabRot
reflecteurlinkFstatuslinksr   s                        @r0   resolveLinkzCrypt.resolveLink   s     	a;zz#r"ll4$$x==ACC''11C&&#&&&''#dk*:*::3q6{{SQ0003q6{{SQ0003q6{{SQ000c!f++DKN 3 33}}T[c$+.>.>)>?FF}}T["q&C4D4D)DEtLL}}T["q&C4D4D)DEtLL--R!Vs4;7G7G,G H'RRd#JJJJy7I7IJJJ
  T::2::4Z./EFFQYY 77S4ZHHME66QYY 88cDjIIME66Ev~~ $ 9 9#t D Dv (LL'''v~~ $ < <S$ G Gv (LL'''f}r2   c                 2   d| _         d| _        d}d}|D ]}|d d d         D ]}||                    |                   }||         }|D ]}||                    |                   }||z  }|                     || j                  d          || j         <   |S )Nr   rg   >0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzr   rf   )r*   r+   rl   r   )r/   r   r   r   fichCralphalCrrq   s           r0   r   zCrypt._decryptLink   s    P 	H 	HCddd| , ,%++c**+S/C , ,CIIcNN+cMF"&--t{0CQ"G"GF4;r2   c                 2   | xj         dz  c_         | xj         t                    z  c_         | j         dk    r | xj        dz  c_        | xj        dz  c_        d                    fdt	          t                              D                       S )Nrf   r   r   rg   c                 F    g | ]}|z   t                    z           S rT   )rm   )r^   rt   r   swaps     r0   r`   z"Crypt._swapKey.<locals>.<listcomp>   s-    LLLqsAHC01LLLr2   )r+   rm   r*   r   range)r/   r   r   s    ``r0   r   zCrypt._swapKey   s    S!=AKK1KKKK1KKggLLLLLE#c((OOLLLMM
r2   c                    d|d|}g }	 t          |          }|                    d          }|d         }|dk    r-|d         d         }|                    d	d
          }|ddfg}d}	nD|dk    rd}	n;|dk    r#|d         d         }	|	d|d         d         z   z  }	ndt          |          z   }	n# t          $ r}
g }|
}	Y d }
~
nd }
~
ww xY w||	fS )Nz$https://uptobox.link/api/link?token=&file_code=T
jsonDecode
statusCoder   datadlLinkz.comz.linkr   r   rR   zPas de compte Premium   messagez - zErreur inconnue : )r   r:   r   rn   rD   )r/   r   fileCodeurl1r   rH   
dict_liensr   sUrlr   rM   s              r0   r   zCrypt._linkDownloadUptobox   s#    HKXXV	-d33O(00D0AAJ $L1JQ!&)(3||FG44./r!!0q#F+I6%*V"4V"<<<-J? 	 	 	FFFFFFF	 v~s   B$B1 1
C	;CC	c                 |   d|d|}	 t          |          }|                    d          }|d         }|dk    r
d |d         fS d}|d	         }|d
         dk    r'|d         }d |                                D             }	n|d         }
|d         d         |
dfg}	n# t          $ r}g }	|}Y d }~nd }~ww xY w|	|fS )Nz)https://uptobox.link/api/streaming?token=r   Tr   r   r   r   r   r   versionrf   streamLinksc                 R    g | ]$\  }}|                                 D ]
\  }}|||f%S rT   )items)r^   krs   k1rd   s        r0   r`   z1Crypt._linkDownloadUptostream.<locals>.<listcomp>  s;    XXX$!QaggiiXXFB2q"+XXXXr2   max_qualitysrcr   )r   r:   r   rD   )r/   r   r   r   rH   r   r   r   r   r   resrM   s               r0   r   zCrypt._linkDownloadUptostream  s    MPSSRZRZ[	-d33O(00D0AAJ  -F{{Z	222Ff%DI!##]+XX%++--XXX=).u5sEBC  	 	 	FFFFFFF	 v~s   <B AB 
B7)B22B7c                    g }d}t                      }|                    d          }|r||                                |fz  }nd|                                d|}t          |          }|                    d          }	 |d         dk    r|d	         d
         ddfg}n|d         d         }n# t
          $ r}	|	}Y d }	~	nd }	~	ww xY w||fS )Nr   hoster_alldebrid_urlz=http://api.alldebrid.com/v4/link/unlock?agent=vStream&apikey=z&link=Tr   r   successr   r   r   errorr   )r   
getSettingstripr   r:   rD   )
r/   r   lienr   r   addonsurlADrH   r   rM   s
             r0   r   zCrypt._linkDownloadAlldebrid0  s   !!"899 	uSYY[[400EE	u beajajalalalalosostE)%00$,,,==
	(#y00%f-f5ueDE#G,V4 	 	 	FFFFFF	 v~s   -B2 2
C<CCc                 (   dd|z  i}|dd}t          j        d||          }|                                }d|                                v r4g d|d                                                             d	d
          z   }}n|d         ddfgd}}||fS )NAuthorizationz	Bearer %srg   )r   passwordz4https://api.real-debrid.com/rest/1.0/unrestrict/link)r   headersr   zRealDebrid - _ downloadr   r   )requestspostjsonkeysupperr   )	r/   r   r   r   r   rJ   dictDatar   r   s	            r0   r   zCrypt._linkDownloadRealdebridF  s    "K$45,,MPW[elmmm6688hmmoo%%(72C2I2I2K2K2S2STWY\2]2] ]6EE&z2E5ABD6Ef}r2   Nr   )rg   rh   )__name__
__module____qualname__r1   rN   rX   r7   rw   r6   r   rC   r   r   r   r   r   r   r   rT   r2   r0   r   r       s       T T T$' ' 'R( ( (
  
    "
 
 
 
  (, , , ,\      >" " "H  ,
 
 
 
 
r2   r   )r   r;   ri   resources.lib.comaddonr   $resources.lib.handler.requestHandlerr   resources.lib.utilr   html.parserr   r@   rn   rA   ImportErrorr   rT   r2   r0   <module>r      s     				  ( ( ( ( ( ( @ @ @ @ @ @ $ $ $ $ $ $&&&&&&
CGG    CCCp p p p p p p p p ps   
+ 55