Ë
    �è“j/&  ã                  ó¶   — d Z ddlmZ 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mZmZmZmZmZ ddlmZmZmZmZ dd„Zdd	„Zdd
„Z G d„ d«      Z e«       Zy)ub   Telegram userbot, Ð²Ñ�Ñ‚Ñ€Ð¾ÐµÐ½Ð½Ñ‹Ð¹ Ð² Ð¿Ð°Ð½ÐµÐ»ÑŒ: Ñ�Ñ‚Ð°Ñ‚ÑƒÑ�, Ð²Ñ…Ð¾Ð´ Ð¿Ð¾ ÐºÐ¾Ð´Ñƒ, 2FA.é    )ÚannotationsN)ÚOptional)ÚTelegramClient)ÚFloodWaitErrorÚPasswordHashInvalidErrorÚPhoneCodeExpiredErrorÚPhoneCodeInvalidErrorÚPhoneNumberInvalidErrorÚSessionPasswordNeededError)ÚAPI_HASHÚAPI_IDÚSESSION_PATHÚregister_handlersc                ó  — t        j                  ddt        | xs d«      «      }t        |«      dk(  r|d   dv rd|dd  z   }t        |«      dk(  rd|z   }t        |«      dk7  s|j	                  d«      st        d	«      ‚d
|z   S )Nú\DÚ é   r   )Ú7Ú8r   é   é
   u1   Ð£ÐºÐ°Ð¶Ð¸Ñ‚Ðµ Ð½Ð¾Ð¼ÐµÑ€ Ð² Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ðµ +7â€¦ú+)ÚreÚsubÚstrÚlenÚ
startswithÚ
ValueError)ÚrawÚdigitss     ú./var/www/api.ozpay.ru/ozpay/userbot_service.pyÚnormalize_tg_phoner"      s‡   € Ü�V‰V�E˜2œs 3¢9¨"›~Ó.€FÜ
ˆ6ƒ{�bÒ˜V A™Y¨*Ñ4Ø�v˜a˜b�zÑ!ˆÜ
ˆ6ƒ{�bÒØ�v‘ˆÜ
ˆ6ƒ{�bÒ × 1Ñ 1°#Ô 6ÜÐLÓMÐMØ�‰<Ðó    c                óœ   — | sy | j                   | j                  xs d| j                  xs d| j                  xs d| j                  xs ddœS )Nr   ©ÚidÚ
first_nameÚ	last_nameÚusernameÚphoner%   )Úmes    r!   Ú_me_payloadr,   "   sH   € ÙØà�e‰eØ—m‘mÒ) rØ—\‘\Ò' RØ—K‘KÒ% 2Ø—‘’˜Rñð r#   c                óˆ  — t        | t        «      rd| j                  › d�S t        | t        «      ryt        | t        «      ryt        | t
        «      ryt        | t        «      ryt        | «      xs | j                  j                  }d|j                  «       v s$d|j                  «       v rd	|j                  «       v ry
|d d S )Nu)   Telegram Ð¿Ñ€Ð¾Ñ�Ð¸Ñ‚ Ð¿Ð¾Ð´Ð¾Ð¶Ð´Ð°Ñ‚ÑŒ u    Ñ�ÐµÐº.u,   Ð�ÐµÐ²ÐµÑ€Ð½Ñ‹Ð¹ Ð½Ð¾Ð¼ÐµÑ€ Ñ‚ÐµÐ»ÐµÑ„Ð¾Ð½Ð°u   Ð�ÐµÐ²ÐµÑ€Ð½Ñ‹Ð¹ ÐºÐ¾Ð´u4   ÐšÐ¾Ð´ ÑƒÑ�Ñ‚Ð°Ñ€ÐµÐ», Ð·Ð°Ð¿Ñ€Ð¾Ñ�Ð¸Ñ‚Ðµ Ð½Ð¾Ð²Ñ‹Ð¹u!   Ð�ÐµÐ²ÐµÑ€Ð½Ñ‹Ð¹ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ 2FAzdatabase is lockedÚlockedÚsessionuh   Ð¡ÐµÑ�Ñ�Ð¸Ñ� Ð·Ð°Ð½Ñ�Ñ‚Ð°. ÐžÑ�Ñ‚Ð°Ð½Ð¾Ð²Ð¸ python userbot.py Ð¸ Ð¾Ñ�Ñ‚Ð°Ð²ÑŒ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ Ð¿Ð°Ð½ÐµÐ»ÑŒ.éð   )Ú
isinstancer   Úsecondsr
   r	   r   r   r   Ú	__class__Ú__name__Úlower)ÚexcÚtexts     r!   Ú_friendly_errorr8   .   sª   € Ü�#”~Ô&Ø:¸3¿;¹;¸-ÀxÐPÐPÜ�#Ô.Ô/Ø=Ü�#Ô,Ô-Ø(Ü�#Ô,Ô-ØEÜ�#Ô/Ô0Ø2Üˆs‹8Ò-�s—}‘}×-Ñ-€DØ˜tŸz™z›|Ñ+¨x¸4¿:¹:»<Ñ/GÈIÐY]×YcÑYcÓYeÑLeØyØ��ˆ:Ðr#   c                  ón   — e Zd Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Z	dd„Z
