§
    OŠtjÙ  ã                   óª   — d 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giZg d¢Z G d„ de¦  «        Z G d„ de¦  «        Zd„ ZeZeZdS )zë
Sends updates to a Telegram bot.

Usage:
>>> from tqdm.contrib.telegram import tqdm, trange
>>> for i in trange(10, token='{token}', chat_id='{chat_id}'):
...     ...

![screenshot](https://tqdm.github.io/img/screenshot-telegram.gif)
é    )Úwarn)ÚSessioné   )Útqdm)ÚTqdmWarning)Úenvwrapé   )Ú
MonoWorkerzgithub.com/Ú	casperdcl)Ú
TelegramIOÚtqdm_telegramÚttgranger   Útrangec                   óH   ‡ — e Zd ZdZdZˆ fd„Zed„ ¦   «         Zd„ Zd„ Z	ˆ xZ
S )r   z/Non-blocking file-like IO using a Telegram Bot.zhttps://api.telegram.org/botc                 óº   •— t          ¦   «                              ¦   «          || _        || _        t	          ¦   «         | _        | j        j        | _        | j	         dS )z-Creates a new message in the given `chat_id`.N)
ÚsuperÚ__init__ÚtokenÚchat_idr   ÚsessionÚ	__class__Ú__name__ÚtextÚ
message_id)Úselfr   r   r   s      €úS/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/tqdm/contrib/telegram.pyr   zTelegramIO.__init__   sI   ø€ å‰Œ×ÒÑÔÐØˆŒ
ØˆŒÝ‘y”yˆŒØ”NÔ+ˆŒ	ØŒˆˆˆó    c                 óô  — t          | d¦  «        r| j        S 	 | j                             | j        › | j        › d�d| j        › d�| j        ddœ¬¦  «        }|                     ¦   «         }| 	                    ¦   «          |d         d         | _        | j        S # t          $ rU}|j        d	k    rt          d
t          d¬¦  «         n't          j        t!          |¦  «        ¦  «         Y d }~d S Y d }~d S d }~ww xY w)NÚ_message_idz/sendMessageú`Ú
MarkdownV2)r   r   Ú
parse_mode©ÚdataÚresultr   i­  z2Creation rate limit: try increasing `mininterval`.r   )Ú
stacklevel)Úhasattrr   r   ÚpostÚAPIr   r   r   ÚjsonÚraise_for_statusÚ	ExceptionÚstatus_coder   r   Ú	tqdm_autoÚwriteÚstr)r   ÚreqÚresÚes       r   r   zTelegramIO.message_id%   sK  € å�4˜Ñ'Ô'ð 	$ØÔ#Ð#ð	$Ø”,×#Ò#Ø”8Ð5˜TœZÐ5Ð5Ð5Ø. $¤)Ð.Ð.Ð.¸4¼<Ø$0ð2ð 2ð $ñ 3ô 3ˆCð —(’(‘*”*ˆCØ× Ò Ñ"Ô"Ð"ð  # 8œ}¨\Ô:ˆDÔØÔ#Ð#øõ ð 	(ð 	(ð 	(ØŒ #Ò%Ð%ÝÐIÝ ¨Qð0ñ 0ô 0ð 0ð 0õ ”¥ A¡¤Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'ð0ð 0ð 0ð 0ð 0ð 0øøøøð	(øøøs   ™A%B Â
C7Â"AC2Ã2C7c           	      óŽ  — |sd}|                      dd¦  «                             ¦   «         }|| j        k    rdS | j        }|€dS || _        	 |                      | j        j        | j        › | j        › d�d|› d�| j	        |ddœ¬	¦  «        }|S # t          $ r,}t          j        t          |¦  «        ¦  «         Y d}~dS d}~ww xY w)
z/Replaces internal `message_id`'s text with `s`.z...úÚ Nz/editMessageTextr    r!   )r   r   r   r"   r#   )ÚreplaceÚstripr   r   Úsubmitr   r(   r)   r   r   r,   r.   r/   r0   )r   Úsr   Úfuturer3   s        r   r/   zTelegramIO.write:   s  € àð 	ØˆAØ�IŠI�d˜BÑÔ×%Ò%Ñ'Ô'ˆØ�”	Š>ˆ>ØˆFØ”_ˆ
ØÐØˆFØˆŒ	ð	Ø—[’[Ø”Ô! d¤hÐ#L°´
Ð#LÐ#LÐ#LØ& !˜h˜h˜h°4´<Ø$.¸lðLð Lð !ñ Mô MˆFð ˆMøõ ð 	$ð 	$ð 	$ÝŒO�C ™FœFÑ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#øøøøð	$øøøs   Á?B Â
CÂ!B?Â?Cc                 óØ   — 	 |                       | j        j        d| j        | j        dœ¬¦  «        }|S # t
          $ r,}t          j        t          |¦  «        ¦  «         Y d}~dS d}~ww xY w)zDeletes internal `message_id`.z${self.API}{self.token}/deleteMessage)r   r   r#   N)	r9   r   r(   r   r   r,   r.   r/   r0   )r   r;   r3   s      r   ÚdeletezTelegramIO.deleteO   s‹   € ð	Ø—[’[Ø”Ô!Ð#IØ!%¤¸T¼_ÐMÐMð !ñ Oô OˆFð ˆMøõ ð 	$ð 	$ð 	$ÝŒO�C ™FœFÑ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#øøøøð	$øøøs   ‚/3 ³
