
    >i+                         d dl mZmZmZmZmZ d dl mZ d dlmZm	Z	 d dl
mZmZ d dlZd dlZd dlZd dlZd dlZd dlZd dlmZmZmZ d dlmZ  G d d	          ZdS )
    )
JsonObjectJsonObjectValue
JsonString
JsonNumberMessage)MessageEntityTextUrl)TelegramClienterrors)urlparseparse_qsN)capslover_create_taskwait_for_captchatelegram_check_captcha)loggerc                   ~    e Zd ZdeddfdZdedeez  fdZdefdZdefdZ	dd	Z
defd
ZdefdZddedefdZdS )Telegramphone_numberreturnNc                    d| _         d| _        d| _        || _        |                                 | _        d| _        d| _        d| _        | 	                    d| j         d          | _
        t          d| j         d	d
| j
                            d          p| j
                            d          | j
                            d          p| j
                            d          | j
                            d          | j
                            d          pd| j
                            d          pdd 	  	        | _        d S )Nz?Hey, I think my account is limited mistakenly, please check it.zHey, how are you today bro ?tg_seller_hqzcom.android.vendingzorg.telegram.messengerivalid_sessions/.json eb06d4abfb49dc3eeb1aeb98ae0f581e   device_modeldevicesystem_versionsdkapp_version	lang_codeensystem_lang_codezen-US)	sessionapi_hashapi_idr   r   r   r    r"   proxy)telegram_spam_messagetelegram_messagetelegram_usernamer   _get_push_token
push_token	installer
package_id	tz_offset
_load_json	json_datar	   getclient)selfr   s     G/Users/rezajafarian/Desktop/Projects/tg-spam-unlocker/utils/telegram.py__init__zTelegram.__init__   s4   %f" >!/(..00.2)S4;L)S)S)STT$9d&7997++N;;[t~?Q?QRZ?[?[>--.>??\4>CUCUV[C\C\**=99n((55=!^//0BCCNw

 

 

    pathc                     	 t          |dd          5 }t          j        |          cd d d            S # 1 swxY w Y   d S # t          $ r"}t	          j        d|            Y d }~dS d }~ww xY w)Nrutf-8encodingz%<red>[-]</red> Teleram._load_json -> F)openjsonload	Exceptionr   error)r3   r7   frA   s       r4   r/   zTelegram._load_json'   s    	dC'222 $ay||$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 	 	 	LHHHIII55555	s2   A 5A 9A 9A 
A.A))A.c                     	 t          ddd          5 }d |D             }d d d            n# 1 swxY w Y   |rt          j        |          ndS # t          $ r t	          j        d           Y dS w xY w)Nzutils/push_tokens.txtr9   r:   r;   c                     g | ]?}|                                 |                    d           +|                                 @S )#)strip
startswith).0ls     r4   
<listcomp>z,Telegram._get_push_token.<locals>.<listcomp>3   s?    VVV!''))VALLQTDUDUV!''))VVVr6    z/<red>[-]</red> utils/push_tokens.txt not found.)r=   randomchoiceFileNotFoundErrorr   warning)r3   rB   tokenss      r4   r*   zTelegram._get_push_token0   s    	-sWEEE WVVQVVVW W W W W W W W W W W W W W W,2:6=(((:  	 	 	NLMMM22	s,   A -A 1A 1A A21A2c                 :   t           j        t           j        z   g c}t          d          D ]Z}t	          j        dd          }d                    fdt          |          D                       }|                    |           [d                    |          S )N      
   rK   c              3   @   K   | ]}t          j                  V  d S )N)rL   rM   )rH   _alloweds     r4   	<genexpr>z(Telegram._random_text.<locals>.<genexpr>>   s-      NNa6=11NNNNNNr6    )stringascii_lowercasedigitsrangerL   randintjoinappend)r3   
text_partsrV   part_lengthpartrW   s        @r4   _random_textzTelegram._random_text:   s    $4v}Dbq 	$ 	$A .B//K77NNNN5;M;MNNNNNDd####xx
###r6   c                 @  K   	 d| j         j        _        t          t	          dt          | j                            t	          dt          d                    t	          dt          | j                            t	          dt          | j                            t	          dt          | j
                            t	          dt          d	                    g          | j         j        _        d S # t          $ r"}t          j        d
