o
    &i.                     @   sR  d dl mZmZmZmZmZ d dlmZmZ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 defddZdedB fdd	Zd
edB dedB fddZdedB fddZdefddZdefddZdefddZdeddfddZd'dededB fddZdedee B fddZ!dede"fd d!Z#d"ed#ed$efd%d&Z$dS )(    )
JsonObjectJsonObjectValue
JsonString
JsonNumberMessage)TelegramClient	functionstypeserrorsN)loggerreturnc                  C   s   t  d} | jdd d | S )Nzsessions/*.sessionc                 S   s   t j| S N)ospathgetmtime)x r   1C:\Users\omid\Desktop\resetter\utils\functions.py<lambda>   s    zget_sessions.<locals>.<lambda>)key)globsort)sessionsr   r   r   get_sessions   s   
r   c                  C   r   z)t dddd} dd | D }W d    n1 sw   Y  |r't|W S d W S  ty8   td Y d S w )Nzutils/proxies.txtrutf-8encodingc                 S   s*   g | ]}|  r|  d s|  qS #strip
startswith.0liner   r   r   
<listcomp>   s   * zget_proxy.<locals>.<listcomp>z8utils/proxies.txt not found. Continuing without proxies.openrandomchoiceFileNotFoundErrorr   warning)fproxiesr   r   r   	get_proxy      
r0   r&   c                 C   s   | rA|  d}z/t|dkr|\}}d|t|dW S t|dkr4d|d t|d |d |d d	W S W d S  ty@   Y d S w d S )
N:   socks5)
proxy_typeaddrport   r         )r5   r6   r7   usernamepassword)splitlenint	Exception)r&   partsr6   r7   r   r   r   parse_proxy_line   s   
&rB   c                  C   r   )Nzutils/push_tokens.txtr   r   r   c                 S   &   g | ]}|  r|d s|  qS r   r!   )r%   lr   r   r   r'   2      & z"get_push_token.<locals>.<listcomp>z utils/push_tokens.txt not found.r(   )r.   tokensr   r   r   get_push_token/   r1   rG   c                   C   s   t g dS )N)zSDK 29zSDK 30SDK 31zSDK 32zSDK 33zSDK 34r*   r+   r   r   r   r   get_random_system_version9   s   rJ   c                   C   s   t dgS )Nz12.0.1 (6166)rI   r   r   r   r   get_random_app_version=   s   rK   c                  C   sp   z-t dddd} dd |  D }W d    n1 sw   Y  |r+t| W S dW S  ty7   Y dS w )Nzutils/device.txtr   r   r   c                 S   rC   r   r!   r$   r   r   r   r'   D   rE   z+get_random_device_model.<locals>.<listcomp>zPixel 5)r)   	readlinesr*   r+   r"   r,   )r.   Zdevicesr   r   r   get_random_device_modelA   s   rM   clientc              
      s   z2d| j _ttdtt tdtdtdtdtdtdtd	td
tdtdg| j _W d S  tyN } zt	
d|  W Y d }~d S d }~ww )NZandroidZdevice_tokendataZ@49C1522548EBACD46CE322B6FD47F6092BB745D0F88082145CAF35E14DCC38E1Z	installerzcom.android.vendingZ
package_idzorg.telegram.messengerZ	tz_offsetiZperf_catr3   z5[patch_client] warning: couldn't patch init_request: )_init_request	lang_packr   r   r   rG   r   paramsr@   r   debug)rN   er   r   r   patch_clientJ   s   rU   #   connect_timeoutc                    s   z.t t }tt }t|ddddddd|d	}t|I d H  tj|	 | d	I d H  |W S  tj
y[   td
tj| d z| I d H  W Y d S  tyZ   Y Y d S w  ty } z)tdtj| d|  z	| I d H  W n	 ty   Y nw W Y d }~d S d }~ww )N   Z eb06d4abfb49dc3eeb1aeb98ae0f581ezsamsungSM-A125Fz11.6.2 (56152)rH   zfr-CAfr)	sessionapi_idapi_hashdevice_modelapp_versionsystem_versionsystem_lang_code	lang_codeproxy)timeoutz+[create_client] Timeout connecting session z (proxy may be slow).z*[create_client] Error creating client for z: )r*   r+   r   rB   r0   r   rU   asynciowait_forconnectTimeoutErrorr   errorr   r   basename
disconnectr@   )rW   Zsession_pathrb   telegramrT   r   r   r   create_client_for_session^   sJ   
rl   api_urlc              	      s   z>t jdddd4 I d H $}|| I d H }td|j}|r%|dndW  d   I d H  W S 1 I d H s8w   Y  W d S  tyI   Y dS w )NT
   F)Zfollow_redirectsrc   verifyz(\d{5})r9   )httpxZAsyncClientgetresearchtextgroupr@   )rm   rN   responsematchr   r   r   extract_login_code   s   4rx   accountc                    s  z`t d t I d H }|r[d| v r| d\}}nd| v r(| d\}}||I d H }t d|j d t|jtjj	rJt 
d W dS t|jtjjrt d z.|tjj||jd	I d H }t|jd
d }t d| d| d d|rdfW W S dfW W S  ty } zt 
d|  W Y d }~W dS d }~ww t|jtjjr[t d tdI d H  t|dI d H }|st 
d| d W dS z t d| d |j|t||jdI d H }t d W W dS  tjjy>   t d z"|tjjdd I d H }t d!| d d|rd"ndfW  Y W S  ty= } zt 
d#|  W Y d }~Y W d$S d }~ww  tyZ } zt 
d%|  W Y d }~W d$S d }~ww t 
d& W d'S  ty~ } zt 
d(|  W Y d }~d'S d }~ww ))Nz,--------------------------------------------|-z.<green>[+]</green> Code request sent, <yellow>z	</yellow>z><red>[-]</red> Unsuccess in sending SMS verifaction code to tg)Funsuccess_smsz&<green>[+]</green> Resetting email ...)phone_numberphone_code_hashreset_pending_datezB<green>[+]</green> Account resetted successfully (email), <yellow>z, z
</yellow>.Tsuccess_reset_emailunsuccess_reset_2faz.<red>[-]</red> Received error in reset email, )Funsuccess_reset_emailzA<green>[+]</green> Sleep 10s to receive last verifaction code ...rn   )rm   z,<red>[-]</red> Not found verifaction code, ())FZnot_found_verifaction_codez<<green>[+]</green> Received last verifaction code, (<yellow>z
</yellow>))phonecoder~   z2<green>[+]</green> Account logged in successfully.)Tloginz/<green>[+]</green> Trying to reset password ...ZF79CdnW0eyrcZvQ2)reasonz;<green>[+]</green> Account resetted successfully, (<yellow>success_reset_2faz(<red>[-]</red> Received error in reset, )Fr   z(<red>[-]</red> Received error in login, z1[reset_number] Error in create_client_for_session)Funknowz[reset_number] Error -> )r   inforl   r=   send_code_requesttype
isinstancer	   authSentCodeTypeApprh   SentCodeTypeEmailCoder   ResetLoginEmailRequestr~   getattrr@   SentCodeTypeSmsrd   sleeprx   sign_inr?   r
   rpcerrorlistSessionPasswordNeededErrorry   DeleteAccountRequest)ry   rk   r}   rm   rv   pendingrh   Zverifaction_coder   r   r   reset_number   sz   






r   user_idaccountsprocess_messagec           	   
      s  zg g g g g g d}|D ]}t |dI d H }|d r*|d dkr*|d | na|d dkr>|d dkr>|d | nM|d rP|d dkrP|d | n;|d dkrd|d d	krd|d	 | n'|d dkrx|d d
krx|d
 | n|d dkr|d dkr|d | z#tdd | D }|dt| d| dt| dI d H  W q   Y qt|d dkrtd|  dd}|d|d  W d    n1 sw   Y  t|d dkrtd|  dd}|d|d  W d    n	1 sw   Y  t|d dkr9td|  dd}|d|d  W d    n	1 s4w   Y  t|d	 dkrftd|  dd}|d|d	  W d    n	1 saw   Y  t|d
 dkrtd|  dd}|d|d
  W d    n	1 sw   Y  t|d dkrtd|  dd}|d|d  W d    W d S 1 sw   Y  W d S W d S  t	y } zt
d|  W Y d }~d S d }~ww )N)r   r   r   r   r|   r   )ry   r   r9   r   Fr   r   r   r|   r   c                 s   s    | ]}t |V  qd S r   )r>   )r%   vr   r   r   	<genexpr>   s    z reset_numbers.<locals>.<genexpr>u=   <b>✅ File analyzed, resetting...

• Total Numbers: <code>u   </code>
• Processed: <code>/z</code></b>(z)-(success-reset-email).txtw
z)-(unsuccess-reset-email).txtz)-(success-reset-2fa).txtz)-(unsuccess-reset-2fa).txtz)-(unsuccess_sms).txtz)-(unknow).txtz+[reset_numbers] Error resetting numbers -> )r   appendsumvalueseditr>   r)   writejoinr@   r   rh   )	r   r   r   statusry   rv   Z
total_donefilerh   r   r   r   reset_numbers   sl   0(r   )rV   )%Ztelethon.tl.typesr   r   r   r   r   telethonr   r   r	   r
   rd   r*   rp   r   rr   r   Zutils.loggerr   listr   strr0   dictrB   rG   rJ   rK   rM   rU   r?   rl   boolrx   tupler   r   r   r   r   r   <module>   s*   

	%
C