A)½!A$Á$A))r   Ú
__module__Ú__qualname__Ú__doc__r)   r   Úpropertyr   r/   r=   Ú__classcell__©r   s   @r   r   r      s|   ø€ € € € € Ø9Ð9Ø
(€Cðð ð ð ð ð ð$ð $ñ „Xð$ð(ð ð ð*	ð 	ð 	ð 	ð 	ð 	ð 	r   r   c                   óp   ‡ — e Zd ZdZ eddd¬¦  «        dddœˆ fd„
¦   «         Zˆ fd	„Zˆ fd
„Zˆ fd„Zˆ xZ	S )r   a;  
    Standard `tqdm.auto.tqdm` but also sends updates to a Telegram Bot.
    May take a few seconds to create (`__init__`).

    - create a bot <https://core.telegram.org/bots#6-botfather>
    - copy its `{token}`
    - add the bot to a chat and send it a message such as `/start`
    - go to <https://api.telegram.org/bot`{token}`/getUpdates> to find out
      the `{chat_id}`
    - paste the `{token}` & `{chat_id}` below

    >>> from tqdm.contrib.telegram import tqdm, trange
    >>> for i in tqdm(iterable, token='{token}', chat_id='{chat_id}'):
    ...     ...
    r   ÚtelegramT)Ú	is_methodN)r   r   c                ó¶   •— |                      d¦  «        s)|                     ¦   «         }t          ||¦  «        | _         t	          ¦   «         j        |i |¤Ž dS )a.  
        Parameters
        ----------
        token  : str, required. Telegram token
            [default: ${TQDM_TELEGRAM_TOKEN}].
        chat_id  : str, required. Telegram chat ID
            [default: ${TQDM_TELEGRAM_CHAT_ID}].

        See `tqdm.auto.tqdm.__init__` for other parameters.
        ÚdisableN)ÚgetÚcopyr   Útgior   r   )r   r   r   ÚargsÚkwargsr   s        €r   r   ztqdm_telegram.__init__k   sY   ø€ ð �zŠz˜)Ñ$Ô$ð 	3Ø—[’[‘]”]ˆFÝ" 5¨'Ñ2Ô2ˆDŒIØ�‰ŒÔ˜$Ð) &Ð)Ð)Ð)Ð)Ð)r   c                 ó$  •—  t          ¦   «         j        di |¤Ž | j        }|                     dd ¦  «        r3|d                              dd¦  «                             dd¦  «        |d<   | j                              | j        di |¤Ž¦  «         d S )NÚ
bar_formatz<bar/>z	{bar:10u}z{bar}© )r   ÚdisplayÚformat_dictrI   r7   rK   r/   Úformat_meter)r   rM   Úfmtr   s      €r   rQ   ztqdm_telegram.display|   s¢   ø€ Ø�‰ŒŒÐ!Ð!˜&Ð!Ð!Ð!ØÔˆØ�7Š7�< Ñ&Ô&ð 	EØ # LÔ 1× 9Ò 9Ø˜+ñ!'ô !'ß'.¢w¨w¸Ñ'DÔ'Dð �ÑàŒ	�ŠÐ)˜Ô)Ð0Ð0¨CÐ0Ð0Ñ1Ô1Ð1Ð1Ð1r   c                 ó€   •—  t          ¦   «         j        |i |¤Ž | j        s| j                             d¦  «         d S d S )Nr6   )r   ÚclearrH   rK   r/   )r   rL   rM   r   s      €r   rV   ztqdm_telegram.clear„   sL   ø€ Ø�‰ŒŒ�tÐ&˜vÐ&Ð&Ð&ØŒ|ð 	 ØŒI�OŠO˜BÑÔÐÐÐð	 ð 	 r   c                 óÆ   •— | j         rd S t          ¦   «                              ¦   «          | j        s-| j        €| j        dk    s| j                             ¦   «          d S d S d S )Nr   )rH   r   ÚcloseÚleaveÚposrK   r=   )r   r   s    €r   rX   ztqdm_telegram.close‰   sf   ø€ ØŒ<ð 	ØˆFÝ‰Œ�Š‰ŒˆØ”
ð 	˜tœzÐ1°d´hÀ!²m°mØŒI×ÒÑÔÐÐÐð	ð 	°m°mr   )
r   r>   r?   r@   r   r   rQ   rV   rX   rB   rC   s   @r   r   r   [   sº   ø€ € € € € ðð ð €WˆV�Z¨4Ð0Ñ0Ô0Ø$(°$ð *ð *ð *ð *ð *ð *ñ 1Ô0ð*ð 2ð 2ð 2ð 2ð 2ð ð  ð  ð  ð  ð
ð ð ð ð ð ð ð ð r   r   c                  ó*   — t          t          | Ž fi |¤ŽS )zBShortcut for `tqdm.contrib.telegram.tqdm(range(*args), **kwargs)`.)r   Úrange)rL   rM   s     r   r   r   ‘   s   € å� ˜Ð0Ð0¨Ð0Ð0Ð0r   N)r@   Úwarningsr   Úrequestsr   Úautor   r.   Ústdr   Úutilsr   Úutils_workerr
   Ú
__author__Ú__all__r   r   r   r   rP   r   r   ú<module>re      s  ðð	ð 	ð Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð à $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $à˜k˜]Ð+€
Ø
GÐ
GÐ
G€ð@ð @ð @ð @ð @�ñ @ô @ð @ðF3ð 3ð 3ð 3ð 3�Iñ 3ô 3ð 3ðl1ð 1ð 1ð €Ø	€€€r   