Ë
    çObjÌ!  ã                  ó†  — U d dl mZ d dlZd dlZd dlZd dlZd dlmZmZ d dl	m
Z
 d dlmZ d dlmZ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mZ d dlmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z' d dl(m)Z)m*Z* d dl+m,Z, d dl-m.Z.m/Z/ ddl0m1Z1 erd dl2m3Z3 d dl4m5Z5 edef   Z6ede7f   Z8dZ9de:d<    G d„ dejv                  «      Z<y)é    )ÚannotationsN)ÚAsyncGeneratorÚCallable)ÚEnum)Ú
HTTPStatus)ÚTYPE_CHECKINGÚAnyÚFinalÚcast)ÚValidationError)ÚSelf)ÚDefault)Ú
PRODUCTIONÚTelegramAPIServer)ÚClientDecodeErrorÚRestartingTelegramÚTelegramAPIErrorÚTelegramBadRequestÚTelegramConflictErrorÚTelegramEntityTooLargeÚTelegramForbiddenErrorÚTelegramMigrateToChatÚTelegramNotFoundÚTelegramRetryAfterÚTelegramServerErrorÚTelegramUnauthorizedError)ÚResponseÚTelegramMethod)ÚTelegramType)Ú	InputFileÚTelegramObjecté   )ÚRequestMiddlewareManager)ÚTracebackType)ÚBot.g      N@zFinal[float]ÚDEFAULT_TIMEOUTc                  ót  — e Zd ZdZeej                  ej                  ef	 	 	 	 	 	 	 	 	 dd„Z		 	 	 	 	 	 	 	 	 	 dd„Z
ej                  dd„«       Zej                  	 d	 	 	 	 	 	 	 dd„«       Zej                  	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 dd„«       Z	 d	 	 	 	 	 	 	 	 	 dd„Z	 d	 	 	 	 	 	 	 dd	„Zdd
„Z	 	 	 	 	 	 	 	 dd„Zy)ÚBaseSessionz�
    This is base class for all HTTP sessions in aiogram.

    If you want to create your own session, you must inherit from this class.
    c                óZ   — || _         || _        || _        || _        t	        «       | _        y)zÀ

        :param api: Telegram Bot API URL patterns
        :param json_loads: JSON loader
        :param json_dumps: JSON dumper
        :param timeout: Session scope request timeout
        N)ÚapiÚ
json_loadsÚ
json_dumpsÚtimeoutr#   Ú
middleware)Úselfr*   r+   r,   r-   s        úN/var/www/html/venv/lib/python3.12/site-packages/aiogram/client/session/base.pyÚ__init__zBaseSession.__init__7   s*   € ð ˆŒØ$ˆŒØ$ˆŒØˆŒä2Ó4ˆ�ó    c                óH  — 	 | j                  |«      }	 t        |j                     }|j                  |d|i¬«      }	t        j                  |cxk  rt        j                  k  rn n|	j                  r|	S t        t        |	j                  «      }
|	j                  x}rH|j                  rt!        ||
|j                  ¬«      ‚|j"                  rt%        ||
|j"                  ¬«      ‚|t        j&                  k(  rt)        ||
¬«      ‚|t        j*                  k(  rt-        ||
¬«      ‚|t        j.                  k(  rt1        ||
¬«      ‚|t        j2                  k(  rt5        ||
¬«      ‚|t        j6                  k(  rt9        ||
¬«      ‚|t        j:                  k(  rt=        ||
¬«      ‚|t        j>                  k\  rd	|
v rtA        ||
¬«      ‚tC        ||
¬«      ‚tE        ||
¬«      ‚# t        $ r}d}t        |||«      |‚d}~ww xY w# t        $ r}d}t        |||«      |‚d}~ww xY w)
z'
        Check response status
        zFailed to decode objectNÚbot)ÚcontextzFailed to deserialize object)ÚmethodÚmessageÚretry_after)r6   r7   Úmigrate_to_chat_id)r6   r7   Úrestart)#r+   Ú	Exceptionr   r   Ú__returning__Úmodel_validater   r   ÚOKÚIM_USEDÚokr   ÚstrÚdescriptionÚ
