a
    y{Jh                     @   sL   d dl mZ G dd deZe eedddZe eedddZd	S )
    )	lru_cachec                   @   s   e Zd ZdS )TokenValidationErrorN)__name__
__module____qualname__ r   r   E/var/www/shaz/venv/lib/python3.9/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\|sdt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>       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	   Z
raw_bot_id_r   r   r   extract_bot_id    s    r   N)		functoolsr   	Exceptionr   r   boolr   r   r   r   r   r   r   <module>   s
   