o
    @j                     @  s   d dl mZ g dZd dlZd dlmZmZmZmZm	Z	 d dl
mZ d dlmZmZ er2d dlmZ edZ			ddddZ			ddddZ			ddddZdS )    )annotations)create_start_linkcreate_startgroup_linkcreate_deep_linkcreate_telegram_linkencode_payloaddecode_payloadN)TYPE_CHECKINGCallableLiteralOptionalcast)r   )r   r   )Botz
[^A-z0-9-]Fbotr   payloadstrencodeboolencoder"Optional[Callable[[bytes], bytes]]returnc                   *   |   I dH j}ttt|d|||dS )a[  
    Create 'start' deep link with your payload.

    If you need to encode payload or pass special characters -
        set encode as True

    :param bot: bot instance
    :param payload: args passed with /start
    :param encode: encode payload with base64url or custom encoder
    :param encoder: custom encoder callable
    :return: link
    Nstartusername	link_typer   r   r   mer   r   r   r   r   r   r   r   r    r   i/var/www/www-root/data/www/ai-bot.pdev.uz/venv/lib/python3.10/site-packages/aiogram/utils/deep_linking.pyr         r   c                   r   )a`  
    Create 'startgroup' deep link with your payload.

    If you need to encode payload or pass special characters -
        set encode as True

    :param bot: bot instance
    :param payload: args passed with /start
    :param encode: encode payload with base64url or custom encoder
    :param encoder: custom encoder callable
    :return: link
    N
startgroupr   r   r   r   r   r    r   4   r!   r   r   r   Literal['start', 'startgroup']c                 C  sh   t |ts	t|}|s|rt||d}tt|rtdt|dkr'tdt| fi t	t||iS )a  
    Create deep link.

    :param username:
    :param link_type: `start` or `startgroup`
    :param payload: any string-convertible data
    :param encode: encode payload with base64url or custom encoder
    :param encoder: custom encoder callable
    :return: deeplink
    )r   zfWrong payload! Only A-Z, a-z, 0-9, _ and - are allowed. Pass `encode=True` or encode payload manually.@   z)Payload must be up to 64 characters long.)

isinstancer   r   researchBAD_PATTERN
ValueErrorlenr   r   r   r   r   r    r   P   s   
r   )FN)
r   r   r   r   r   r   r   r   r   r   )r   r   r   r#   r   r   r   r   r   r   r   r   )
__future__r   __all__r&   typingr	   r
   r   r   r   aiogram.utils.linkr   aiogram.utils.payloadr   r   aiogramr   compiler(   r   r   r   r   r   r   r    <module>   s$    	
 