parametersr8   r   r9   r   ÚBAD_REQUESTr   Ú	NOT_FOUNDr   ÚCONFLICTr   ÚUNAUTHORIZEDr   Ú	FORBIDDENr   ÚREQUEST_ENTITY_TOO_LARGEr   ÚINTERNAL_SERVER_ERRORr   r   r   )r/   r4   r6   Ústatus_codeÚcontentÚ	json_dataÚeÚmsgÚresponse_typeÚresponserB   rC   s               r0   Úcheck_responsezBaseSession.check_responseL   s  € ð	<ØŸ™¨Ó0ˆIð	>Ü$ V×%9Ñ%9Ñ:ˆMØ$×3Ñ3°IÈÈsÀ|Ð3ÓTˆHô
 �=‰=˜KÔ=¬:×+=Ñ+=Õ=À(Ç+Â+ØˆOäœ3 × 4Ñ 4Ó5ˆà!×,Ñ,Ð,ˆ:Ð,Ø×%Ò%Ü(Ø!Ø'Ø *× 6Ñ 6ôð ð
 ×,Ò,Ü+Ø!Ø'Ø'1×'DÑ'Dôð ð
 œ*×0Ñ0Ò0Ü$¨F¸KÔHÐHØœ*×.Ñ.Ò.Ü"¨&¸+ÔFÐFØœ*×-Ñ-Ò-Ü'¨v¸{ÔKÐKØœ*×1Ñ1Ò1Ü+°6À;ÔOÐOØœ*×.Ñ.Ò.Ü(°ÀÔLÐLØœ*×=Ñ=Ò=Ü(°ÀÔLÐLØœ*×:Ñ:Ò:Ø˜KÑ'Ü(°ÀÔLÐLÜ%¨V¸[ÔIÐIäØØô
ð 	
øôc ò 	<ð ,ˆCÜ# C¨¨GÓ4¸!Ð;ûð	<ûô ò 	>Ø0ˆCÜ# C¨¨IÓ6¸AÐ=ûð	>ús.   ‚G" ”(H Ç"	H Ç+G;Ç;H È	H!ÈHÈH!c              ƒ  ó   K  — y­w)z&
        Close client session
        N© ©r/   s    r0   ÚclosezBaseSession.closeŽ   ó   è ø� ùó   ‚Nc              ƒ  ó   K  — y­w)zÕ
        Make request to Telegram Bot API

        :param bot: Bot instance
        :param method: Method instance
        :param timeout: Request timeout
        :return:
        :raise TelegramApiError:
        NrT   )r/   r4   r6   r-   s       r0   Úmake_requestzBaseSession.make_request”   rW   rX   c               ó   K  — d­–— y­w)z
        Stream reader
        r2   NrT   )r/   ÚurlÚheadersr-   Ú
chunk_sizeÚraise_for_statuss         r0   Ústream_contentzBaseSession.stream_content¥   s   è ø€ ð Œ	ùs   ‚	c           
     ó–  — |€yt        |t        «      r|S t        |t        «      r.|j                  |j                     }| j                  ||||¬«      S t        |t        «      rt        j                  d«      }|||<   d|› �S t        |t        «      rP|j                  «       D ��ci c]   \  }}| j                  |||d¬«      x}	 �||“Œ" }}}|r| j                  |«      S |S t        |t        «      r<|D �cg c]  }| j                  |||d¬«      x}	 �|‘Œ }}|r| j                  |«      S |S t        |t        j                  «      rCt        j                  j                  «       }	t        t!        |	|z   j#                  «       «      «      S t        |t        j                  «      r"t        t!        |j#                  «       «      «      S t        |t$        «      r| j                  |j&                  ||¬«      S t        |t(        «      r%| j                  |j+                  d¬«      |||¬«      S |r| j                  |«      S |S c c}}w c c}w )z+
        Prepare value before send
        N)r4   ÚfilesÚ_dumps_jsoné
   z	attach://F)r4   rb   )Úwarnings)Ú
isinstancerA   r   ÚdefaultÚnameÚprepare_valuer    ÚsecretsÚtoken_urlsafeÚdictÚitemsr,   ÚlistÚdatetimeÚ	timedeltaÚnowÚroundÚ	timestampr   Úvaluer!   Ú
model_dump)
r/   rt   r4   rb   rc   Údefault_valueÚkeyÚitemÚprepared_itemrq   s
             r0   ri   zBaseSession.prepare_value³   sc  € ð ˆ=ØÜ�eœSÔ!ØˆLÜ�eœWÔ%ØŸK™K¨¯
