o
    SD8e6                     @   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 zd dl	m
Z
 dZeZW n ey5   dZY nw G dd	 d	ZdS )
    N)addon)cRequestHandler)cUtil)
HTMLParserTFc                   @   s   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zd#ddZ	dd Z
d$ddZdd Zdd Zdd Zdd Zdd Zd d! Zd"S )%Cryptc                 C   s2   d| _ g d| _d| _d| _d| _d| _d| _d S )Nzchmo.:ABCDEGIKLMNOPRSTUWYbpstux)Z>Wq97wQmdlPOJBGvNnbxcDHzFj2gkYURftEKV163A5MeSp0r8IXoZTyiuCLh4asZ>KdSiCM8nf9tIbwDzH04X325O67mRuBFNWkQvVTEcpexGy1agZYqAPLsUolJjrhZ>9Y6kURti4gzhCIGwZM0PpBXuoVcl3e5Ky7fNFSTjms8AbHErxWDO2dnLaJQvq1Z>AfEeszp0ZRgJuqtyGOokvFjhHPrVb4cB2NIXnU6KxaS8dlQ57TLCi39wMWY1DmZ>yBhlVjFDA1EKYuoGZ2NqnxUesdMS3Ofp0arzwtRIc8kb9JPQ4WH5Tvg6iCX7mLZ>wTfLtya01MnzeYSW9d4FoHcNkJZCvXQ3bgiGpEu825RrjP7OVKUxDqAIlsBh6mZ>ButrYenv6fX9NmCUI3Rs2V7hTAWHDkKglLc50jFQOpSPqy8w1EiZ4abJGodMzxZ>2gcSr0w8YeiXM4sAd6uxthnbqJ9BpQO7ZzKG3HTFUIVjlkEvL1oWRNmDyC5afPZ>R3ExPNnUhDyujmK4LAMVd52vIZtplqiHragzoekJ1TSb9W6GcOYfFBC0X87QswZ>ZgtAmxakYKD0zpcsqLT9wHndP5B4Ir2huCRFQfb8M67UlVN3eGyvOEjWSJoiX1Z>YZt86WeN3ECKHA1x9vdhF4jzISL2RGurgpPsDwlJ7n0mOaBoyMUVcfib5TkXqQZ>uhl8iYHO6poTIvgDQ904PayfcrZ1J5zkmREFLVqBsUdNMxj7XCnGwtbW3AeKS2Z>VaU8utB2lSwpNq0yHhF7RMTJncDbIZYXs9dAiCzmj613QxOEW4PgfGL5oKvrekZ>zOFWr7JetVh0yN6vslDxn24fwHukXmEUj5qCSTRbgiYQPIZAM1aGL9dB8oKc3pZ>kM1AUuqnNfrKWRj0tOzm7C9lYShZGcQBL5J4DyF3wXT2aEd8VvoPHpbiexgsI6Z>9HYjEcLTutQpI0rO3M75ZvwA4GFK2koqzhUiCny6xNSdmRfJegDaVBXbs1PW8lZ>0UScdanhjeNVLrFXpx3wOD7ikZ4PBsmzJM8QI5RoyqWAtfEvY1l926TuHKCgGbZ>Bb3cNFeDkW5fwvVJm2QzgPiUL9nTZE4apdMSIqHhlxYrjC0AoK81uXRsOtGy76Z>n4tmQckyLRd13vPebl9EzhBa0MKXGj7NUf26CH8r5AFYWOopuxSDZwsiVIqJgTZ>ceQ68PDBs4huny23trq7ClvFWiAKHzZ1bgURwo9pXIOxdLNYVSkEfa0GJ5jmMTZ>jxMyhCUpStFgzs81lBvrXEOHAK6PbwiRDNd4ZTJ2oI03Lk9mucaY5V7WnQefGqZ>j4vcoE9lfpNwTsiDRQCdUbYu5k28JBWH7SeZrqyh3L6PxKGAXVOnm1tFIMazg0Z>Xk4teWwfzEBR9bHuUZoJ3Y0NxQO8phmGT1aFiyncj7KLqvPIrAlDsSC256dgVMZ>mWKyZVEilfpHD752LJRGvQuqIe0MawOnP81BFz69khdCSUsXjc4NYg3xrtboTAZ>8LzXWwKhl2oGdTYAM6yIaJ3bBce4fsg9rUuQktCxpi7VD0OZPnvFNSEHqmRj15Z>kopQbKsUMz4FCn0aqwyNAc23DlET7GWSfmd1IHO8PtevxrV6ZLghjYRXBJu5i9Z>rz5wTkpAKgYH32OuRl4nD0yNQva186FM7eJiScBIXhbVsdUE9oGqxPCtjLmWfZZ>H5KQUnLCvgWSYOka3PFAjhJ0cw61z2yR8tqmMXIlsupeZfoVNxT74EirdbDBG9Z>zvlEitNwd0bPqasYDArjgnJKIOoCSp589mM2TFy6WZk1RuxGBQL3hX7cHfeVU4Z>d5hjmCsA34nZu9pV76Sbz1NRYO8iFGlTLcMqUxHBgKvofXawDytIkeEWQPrJ02r   z!https://anotepad.com/note/read/%szhttps://rentry.co/%s/rawz3.*<div class="plaintext *">(?P<txAnote>.+?)</div>.*)stabKeynumRotposTableadrPbiZadrPbi2motifAnotepad)self r   C:\dev\Crypt\pasteCrypt.py__init__"   s   


