o
    Fh                     @   sP   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   F/var/www/html/venv/lib/python3.10/site-packages/aiogram/utils/token.pyr      s    r   tokenreturnc                 C   sh   t | tstdt|  dtdd | D rd}t|| d\}}}|r.| r.|s2td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strr   typeany	partitionisdigit)r	   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    