
    dh                       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rd dlmZ  ej"                  d      Z	 	 d	 	 	 	 	 	 	 	 	 dd	Z	 	 d	 	 	 	 	 	 	 	 	 dd
Z	 	 	 d	 	 	 	 	 	 	 	 	 	 	 ddZ	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 ddZy)    )annotations)create_start_linkcreate_startgroup_linkcreate_startapp_linkcreate_deep_linkcreate_telegram_linkencode_payloaddecode_payloadN)TYPE_CHECKINGCallableLiteralOptionalcast)r   )r
   r	   )Botz[^a-zA-Z0-9-_]c                   K   | j                          d{   j                  }t        t        t        |      d|||      S 7 ,w)aS  
    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_typepayloadencodeencodermer   r   r   strbotr   r   r   r   s        T/var/www/netwell/bot/venv/lib/python3.12/site-packages/aiogram/utils/deep_linking.pyr   r      sC     " ffh((Hc8$     AA-Ac                   K   | j                          d{   j                  }t        t        t        |      d|||      S 7 ,w)aX  
    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   s        r   r   r   4   sC     " ffh((Hc8$  r   c                   K   | j                          d{   j                  }t        t        t        |      d||||      S 7 -w)aS  
    Create 'startapp' deep link with your payload.

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

    **Read more**:

    - `Main Mini App links <https://core.telegram.org/api/links#main-mini-app-links>`_
    - `Direct mini app links <https://core.telegram.org/api/links#direct-mini-app-links>`_

    :param bot: bot instance
    :param payload: args passed with /start
    :param encode: encode payload with base64url or custom encoder
    :param app_name: if you want direct mini app link
    :param encoder: custom encoder callable
    :return: link
    Nstartapp)r   r   r   app_namer   r   r   )r   r   r   r$   r   r   s         r   r   r   O   sF     0 ffh((Hc8$  s   AA.Ac                T   t        |t              st        |      }|s|rt        ||      }t        j                  t
        |      rt        d      t        |      dkD  rt        d      |st        | fi t        t        |      |i}|S t        | |fi t        t        |      |i}|S )aV  
    Create deep link.

    :param username:
    :param link_type: `start`, `startgroup` or `startapp`
    :param payload: any string-convertible data
    :param app_name: if you want direct mini app link
    :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   r   	deep_links          r   r   r   r   s    & gs#g, ':	yyg&=
 	

 7|bDEE(Ud3	6JG5TU	  )8_S)@TV]?^_	    )FN)
r   r   r   r   r   boolr   "Optional[Callable[[bytes], bytes]]returnr   )FNN)r   r   r   r   r   r/   r$   Optional[str]r   r0   r1   r   )NFN)r   r   r   z*Literal['start', 'startgroup', 'startapp']r   r   r$   r2   r   r/   r   r0   r1   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   <module>r;      sH   " 
 C C 3 @bjj*+ 26		  0	
 	< 26		  0	
 	< "26 	     	 
 0  	 N #26''9' ' 	'
 ' 0' 	'r.   