zCrypt.__init__c           
   
   C   s   |  |}| |}t| j| }|d |dd | }t| j	|tj
tjB }|s0g S z|d}ts=t|d}t |}| ||}W |S  ty` }	 z	g }W Y d }	~	|S d }	~	ww )N   zContent-Typez0application/x-www-form-urlencoded; charset=UTF-8ZtxAnotezutf-8)_decryptNumPaste	_numDecalr   r   Z
setTimeoutZaddHeaderEntryrequestrematchr   	MULTILINEDOTALLgrouppy3unicoder   Zunescape_decrypt	Exception)
r   numPastenumposDecaloRequestHandlerZsContentrtxligneser   r   r   loadFile4   s*   




zCrypt.loadFilec                 C   s    |d@ }|d? }|d | dA S )N            r   )r   nZlowZhighr   r   r   _revBit]   s   zCrypt._revBitc                 C   s$   t dd |D }| |d }|S )Nc                 S      g | ]}t |qS r   ord.0xr   r   r   
<listcomp>c       z#Crypt._numDecal.<locals>.<listcomp>F   )sumr,   )r   r   v1r   r   r   r   b   s   zCrypt._numDecalc           	      C   s   t dd}| j|d  }d}d}t|D ]!\}}|||d |  t| }|t|| 7 }||| 7 }q| |d@ }|dM }||N }|tt	|dd  7 }|S )N   r'    r   r*      )
randomZrandintr   	enumerateindexlenr/   r,   strhex)	r   crrotr#   ZtxCryptvitposr   r   r   cryptNumPasteg   s   zCrypt.cryptNumPastec           
      C   s   zSt d|dd   d}|d d }tdd |D d@ }| |}|dM }||A }| j|d  }d	}t|D ]\}}|||d |  t| }	|||	 7 }q7W |S    d	}Y |S )
Nz0x%s   r)   c                 S   r-   r   r.   r0   r   r   r   r3   z   r4   z*Crypt._decryptNumPaste.<locals>.<listcomp>r*   r'   r8   r9   )intr6   r,   r   r<   r=   r>   )
r   Ztx2rC   r7   rB   r#   ZtxdecrD   rE   rF   r   r   r   r   v   s"   
zCrypt._decryptNumPaster8   c                    s\   |dkr d9  t ttdd |D  fdd|D }ts)d|dS d|S )Nr   c                 S   s   g | ]}|qS r   r   r0   r   r   r   r3      s    z'Crypt._cryptDecrypt.<locals>.<listcomp>c                    s&   g | ]} |  t  qS r   )r=   r>   )r1   rE   decalZtabr   r   r3      s   & r9   utf8)sortedlistsetr   joinencode)r   r#   rL   cryptrA   r   rK   r   _cryptDecrypt   s   
zCrypt._cryptDecryptc           	   
   C   s   dd |  D }|d dkr|S g }z-t|D ]%\}}|dkr2t|}| j||}d|}|| j||dd qW |S  t	yU } z	g }W Y d }~|S d }~ww )Nc                 S   s   g | ]}|r|qS r   r   r0   r   r   r   r3      r4   z"Crypt._decrypt.<locals>.<listcomp>r   #r9   )rS   )

splitlinesr<   rO   r   r=   poprQ   appendrT   r   )	r   r#   r    r$   Z
tabDecryptjZlignerL   r%   r   r   r   r      s$   
zCrypt._decryptr9   r:   c                    sH  |r|dkr|sg dfS | dd }||d}t|dkr"|}n| |}tdd |D t| j }t|d t| jd  }	t|d	 t| jd  }
t|d
 t| jd  }t|d t| jd  }| | j|t| j  |	}| | j|d	 t| j  |
}| | j|d
 t| j  |}| | j|d t| j  | |||g} fddt D }| 	|||}|dkr|| ddfg}d}||fS |dkr| 
||| \}}||fS |d	kr| ||| \}}||fS g }|dv r| ||\}}|r|| |dv r | ||\}}|r || ||fS )z]mode 0 = alldebrid, mode 1 = realdebrid, 2 = uptobox, 3 = uptostram, 4 = uptobox + uptostreamr   err/rJ   r9   rH   c                 S   r-   r   r.   r0   r   r   r   r3      r4   z%Crypt.resolveLink.<locals>.<listcomp>r8   r:      c                    s    i | ]\}}| |d    qS r8   r   )r1   rD   r2   ZrotReflr   r   
<dictcomp>        z%Crypt.resolveLink.<locals>.<dictcomp>oriok)r:   r(   )r\   r(   )splitreplacer>   r   r6   r   r/   _swapKeyr<   _decryptLink_linkDownloadAlldebrid_linkDownloadRealdebrid_linkDownloadUptoboxextend_linkDownloadUptostream)r   r   linkkeymodecodeZurlr   r7   Zpos1Zpos2Zpos3ZposReflZrot1Zrot2Zrot3tabRot
reflecteurZlinkFstatuslinksr   r^   r   resolveLink   sN   
   




zCrypt.resolveLinkc                 C   s   d| _ d| _d}d}|D ]3}|d d d D ]	}||| }q|| }|D ]	}||| }q%||7 }| || j  d|| j < q|S )Nr   r9   Z>0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzrJ   r8   )r	   r
   r=   re   )r   rp   rq   rl   ZfichCrZalphaZlCrrB   r   r   r   rf      s   zCrypt._decryptLinkc                    sl   |  j d7  _ |  j t ;  _ | j dkr#|  jd7  _|  jd;  _d fddtt D   S )Nr8   r   r\   r9   c                    s    g | ]} | t    qS r   )r>   )r1   rD   rm   swapr   r   r3      r`   z"Crypt._swapKey.<locals>.<listcomp>)r
   r>   r	   rQ   range)r   rm   rv   r   ru   r   re      s   