©
Ñ3ˆMØ×%Ñ% m¸ÀEÐWbÐ%ÓcÐcÜ�eœYÔ'Ü×'Ñ'¨Ó+ˆCØˆE�#‰JØ˜s˜eÐ$Ð$Ü�eœTÔ"ð "'§¡£÷á�C˜à%)×%7Ñ%7ØØØ#Ø$)ð	 &8ó &ð �Mð ðð �]Ñ"ðˆEñ ñ Ø—‘ uÓ-Ð-ØˆLÜ�eœTÔ"ð "öàà%)×%7Ñ%7ØØØ#Ø$)ð	 &8ó &ð �Mð ðò ðˆEð ñ Ø—‘ uÓ-Ð-ØˆLÜ�eœX×/Ñ/Ô0Ü×#Ñ#×'Ñ'Ó)ˆCÜ”u˜c E™k×4Ñ4Ó6Ó7Ó8Ð8Ü�eœX×.Ñ.Ô/Ü”u˜UŸ_™_Ó.Ó/Ó0Ð0Ü�eœTÔ"Ø×%Ñ% e§k¡k°sÀ%Ð%ÓHÐHÜ�eœ^Ô,Ø×%Ñ%Ø× Ñ ¨%Ð Ó0ØØØ'ð	 &ó ð ñ Ø—?‘? 5Ó)Ð)Øˆùócùò"s   Â&%I Ã7!Ic              ƒ  óš   K  — | j                   j                  | j                  |¬«      }t        t         |||«      ƒ d {  –—† «      S 7 Œ­w)N)r-   )r.   Úwrap_middlewaresrZ   r   r   )r/   r4   r6   r-   r.   s        r0   Ú__call__zBaseSession.__call__ü   sB   è ø€ ð —_‘_×5Ñ5°d×6GÑ6GÐQXÐ5ÓYˆ
Ü”L©
°3¸Ó(?×"?Ó@Ð@Ð"?ús   ‚>AÁ A	
Á	Ac              ƒ  ó   K  — | S ­w©NrT   rU   s    r0   Ú
__aenter__zBaseSession.__aenter__  s   è ø€ Øˆùs   ‚c              ƒ  ó@   K  — | j                  «       ƒ d {  –—†  y 7 Œ­wr~   )rV   )r/   Úexc_typeÚ	exc_valueÚ	tracebacks       r0   Ú	__aexit__zBaseSession.__aexit__  s   è ø€ ð �j‰j‹l×Òús   ‚–—)
r*   r   r+   Ú
_JsonLoadsr,   Ú
_JsonDumpsr-   ÚfloatÚreturnÚNone)
r4   r%   r6   úTelegramMethod[TelegramType]rK   ÚintrL   rA   rˆ   zResponse[TelegramType])rˆ   r‰   r~   )r4   r%   r6   rŠ   r-   z
int | Nonerˆ   r   )Né   i   T)r\   rA   r]   zdict[str, Any] | Noner-   r‹   r^   r‹   r_   Úboolrˆ   zAsyncGenerator[bytes, None])T)
rt   r	   r4   r%   rb   zdict[str, Any]rc   r�   rˆ   r	   )rˆ   r   )r�   ztype[BaseException] | Noner‚   zBaseException | Nonerƒ   zTracebackType | Nonerˆ   r‰   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚjsonÚloadsÚdumpsr&   r1   rR   ÚabcÚabstractmethodrV   rZ   r`   ri   r|   r   r„   rT   r2   r0   r(   r(   0   sõ  „ ñð ",Ø!%§¡Ø!%§¡Ø(ð5àð5ð ð5ð ð	5ð
 ð5ð 
ó5ð*@
àð@
ð -ð@
ð ð	@
ð
 ð@
ð 
 ó@
ðD 	×Ñòó ðð
 	×Ñð
 #ð	àðð -ðð ð	ð
 
òó ðð  	×Ñð *.ØØØ!%ðàðð 'ðð ð	ð
 ðð ðð 
%òó ðð$ !ðGàðGð ðGð ð	Gð
 ðGð 
óGðZ #ð	AàðAð -ðAð ð	Að
 
óAóðà,ðð (ðð (ð	ð
 
ôr2   r(   )=Ú
__future__r   r•   ro   r’   rj   Úcollections.abcr   r   Úenumr   Úhttpr   Útypingr   r	   r
   r   Úpydanticr   Útyping_extensionsr   Úaiogram.client.defaultr   Úaiogram.client.telegramr   r   Úaiogram.exceptionsr   r   r   r   r   r   r   r   r   r   r   r   Úaiogram.methodsr   r   Úaiogram.methods.baser   Úaiogram.typesr    r!   Úmiddlewares.managerr#   Útypesr$   Úaiogram.client.botr%   r…   rA   r†   r&   Ú__annotations__ÚABCr(   rT   r2   r0   ú<module>r©      s’   ðÞ "ã 
Û Û Û ß 4Ý Ý ß 2Ó 2å $Ý "å *ß A÷÷ ÷ ó ÷ 5Ý -ß 3å 9áÝ#å&à�c˜3�hÑ€
Ø�c˜3�hÑ€
à $€�Ó $ô^�#—'‘'õ ^r2   