Ë
    'PbjÌ  ã                   óŒ   — d Z dZ	 ddlZddlmZ ddlmZ ddlmZm	Z	 ddlZddlmZ dd	lmZ  G d
„ d«      Zy# e
$ r dZY Œ$w xY w)z‡
This file is used by AsyncTeleBot.run_webhooks() function.

Fastapi and starlette(0.20.2+) libraries are required to run this script.
Té    N)ÚJSONResponse)ÚRequest)ÚServerÚConfigF)ÚUpdate)ÚOptionalc                   óp   — e Zd Z	 	 	 	 ddedee   dee   dee   dee   ddfd„Zd	„ Zd
„ Z	de
defd„Zd„ Zy)ÚAsyncWebhookListenerNÚsecret_tokenÚhostÚportÚssl_contextÚurl_pathÚreturnc                 óÊ   — | j                  «        t        j                  «       | _        || _        || _        || _        || _        || _        || _	        | j                  «        y)a(  
        Aynchronous implementation of webhook listener
        for asynchronous version of telebot.
        Not supposed to be used manually by user.
        Use AsyncTeleBot.run_webhooks() instead.

        :param bot: AsyncTeleBot instance.
        :type bot: telebot.async_telebot.AsyncTeleBot

        :param secret_token: Telegram secret token
        :type secret_token: str

        :param host: Webhook host
        :type host: str

        :param port: Webhook port
        :type port: int

        :param ssl_context: SSL context
        :type ssl_context: tuple

        :param url_path: Webhook url path
        :type url_path: str

        :raises ImportError: If FastAPI or uvicorn is not installed.
        :raises ImportError: If Starlette version is too old.

        :return: None
        N)Ú_check_dependenciesÚfastapiÚFastAPIÚappÚ_secret_tokenÚ_botÚ_portÚ_hostÚ_ssl_contextÚ	_url_pathÚ_prepare_endpoint_urls)ÚselfÚbotr   r   r   r   r   s          úK/var/www/html/venv/lib/python3.12/site-packages/telebot/ext/aio/webhooks.pyÚ__init__zAsyncWebhookListener.__init__   sW   € ðH 	× Ñ Ô"ä—?‘?Ó$ˆŒØ)ˆÔØˆŒ	ØˆŒ
ØˆŒ
Ø'ˆÔØ!ˆŒØ×#Ñ#Õ%ó    c                 ób   — t         st        d«      ‚dd l}|j                  dk  rt        d«      ‚y )Nz?Fastapi or uvicorn is not installed. Please install it via pip.r   z0.20.2zLStarlette version is too old. Please upgrade it: `pip3 install starlette -U`)Úfastapi_installedÚImportErrorÚ	starletteÚ__version__)r   r%   s     r   r   z(AsyncWebhookListener._check_dependenciesK   s1   € Ý ÜÐ_Ó`Ð`ãØ× Ñ  8Ò+ÜÐlÓmÐmØr!   c                 ój   — | j                   j                  | j                  | j                  dg¬«       y )NÚPOST)ÚendpointÚpathÚmethods)r   Úadd_api_routeÚprocess_updater   )r   s    r   r   z+AsyncWebhookListener._prepare_endpoint_urlsU   s)   € Ø�‰×Ñ¨×(;Ñ(;À$Ç.Á.Ð[aÐZbÐÕcr!   ÚrequestÚupdatec              ƒ   ót  K  — |j                   j                  d«      | j                  k7  rt        dddi¬«      S |j                   j                  d«      dk(  rQ|}t	        j
                  | j                  j                  t        j                  |«      g«      «       t        dd	¬
«      S t        dddi¬«      S ­w)z<
        Processes updates.

        :meta private:
        zX-Telegram-Bot-Api-Secret-Tokeni“  ÚerrorÚ	Forbidden)Ústatus_codeÚcontentzcontent-typezapplication/jsonÚ éÈ   )r3   )
ÚheadersÚgetr   r   ÚasyncioÚcreate_taskr   Úprocess_new_updatesr   Úde_json)r   r.   r/   Újson_strings       r   r-   z#AsyncWebhookListener.process_updateY   s�   è ø€ ð �?‰?×ÑÐ@ÓAÀT×EWÑEWÒWä¨C¸'À;Ð9OÔPÐPØ�?‰?×Ñ˜~Ó.Ð2DÒDØ ˆKÜ×Ñ §	¡	× =Ñ =¼v¿~¹~ÈkÓ?ZÐ>[Ó \Ô]Ü °Ô4Ð4ä¨°g¸{Ð5KÔLÐLùs   ‚B6B8c              ƒ   ó.  K  — t        | j                  | j                  | j                  | j                  d   | j                  d   ¬«      }t        |«      }|j                  «       ƒ d{  –—†  | j                  j                  «       ƒ d{  –—†  y7 Œ'7 Œ­w)z…
        Run app with the given parameters to init.
        Not supposed to be used manually by user.

        :return: None
        r   é   )r   r   r   Ússl_certfileÚssl_keyfileN)	r   r   r   r   r   r   Úserver   Úclose_session)r   ÚconfigÚservers      r   Úrun_appzAsyncWebhookListener.run_appk   s{   è ø€ ô ˜DŸH™HØ—‘Ø—‘Ø×*Ñ*¨1Ñ-Ø×)Ñ)¨!Ñ,ô	
ˆô ˜“ˆØ�l‰l‹n×ÐØ�i‰i×%Ñ%Ó'×'Ñ'ð 	øØ'ús$   ‚A'BÁ)BÁ*!BÂBÂBÂB)z	127.0.0.1i»  NN)Ú__name__Ú
__module__Ú__qualname__Ústrr   ÚintÚtupler    r   r   r   Údictr-   rF   © r!   r   r
   r
      s„   „ ð %0Ø$'Ø-1Ø(,ñ-&Ø!ð-&à˜s‘mð-&ð ˜s‘mð-&ð & e™_ð	-&ð
 # 3™-ð-&ð ó-&ò`òdðM¨Gð M¸Tó Mó$(r!   r
   )Ú__doc__r#   r   Úfastapi.responsesr   Úfastapi.requestsr   Úuvicornr   r   r$   r9   Útelebot.typesr   Útypingr   r
   rN   r!   r   ú<module>rU      sU   ðñð Ð ðÛÝ.Ý(ß&ó õ !õ ÷a(ò a(øð ò ØÒðús   †9 ¹AÁA