dd	„Zdd
„Zdd„Zddd„Zy)ÚUserbotRuntimec                óŠ   — d | _         d| _        d | _        d | _        d | _        d | _        t        j                  «       | _        y )NÚoffline)	ÚclientÚstatusr*   Úphone_code_hashr+   ÚerrorÚasyncioÚLockÚ_lock©Úselfs    r!   Ú__init__zUserbotRuntime.__init__@   s:   € Ø04ˆŒØˆŒØ$(ˆŒ
Ø.2ˆÔØ"&ˆŒØ$(ˆŒ
Ü—\‘\“^ˆ�
r#   c                ó`   — | j                   | j                  | j                  | j                  dœS )N©r>   r*   r@   r+   rH   rD   s    r!   ÚsnapshotzUserbotRuntime.snapshotI   s(   € à—k‘kØ—Z‘ZØ—Z‘ZØ—'‘'ñ	
ð 	
r#   c              ƒ  ó„   K  — t         rt        st        d«      ‚t        t        t         t        «      }t        |«       |S ­w)Nu)   Ð�Ðµ Ð·Ð°Ð´Ð°Ð½Ñ‹ TG_API_ID / TG_API_HASH)r   r   ÚRuntimeErrorr   r   r   ©rE   r=   s     r!   Ú_new_clientzUserbotRuntime._new_clientQ   s2   è ø€ Ý�XÜÐJÓKÐKÜ¤¬f´hÓ?ˆÜ˜&Ô!Øˆùs   ‚>A c              ƒ  ó  K  — | j                   €| j                  «       ƒ d {  –—† | _         | j                   j                  «       s"| j                   j                  «       ƒ d {  –—†  t	        | j                   «       | j                   S 7 Œf7 Œ'­w)N)r=   rM   Úis_connectedÚconnectr   rD   s    r!   Úensure_clientzUserbotRuntime.ensure_clientX   sh   è ø€ Ø�;‰;ÐØ $× 0Ñ 0Ó 2×2ˆDŒKØ�{‰{×'Ñ'Ô)Ø—+‘+×%Ñ%Ó'×'Ð'Ü˜$Ÿ+™+Ô&Ø�{‰{Ðð	 3øà'ús"   ‚ B¢B	£A BÁ#BÁ$&BÂBc              ƒ  ó  K  — | j                   4 ƒd {  –—†  	 | j                  «       ƒ d {  –—† }|j                  «       ƒ d {  –—† rCt        |j	                  «       ƒ d {  –—† «      | _        d| _        d | _        d | _        d | _	        nd| _        d | _        d | _        d d d «      ƒd {  –—†  y 7 Œž7 Œ‡7 Œq7 ŒV# t        $ r(}d| _        t        |«      | _        d | _        Y d }~ŒEd }~ww xY w7 ŒA# 1 ƒd {  –—†7  sw Y   y xY w­w)NÚonlineÚ
logged_outr@   )rC   rQ   Úis_user_authorizedr,   Úget_mer+   r>   r@   r*   r?   Ú	Exceptionr8   )rE   r=   r6   s      r!   ÚbootzUserbotRuntime.boot`   sä   è ø€ Ø—:‘:÷ 	ñ 	ðØ#×1Ñ1Ó3×3�Ø×2Ñ2Ó4×4Ð4Ü)°·±³×*?Ó@�D”GØ"*�D”KØ!%�D”JØ!%�D”JØ+/�DÕ(à".�D”KØ"�D”GØ!%�D”J÷	÷ 	ñ 	øà3øØ4øØ*?ùô ò Ø%�”Ü,¨SÓ1�”
Ø�—‘ûðúð	ø÷ 	÷ 	ñ 	üs›   ‚D“B2”D—C0™B:¬B4­B:ÁB6ÁB:Á!B8
Á"?B:Â!DÂ,C.Â-DÂ4B:Â6B:Â8B:Â:	C+ÃC&Ã!C0Ã&C+Ã+C0Ã.DÃ0DÃ6C9Ã7DÃ>Dc              ƒ  óB  K  — | j                   4 ƒd {  –—†  | j                  �#	 | j                  j                  «       ƒ d {  –—†  d | _        | j                  dk(  rd| _        d d d «      ƒd {  –—†  y 7 Œa7 Œ4# t        $ r Y Œ=w xY w7 Œ# 1 ƒd {  –—†7  sw Y   y xY w­w)NrS   r<   )rC   r=   Ú
disconnectrW   r>   rD   s    r!   ÚshutdownzUserbotRuntime.shutdowns   s”   è ø€ Ø—:‘:÷ 	(ñ 	(Ø�{‰{Ð&ðØŸ+™+×0Ñ0Ó2×2Ð2ð ˆDŒKØ�{‰{˜hÒ&Ø'�”÷	(÷ 	(ñ 	(øð 3ùÜ ò Ùðúð		(ø÷ 	(÷ 	(ñ 	(üsy   ‚B“A5”B—B
¥A9ÁA7ÁA9ÁB
Á$BÁ/BÁ0BÁ7A9Á9	BÂB
ÂBÂB
ÂBÂ
BÂBÂBÂBc              ƒ  óæ  K  — t        |«      }| j                  4 ƒd {  –—†  	 | j                  «       ƒ d {  –—† }|j                  «       ƒ d {  –—† rUt	        |j                  «       ƒ d {  –—† «      | _        d| _        d | _        | j                  «       cd d d «      ƒd {  –—†  S |j                  |«      ƒ d {  –—† }|| _        |j                  | _        d| _        d | _        d | _        | j                  «       cd d d «      ƒd {  –—†  S 7 Œñ7 ŒÚ7 ŒÄ7 Œ©7 Œt7 Œ\# t        $ r2}d| _        t        |«      | _        t        | j                  «      |‚d }~ww xY w7 ŒO# 1 ƒd {  –—†7  sw Y   y xY w­w)NrS   Úawaiting_coderT   )r"   rC   rQ   rU   r,   rV   r+   r>   r@   rI   Úsend_code_requestr*   r?   rW   r8   rK   )rE   Ú	phone_rawr*   r=   Úsentr6   s         r!   Úrequest_codezUserbotRuntime.request_code~   s@  è ø€ Ü" 9Ó-ˆØ—:‘:÷ 	#ñ 	#ð8Ø#×1Ñ1Ó3×3�Ø×2Ñ2Ó4×4Ð4Ü)°·±³×*?Ó@�D”GØ"*�D”KØ!%�D”JØŸ=™=›?÷	#÷ 	#ñ 	#ð $×5Ñ5°eÓ<×<�Ø"�”
Ø'+×';Ñ';�Ô$Ø-�”Ø!�”
Ø�”ð
 —=‘=“?÷%	#÷ 	#ò 	#øà3øØ4øØ*?øð		#øð =ùô ò 8Ø*�”Ü,¨SÓ1�”
Ü" 4§:¡:Ó.°CÐ7ûð8úð	#ø÷ 	#÷ 	#ñ 	#üsË   ‚E1žDŸE1¢E¤D·D¸DÁDÁDÁ,D
Á-*DÂE1Â#DÂ$E1Â)DÂ=DÂ>1DÃ/EÃ>E1Ä
EÄE1ÄDÄDÄDÄE1ÄDÄ	EÄ%-EÅEÅEÅE1ÅE.Å"E%Å#E.Å*E1c              ƒ  ó4  K  — t        j                  ddt        |xs d«      «      }t        |«      dk  rt	        d«      ‚| j
                  4 ƒd {  –—†  | j                  dvrt        d«      ‚| j                  st        d«      ‚	 | j                  «       ƒ d {  –—† }|j                  | j                  || j                  ¬«      ƒ d {  –—†  t        |j                  «       ƒ d {  –—† «      | _        d	| _        d | _        d | _        | j'                  «       cd d d «      ƒd {  –—†  S 7 ŒÙ7 Œ’7 Œd7 ŒI# t         $ r d
| _        d | _        Y ŒBt"        $ r+}t%        |«      | _        t        | j                  «      |‚d }~ww xY w7 Œ\# 1 ƒd {  –—†7  sw Y   y xY w­w)Nr   r   é   u#   Ð’Ð²ÐµÐ´Ð¸Ñ‚Ðµ ÐºÐ¾Ð´ Ð¸Ð· Telegram)r]   Úawaiting_passwordu(   Ð¡Ð½Ð°Ñ‡Ð°Ð»Ð° Ð·Ð°Ð¿Ñ€Ð¾Ñ�Ð¸Ñ‚Ðµ ÐºÐ¾Ð´u   Ð�Ð¾Ð¼ÐµÑ€ Ð½Ðµ Ð·Ð°Ð´Ð°Ð½)r*   Úcoder?   rS   rd   )r   r   r   r   r   rC   r>   rK   r*   rQ   Úsign_inr?   r,   rV   r+   r@   r   rW   r8   rI   )rE   Úcode_rawre   r=   r6   s        r!   Úsubmit_codezUserbotRuntime.submit_code”   sl  è ø€ Ü�v‰v�e˜R¤ X¢^°Ó!4Ó5ˆÜˆt‹9�qŠ=ÜÐBÓCÐCØ—:‘:÷ 	#ñ 	#Ø�{‰{Ð"HÑHÜ"Ð#MÓNÐNØ—:’:Ü"Ð#?Ó@Ð@ð8Ø#×1Ñ1Ó3×3�Ø—n‘nØŸ*™*ØØ$(×$8Ñ$8ð %ó ÷ ð ô
 &¨F¯M©M«O×&;Ó<�”Ø&�”Ø!�”
Ø'+�Ô$ð —=‘=“?÷-	#÷ 	#ò 	#øð 4øðøð
 '<ùô .ò "Ø1�”Ø!�–
Üò 8Ü,¨SÓ1�”
Ü" 4§:¡:Ó.°CÐ7ûð8úð'	#ø÷ 	#÷ 	#ñ 	#üs®   ‚AFÁD*ÁFÁ1FÂD2ÂD,Â/D2Ã	D.Ã
D2Ã&D0
Ã'"D2Ä	FÄFÄ$FÄ%FÄ,D2Ä.D2Ä0D2Ä2E>Å	FÅE>Å&E9Å9E>Å>FÆFÆFÆ	FÆ
FÆFc              ƒ  ój  K  — t        |xs d«      }|st        d«      ‚| j                  4 ƒd {  –—†  | j                  dk7  rt	        d«      ‚	 | j                  «       ƒ d {  –—† }|j                  |¬«      ƒ d {  –—†  t        |j                  «       ƒ d {  –—† «      | _	        d| _        d | _
        d | _        | j                  «       cd d d «      ƒd {  –—†  S 7 Œ­7 Œ|7 Œd7 ŒI# t        $ r+}t        |«      | _
        t	        | j                  «      |‚d }~ww xY w7 ŒD# 1 ƒd {  –—†7  sw Y   y xY w­w)Nr   u   Ð’Ð²ÐµÐ´Ð¸Ñ‚Ðµ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ 2FArd   u)   Ð¡ÐµÐ¹Ñ‡Ð°Ñ� Ð¿Ð°Ñ€Ð¾Ð»ÑŒ Ð½Ðµ Ð½ÑƒÐ¶ÐµÐ½)ÚpasswordrS   )r   r   rC   r>   rK   rQ   rf   r,   rV   r+   r@   r?   rW   r8   rI   )rE   rj   r=   r6   s       r!   Úsubmit_passwordzUserbotRuntime.submit_password°   s  è ø€ Ü�x’~ 2Ó&ˆÙÜÐ>Ó?Ð?Ø—:‘:÷ 	#ñ 	#Ø�{‰{Ð1Ò1Ü"Ð#NÓOÐOð	8Ø#×1Ñ1Ó3×3�Ø—n‘n¨h�nÓ7×7Ð7Ü%¨F¯M©M«O×&;Ó<�”Ø&�”Ø!�”
Ø'+�Ô$ð —=‘=“?÷	#÷ 	#ò 	#øð 4øØ7øØ&;ùô ò 8Ü,¨SÓ1�”
Ü" 4§:¡:Ó.°CÐ7ûð8úð	#ø÷ 	#÷ 	#ñ 	#üsž   ‚-D3¯C°D3³DÁC%Á"CÁ#C%Á<C!Á=C%ÂC#
Â"C%Â<DÃD3ÃDÃD3ÃC%Ã!C%Ã#C%Ã%	DÃ.&DÄDÄDÄD3ÄD0Ä$D'Ä%D0Ä,D3c              ƒ  óò  K  — | j                   4 ƒd {  –—†  d | _        d | _        d | _        	 | j	                  «       ƒ d {  –—† }|j                  «       ƒ d {  –—† r.t        |j                  «       ƒ d {  –—† «      | _        d| _	        nd | _        d| _	        | j                  «       cd d d «      ƒd {  –—†  S 7 Œ§7 Œ{7 Œe7 ŒJ# t        $ r d | _        d| _	        Y ŒBw xY w7 Œ*# 1 ƒd {  –—†7  sw Y   y xY w­w)NrS   rT   )rC   r*   r?   r@   rQ   rU   r,   rV   r+   r>   rW   rI   rL   s     r!   Úcancel_loginzUserbotRuntime.cancel_loginÃ   sÛ   è ø€ Ø—:‘:÷ 	#ñ 	#ØˆDŒJØ#'ˆDÔ ØˆDŒJð
+Ø#×1Ñ1Ó3×3�Ø×2Ñ2Ó4×4Ð4Ü)°·±³×*?Ó@�D”GØ"*�D•Kà"�D”GØ".�D”Kð —=‘=“?÷	#÷ 	#ò 	#øð
 4øØ4øØ*?ùô
 ò +Ø�”Ø*�–ð+úð	#ø÷ 	#÷ 	#ñ 	#üs�   ‚C7“B;”C7—C"®CÁB=ÁCÁB?ÁCÁ6C
Á7#CÂC"Â)C7Â5C Â6C7Â=CÂ?CÃCÃCÃC"ÃCÃC"Ã C7Ã"C4Ã(C+Ã)C4Ã0C7c              ƒ  óè  K  — | j                   4 ƒd {  –—†  | j                  �œ	 | j                  j                  «       rE| j                  j                  «       ƒ d {  –—† r#| j                  j	                  «       ƒ d {  –—†  n<| j                  j                  «       r"| j                  j                  «       ƒ d {  –—†  d | _        d | _        d | _        d | _        d | _	        d| _        	 | j!                  «       ƒ d {  –—†  | j#                  «       cd d d «      ƒd {  –—†  S 7 �Œ7 ŒÊ7 Œª7 Œo# t        j                  $ r+}t        |«      | _	        t        | j                  «      |‚d }~wt        $ r7 	 | j                  j                  «       ƒ d {  –—†7   n# t        $ r Y nw xY wY Œèw xY w7 Œ­# t        $ r!}d| _        t        |«      | _	        Y d }~ŒÐd }~ww xY w7 Œ¼# 1 ƒd {  –—†7  sw Y   y xY w­w)NrT   r@   )rC   r=   rO   rU   Úlog_outrZ   Úsqlite3ÚOperationalErrorr8   r@   rK   rW   r+   r*   r?   r>   rQ   rI   )rE   r6   s     r!   ÚlogoutzUserbotRuntime.logoutÕ   s›  è ø€ Ø—:‘:÷ 	#ñ 	#Ø�{‰{Ð&ðØ—{‘{×/Ñ/Ô1¸D¿K¹K×<ZÑ<ZÓ<\×6\Ð6\Ø"Ÿk™k×1Ñ1Ó3×3Ñ3ØŸ™×1Ñ1Ô3Ø"Ÿk™k×4Ñ4Ó6×6Ð6ð ˆDŒKØˆDŒGØˆDŒJØ#'ˆDÔ ØˆDŒJØ&ˆDŒKð2Ø×(Ñ(Ó*×*Ð*ð —=‘=“?÷5	#÷ 	#ò 	#ùð 7]øØ3øà6ùÜ×/Ñ/ò <Ü!0°Ó!5�D”JÜ& t§z¡zÓ2¸Ð;ûÜ ò ðØ"Ÿk™k×4Ñ4Ó6×6Ò6øÜ$ò Ùðüðúð +ùÜò 2Ø%�”Ü,¨SÓ1�—
‘
ûð2úð/	#ø÷ 	#÷ 	#ñ 	#üs  ‚G2“D$”G2—G¥7D-ÁD'Á!D-Á>D)Á?<D-Â;D+Â<D-Ã *GÃ+F.Ã>F,Ã?F.ÄGÄG2ÄGÄG2Ä'D-Ä)D-Ä+D-Ä-F)Å &E&Å&F)Å3FÆFÆFÆF)Æ	F#Æ F)Æ"F#Æ#F)Æ&GÆ(F)Æ)GÆ,F.Æ.	GÆ7GÇGÇGÇGÇG2ÇG/Ç#G&Ç$G/Ç+G2c              ƒ  ó¤  K  — | j                   }|�|j                  «       r| j                  dk7  rt        d«      ‚g }|j	                  |¬«      2 3 d {  –—† }|j
                  rd}n|j                  rd}nd}|j                  |j                  |j                  xs dj                  «       xs t        |j                  «      |dœ«       Œ|7 Œw6 |S ­w)	NrS   u   Ð®Ð·ÐµÑ€Ð±Ð¾Ñ‚ Ð½Ðµ Ð² Ñ�ÐµÑ‚Ð¸)ÚlimitÚuserÚgroupÚchannelr   )r&   ÚtitleÚkind)r=   rO   r>   rK   Úiter_dialogsÚis_userÚis_groupÚappendr&   ÚnameÚstripr   )rE   rt   r=   ÚitemsÚdialogry   s         r!   Úlist_dialogszUserbotRuntime.list_dialogsó   sÂ   è ø€ Ø—‘ˆØˆ> ×!4Ñ!4Ô!6¸$¿+¹+ÈÒ:QÜÐ@ÓAÐAØˆØ"×/Ñ/°eÐ/Ó<÷ 	ð 	�&Ø�~Š~Ø‘Ø—’Ø‘à �Ø�L‰LØ—i‘iØ Ÿ+™+Ò+¨×2Ñ2Ó4ÒF¼¸F¿I¹I»Øñõ ð	øÐ<ð ˆùs+   ‚ACÁCÁCÁCÁA4CÃCÃCN)ÚreturnÚNone)rƒ   Údict)rƒ   r   )r_   r   rƒ   r…   )rg   r   rƒ   r…   )rj   r   rƒ   r…   )éÈ   )rt   Úintrƒ   z
list[dict])r4   Ú
__module__Ú__qualname__rF   rI   rM   rQ   rX   r[   ra   rh   rk   rm   rr   r‚   © r#   r!   r:   r:   ?   s>   „ ó$ó
óóóó&	(ó#ó,#ó8#ó&#ó$#õ<r#   r:   )r   r   rƒ   r   )rƒ   zOptional[dict])r6   ÚBaseExceptionrƒ   r   )Ú__doc__Ú
__future__r   rA   r   rp   Útypingr   Útelethonr   Útelethon.errorsr   r   r   r	   r
   r   Úuserbotr   r   r   r   r"   r,   r8   r:   ÚruntimerŠ   r#   r!   ú<module>r“      sS   ðÙ hå "ã Û 	Û Ý å #÷÷ ÷ FÓ Eóó	ó÷"Eñ EñP Ó
�r#   