"zCrypt._swapKeyc              
   C   s   d||f }g }z]t |}|jdd}|d }|dkr0|d d }|dd	}|d
d
fg}d}	n'|dkr7d}	n%|dkrL|d d }	|	d|d d  7 }	ndt| }	W ||	fS W ||	fS W ||	fS W ||	fS  ty~ }
 zg }|
}	W Y d }
~
||	fS d }
~
ww )Nz3https://uptobox.link/api/link?token=%s&file_code=%sTZ
jsonDecode
statusCoder   datadlLinkz.comz.linkra   rb   r)   zPas de compte Premium   messagez - zErreur inconnue : )r   r   rd   r?   r   )r   rm   fileCodeurl1r{   r!   
dict_liensry   ZsUrlrr   r%   r   r   r   ri      s<   zCrypt._linkDownloadUptoboxc              
   C   s   d||f }zKt |}|jdd}|d }|dkr d |d fW S d}|d }|d	 d
kr:|d }dd | D }	n|d }
|d d |
dfg}	W |	|fS W |	|fS  tyj } zg }	|}W Y d }~|	|fS d }~ww )Nz8https://uptobox.link/api/streaming?token=%s&file_code=%sTrx   ry   r   r}   rb   rz   versionr8   ZstreamLinksc                 S   s,   g | ]\}}|  D ]	\}}|||fq
qS r   )items)r1   krC   Zk1r7   r   r   r   r3     s   , z1Crypt._linkDownloadUptostream.<locals>.<listcomp>Zmax_qualitysrcra   )r   r   r   r   )r   rm   r~   r   r!   r   rr   rz   rs   r{   resr%   r   r   r   rk     s.   zCrypt._linkDownloadUptostreamc           
   
   C   s   g }d}t  }|d}|r|| |f }nd| |f }t|}|jdd}z!|d dkr;|d d	 d
d
fg}n|d d }W ||fS W ||fS  tya }	 z|	}W Y d }	~	||fS d }	~	ww )Nrb   Zhoster_alldebrid_urlzGhttp://api.alldebrid.com/v4/link/unlock?agent=vStream&apikey=%s&link=%sTrx   rr   Zsuccessrz   rl   ra   errorro   )r   Z
getSettingstripr   r   r   )
r   rm   lienr{   rr   ZaddonsZurlADr!   r   r%   r   r   r   rg   0  s*   
zCrypt._linkDownloadAlldebridc           	      C   s~   dd| i}|dd}t jd||d}| }d| v r0g d|d  d	d
 }}||fS |d ddfgd}}||fS )NZAuthorizationz	Bearer %sr9   )rl   Zpasswordz4https://api.real-debrid.com/rest/1.0/unrestrict/link)rz   headersr   zRealDebrid - _ Zdownloadra   rb   )requestsZpostZjsonkeysupperrd   )	r   rm   r   r   rz   r"   ZdictDatars   rr   r   r   r   rh   F  s   
zCrypt._linkDownloadRealdebridNr]   )r9   r:   )__name__
__module____qualname__r   r&   r,   r   rG   r   rT   r   rt   rf   re   ri   rk   rg   rh   r   r   r   r   r       s     )

.	$r   )r   r   r;   Zresources.lib.comaddonr   Z$resources.lib.handler.requestHandlerr   Zresources.lib.utilr   Zhtml.parserr   r   r?   r   ImportErrorr   r   r   r   r   <module>   s   