o
    LDi                     @   sL   d dl mZ G dd deZededefddZededefdd	Zd
S )    )	lru_cachec                   @   s   e Zd ZdS )TokenValidationErrorN)__name__
__module____qualname__ r   r   _/var/www/www-root/data/www/77.83.87.30/venv/lib/python3.10/site-packages/aiogram/utils/token.pyr      s    r   tokenreturnc                 C   sp   t | tsdt|  d}t|tdd | D r d}t|| d\}}}|r0| r0|s6d}t|dS )	zA
    Validate Telegram token

    :param token:
    :return:
    z3Token is invalid! It must be 'str' type instead of z type.c                 s   s    | ]}|  V  qd S )N)isspace).0xr   r   r   	<genexpr>   s    z!validate_token.<locals>.<genexpr>z+Token is invalid! It can't contains spaces.:zToken is invalid!T)
isinstancestrtyper   any	partitionisdigit)r	   msgmessageleftseprightr   r   r   validate_token   s   
r   c                 C   s   t |  | d^}}t|S )zL
    Extract bot ID from Telegram token

    :param token:
    :return:
    r   )r   splitint)r	   
raw_bot_id_r   r   r   extract_bot_id    s   r    N)		functoolsr   	Exceptionr   r   boolr   r   r    r   r   r   r   <module>   s    