
    h                         S r SSKJr  SSKJr  SSKJr  SSKJr	  SSK
Jr  SS	KJr  S
S/0r/ SQr " S S\5      r " S S\	5      rS r\r\rg)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)
    )getenv)warn)Session   )tqdm)TqdmWarning   )
MonoWorkerzgithub.com/	casperdcl)
TelegramIOtqdm_telegramttgranger   trangec                   L   ^  \ rS rSrSrSrU 4S jr\S 5       rS r	S r
SrU =r$ )	r      z/Non-blocking file-like IO using a Telegram Bot.zhttps://api.telegram.org/botc                    > [         TU ]  5         Xl        X l        [	        5       U l        U R                  R                  U l        U R                    g)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      G/var/www/html/env/lib/python3.13/site-packages/tqdm/contrib/telegram.pyr   TelegramIO.__init__   s9    
yNN++	    c                    [        U S5      (       a  U R                  $  U R                  R                  U R                  SU R
                  -  -   SU R                  -   S-   U R                  SS.S9R                  5       nUR                  S5      S:X  a  [        S	[        S
S9  g US   S   U l        U R                  $ ! [         a)  n[        R                  " [        U5      5         S nAg S nAff = f)N_message_idz%s/sendMessage`
MarkdownV2)r   r   
parse_modedata
error_codei  z2Creation rate limit: try increasing `mininterval`.r   )
stacklevelresultr   )hasattrr!   r   postAPIr   r   r   jsongetr   r   	Exception	tqdm_autowritestr)r   reses      r   r   TelegramIO.message_id%   s    4''###	(,,##+djj88!DIIo3$02 $ 3 4846  ww|$+I Q0 $'x=#> '''  	$OOCF##	$s   A B= =
C0C++C0c           	         U(       d  SnUR                  SS5      R                  5       nXR                  :X  a  gU R                  nUc  gXl         U R	                  U R
                  R                  U R                  SU R                  -  -   SU-   S-   U R                  USS.S	9nU$ ! [         a)  n[        R                  " [        U5      5         SnAgSnAff = f)
z/Replaces internal `message_id`'s text with `s`.z... Nz%s/editMessageTextr"   r#   )r   r   r   r$   r%   )replacestripr   r   submitr   r+   r,   r   r   r/   r0   r1   r2   )r   sr   futurer4   s        r   r1   TelegramIO.write8   s    AIIdB%%'		>__
		[[!!488.BTZZ.O#O!Agm$.lL ! MF M  	$OOCF##	$s   AB' '
C1CCc                      U R                  U R                  R                  U R                  SU R                  -  -   U R
                  U R                  S.S9nU$ ! [         a)  n[        R                  " [        U5      5         SnAgSnAff = f)zDeletes internal `message_id`.z%s/deleteMessage)r   r   r%   N)r;   r   r+   r,   r   r   r   r/   r0   r1   r2   )r   r=   r4   s      r   deleteTelegramIO.deleteM   sy    	[[!!488.@4::.M#M!%T__M ! OF M  	$OOCF##	$s   AA 
B$BB)r!   r   r   r   r   )r   
__module____qualname____firstlineno____doc__r,   r   propertyr   r1   r@   __static_attributes____classcell__r   s   @r   r   r      s3    9
(C ( ($*	 	r   r   c                   P   ^  \ rS rSrSrU 4S jrU 4S jrU 4S jrU 4S jrSr	U =r
$ )r   Y   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}'):
...     ...
c           	         > UR                  S5      (       dS  UR                  5       n[        UR                  S[	        S5      5      UR                  S[	        S5      5      5      U l        [        TU ]  " U0 UD6  g)z
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.
disabler   TQDM_TELEGRAM_TOKENr   TQDM_TELEGRAM_CHAT_IDN)r.   copyr   popr   tgior   r   r   argskwargsr   s      r   r   tqdm_telegram.__init__i   sh     zz)$$[[]F"

7F+@$AB

9f-D&EFHDI 	$)&)r   c                   > [         TU ]  " S0 UD6  U R                  nUR                  SS 5      (       a)  US   R	                  SS5      R	                  SS5      US'   OSUS'   U R
                  R                  U R                  " S0 UD65        g )N
bar_formatz<bar/>z	{bar:10u}z{bar}z{l_bar}{bar:10u}{r_bar} )r   displayformat_dictr.   r9   rR   r1   format_meter)r   rU   fmtr   s      r   rZ   tqdm_telegram.display{   s    !&!77<&& #L 1 9 9+!''.ww'D  !:C		))0C01r   c                    > [         TU ]  " U0 UD6  U R                  (       d  U R                  R	                  S5        g g )Nr8   )r   clearrM   rR   r1   rS   s      r   r`   tqdm_telegram.clear   s0    t&v&||IIOOB r   c                    > U R                   (       a  g [        TU ]	  5         U R                  (       d9  U R                  c  U R                  S:X  d  U R
                  R                  5         g g g )Nr   )rM   r   closeleaveposrR   r@   )r   r   s    r   rc   tqdm_telegram.close   sH    <<

tzz1dhh!mII 7D
r   )rR   )r   rB   rC   rD   rE   r   rZ   r`   rc   rG   rH   rI   s   @r   r   r   Y   s!    *$2 
 r   r   c                  &    [        [        U 6 40 UD6$ )zBShortcut for `tqdm.contrib.telegram.tqdm(range(*args), **kwargs)`.)r   range)rT   rU   s     r   r   r      s    000r   N)rE   osr   warningsr   requestsr   autor   r0   stdr   utils_workerr
   
__author____all__r   r   r   r   rY   r   r   <module>rq      sZ   	    $  $k]+

G> >B6I 6r1 	r   