|            Y d }~d S d }~ww xY w)Nandroiddevice_tokendata@49C1522548EBACD46CE322B6FD47F6092BB745D0F88082145CAF35E14DCC38E1r,   r-   r.   perf_cat   z)<red>[-]</red> Telegram._patch_client -> )r2   _init_request	lang_packr   r   r   r+   r,   r-   r   r.   paramsr@   r   rA   r3   rA   s     r4   _patch_clientzTelegram._patch_clientC   s     	N2;DK%//9
4?0K0KLL
3u(v(vwwZ-G-GHHj.I.IJJZ-G-GHH
JqMM::; 0 0DK%,,,  	N 	N 	NLLULLMMMMMMMMM	Ns   C+C1 1
D;DDc                    K   	 | j                                         s!| j                                          d {V  dS d S # t          $ r"}t	          j        d|            Y d }~dS d }~ww xY w)NTz#<red>[-]</red> Teleram._connect -> F)r2   is_connectedconnectr@   r   rA   ro   s     r4   _connectzTelegram._connectR   s      	;++-- k))+++++++++t   	 	 	LFuFFGGG55555	   8A   
A,
A''A,c                    K   	 | j                                         r!| j                                          d {V  dS d S # t          $ r"}t	          j        d|            Y d }~dS d }~ww xY w)NTz&<red>[-]</red> Teleram._disconnect -> F)r2   rr   
disconnectr@   r   rA   ro   s     r4   _disconnectzTelegram._disconnect\   s      	{'')) k,,.........t   	 	 	LI%IIJJJ55555	ru   Fsend_requestc           	        K   	 |                                   d {V  |                                  d {V  	 | j                            | j                   d {V }| j                            || j                   d {V  	 |                                  d {V  dS # t          j	        j
        $ r |dk    rY |                                  d {V  dS 	 | j                            dd          4 d {V }t          j        d           |                    d           d {V  |                                 d {V j        }d	|v sd
|v rCt          j        d           	 d d d           d {V  Y |                                  d {V  dS d|v r1|                    d           d {V  |                                 d {V j        }d|v r|                    d           d {V  |                                 d {V j        }d|v r|                    d           d {V  |                                 d {V }d|j        v rtd\  }}}t!          |dg           pg D ]{}t#          |t$                    rd|j        }t)          t+          |          j                  }|                    dd g          d         |                    dd g          d         }} n||sCt          j        d           	 d d d           d {V  Y |                                  d {V  dS t          j        d| d| d           t3          |           d {V }	|	sCt          j        d           	 d d d           d {V  Y |                                  d {V  dS |	                    d          }
|
sCt          j        d           	 d d d           d {V  Y |                                  d {V  dS t          j        d|
 d           t5          |
d           d {V }|sCt          j        d            	 d d d           d {V  Y |                                  d {V  dS t          j        d!           t7          |||           d {V  t9          j        t=          j        d"d#                     d {V  |                    d$           d {V  |                                 d {V j        }d%|v r|                                  }t          j        d&           t          j        d'| d           |                    |           d {V  |                                 d {V j        }t          j        d(           d)|v r/	 d d d           d {V  Y |                                  d {V  dS d d d           d {V  n# 1 d {V swxY w Y   nJ# tB          $ r=}t          j        d*|            Y d }~Y |                                  d {V  dS d }~ww xY wY nw xY wn# tB          $ r}t          j        d+|            tD          j#        $                    d,| j%         d-          r'tE          j&        d,| j%         d-d.| j%         d-           tD          j#        $                    d,| j%         d/          r'tE          j&        d,| j%         d/d.| j%         d/           t          j        d0| j%         d1           Y d }~|                                  d {V  dS d }~ww xY w|                                  d {V  d S # |                                  d {V  w xY w)2N)entitymessageTFz@SpamBotd   )timeoutzD<green>[+]</green> <yellow>/start</yellow> command successfully sentz/startzGood news, no limitsu   مژدهzE<green>[+]</green> Account is free in (<yellow>@SpamBot</yellow>) botzUnfortunately,zThis is a mistakezIf you think the limitationsYeszGreat! Please confirmzNo! Never did that!zPlease verify you are a human)NNNentitiesscoper   actorz7<red>[-]<red> Captcha URL not found in SpamBot message.z"<green>[+]</green> Scope: <yellow>z</yellow>, Actor: <yellow>z	</yellow>z+<red>[-]</red> Capsolver createTask failed.taskIdz.<red>[-]</red> Capsolver didn't return taskId.z3<green>[+]</green> Capsolver task created: <yellow>z+<red>[-]</red> Capsolver returned no token.zA<green>[+]</green> Captcha token received, checking with Telegram   rR   Doneu?   Great! I’m very sorry if your account was limited by mistake.z4<green>[+]</green> Random text generated for SpamBotz!<green>[+]</green> Text: <yellow>z3<green>[+]</green> Custom message successfully sentz:Thank you! Your complaint has been successfully submitted.z:<red>[-]</red> Telegram.send_spam_request.conversation -> z,<red>[-]</red> Teleram.send_spam_request -> r   z.sessionzinvalid_sessions/r   z2<red>[-]</red> Session and JSON files for <yellow>z6</yellow> moved to (<yellow>invalid_sessions</yellow>))'rp   rt   r2   
get_entityr)   send_messager(   rx   r
   rpcerrorlistPeerFloodErrorconversationr   infoget_responser|   getattr
isinstancer   urlr   r   queryr1   rA   r   r   r   asynciosleeprL   r^   rd   r@   osr7   existsr   rename)r3   ry   r{   convresponser   r   r   resultcreate_tasktask_idcaptcha_tokenrandom_textrA   s                 r4   
check_spamzTelegram.check_spamf   s     k	%$$&&&&&&&&&--//!!!!!!!W!#{55d6LMMMMMMMMk..fdF[.\\\\\\\\\H ""$$$$$$$$$$$E &5 R! R! R!5(( @ ""$$$$$$$$$$$}N!#{77
C7PP I< I< I< I< I< I< I<TX$klll"//999999999*.*;*;*=*=$=$=$=$=$=$=#F1X==xAWAW"K(pqqq#'I< I< I< I< I< I< I< I< I< I< I< I< I<z ""$$$$$$$$$$$i .99"&"3"34G"H"HHHHHHHH.2.?.?.A.A(A(A(A(A(A(A'JH=II&*&7&7&>&> > > > > > > >262C2C2E2E,E,E,E,E,E,E+N#:h#F#F*.*;*;<Q*R*R$R$R$R$R$R$R$R595F5F5H5H/H/H/H/H/H/HH'F(JZ'Z'Z<L(9UE6=h
TV6W6W6][] )6 )6F/9&BV/W/W -66<j9A(3--BU9V9V?Ezz'TXSY?Z?Z[\?]_e_i_ijqtxsy_z_z{|_}u05	-6 03 )9,2L9s,t,t,t38AI< I< I< I< I< I< I< I< I< I< I< I< I<z ""$$$$$$$$$$$w )/  5KY^  5K  5Kz  5K  5K  5K  )L  )L  )L<QRU<V<V6V6V6V6V6V6V/: )9,2L9g,h,h,h38OI< I< I< I< I< I< I< I< I< I< I< I< I<z ""$$$$$$$$$$$i 3>//(2K2K/6 )9,2L9k,l,l,l38YI< I< I< I< I< I< I< I< I< I< I< I< I<z ""$$$$$$$$$$$_ )/4|jq4|4|4|(}(}(}>Nw`c>d>d>d8d8d8d8d8d8d/< )9,2L9g,h,h,h38gI< I< I< I< I< I< I< I< I< I< I< I< I<z ""$$$$$$$$$$$Q )/4x(y(y(y.D]TY[`.a.a(a(a(a(a(a(a(a.5mFN1a<P<P.Q.Q(Q(Q(Q(Q(Q(Q(Q.2.?.?.G.G(G(G(G(G(G(G(G:>:K:K:M:M4M4M4M4M4M4M3V+lpx+x+x:>:K:K:M:MK,2K8o,p,p,p,2K8r\g8r8r8r,s,s,s262C2CK2P2P,P,P,P,P,P,P,P>B>O>O>Q>Q8Q8Q8Q8Q8Q8Q7ZH,2K8n,o,o,o/kow/w/w7;SI< I< I< I< I< I< I< I< I< I< I< I< I<z ""$$$$$$$$$$${I< I< I< I< I< I< I< I< I< I< I< I< I< I< I< I< I< I< I< I< I< I< I< I< I< I< I<V ! ! ! !L!e^c!e!efff 5555  ""$$$$$$$$$$$%!aR!h  	 	 	LOOOPPPw~~K0AKKKLL z	GD,=GGGIx]a]nIxIxIxyyyw~~H0AHHHII t	DD,=DDDFrZ^ZkFrFrFrsssL  XdN_  X  X  X  Y  Y  Y555 ""$$$$$$$$$$$	 ""$$$$$$$$$$$$""$$$$$$$$$$s  4Y AB" "X>=Y "W1=A,W)W1:Y E.WW1Y 3AW:W1Y (,WW1%Y AWW1Y 6D)WW10Y W1
W)	)W1,W)	-W10X>1
X8;X3X>Y 3X88X>;Y =X>>Y ]# 
]C\?]# ?]]# #]?)r   N)F)__name__
__module____qualname__strr5   dictboolr/   r*   rd   rp   rt   rx   r    r6   r4   r   r      s       
S 
T 
 
 
 
2s td{        $c $ $ $ $N N N N    4    l% l%T l%d l% l% l% l% l% l%r6   r   )telethon.tl.typesr   r   r   r   r   r   telethonr	   r
   urllib.parser   r   r   rL   r>   r   rZ   utils.captchar   r   r   utils.loggerr   r   r   r6   r4   <module>r      s%   Z Z Z Z Z Z Z Z Z Z Z Z Z Z 2 2 2 2 2 2 + + + + + + + + + + + + + + + +                                         [ [ [ [ [ [ [ [ [ [      E% E% E% E% E% E% E% E% E% E%r6   