
    G˝iL                    $   d dl mZ g dZd dlZd dl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 d dlmZ  ej"                  d	      Zd
Z	 	 d	 	 	 	 	 	 	 	 	 ddZ	 	 d	 	 	 	 	 	 	 	 	 ddZ	 	 	 d	 	 	 	 	 	 	 	 	 	 	 ddZ	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 ddZy)    )annotations)create_deep_linkcreate_start_linkcreate_startapp_linkcreate_startgroup_linkcreate_telegram_linkdecode_payloadencode_payloadN)TYPE_CHECKINGLiteralcast)r   )r	   r
   )Callable)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        S/home/leshdev/mybot/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   7   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   R   sF     0 ffh((Hc8$  s   AA.Ac                t   t        |t              st        |      }|s|rt        ||      }t        j                  t
        |      rd}t        |      t        |      t        kD  rdt         d}t        |      |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 z characters long.)
isinstancer   r
   researchBAD_PATTERN
ValueErrorlenDEEPLINK_PAYLOAD_LENGTHr   r   )r   r   r   r$   r   r   msg	deep_links           r   r   r   u   s    & gs#g, ':	yyg&= 	 o
7|--&'>&??PQo(Ud3	6JG5TU	  )8_S)@TV]?^_	    )FN)
r   r   r   r   r   boolr   Callable[[bytes], bytes] | Nonereturnr   )FNN)r   r   r   r   r   r0   r$   
str | Noner   r1   r2   r   )NFN)r   r   r   z*Literal['start', 'startgroup', 'startapp']r   r   r$   r3   r   r0   r   r1   r2   r   )
__future__r   __all__r'   typingr   r   r   aiogram.utils.linkr   aiogram.utils.payloadr	   r
   collections.abcr   aiogramr   compiler)   r,   r   r   r   r    r/   r   <module>r=      sQ   " 
 / / 3 @(bjj*+  /3		  -	
 	< /3		  -	
 	< /3 	     	 
 -  	 N  /3))9) ) 	)
 ) -) 	)r/   