o
    4˜ŽjÝ  ã                   @   sœ   d dl mZmZ d dlmZmZ d dlmZ d dlm	Z	 G dd„ deƒZ
G dd„ de
ƒZG d	d
„ d
e
ƒZedd�G dd„ dƒƒZeddd�Zeddd�ZdS )é    )ÚABCÚabstractmethod)Ú	dataclassÚfield)ÚPath)ÚAnyc                   @   sH   e Zd ZedeeB deeB fdd„ƒZedeeB deeB fdd„ƒZdS )ÚFilesPathWrapperÚpathÚreturnc                 C   ó   d S ©N© ©Úselfr	   r   r   úT/var/www/kodo/Anonymous/send/lib/python3.10/site-packages/aiogram/client/telegram.pyÚto_local   ó   zFilesPathWrapper.to_localc                 C   r   r   r   r   r   r   r   Ú	to_server   r   zFilesPathWrapper.to_serverN)Ú__name__Ú
__module__Ú__qualname__r   r   Ústrr   r   r   r   r   r   r      s
     r   c                   @   s@   e Zd ZdeeB deeB fdd„ZdeeB deeB fdd„ZdS )ÚBareFilesPathWrapperr	   r
   c                 C   ó   |S r   r   r   r   r   r   r      ó   zBareFilesPathWrapper.to_localc                 C   r   r   r   r   r   r   r   r      r   zBareFilesPathWrapper.to_serverN)r   r   r   r   r   r   r   r   r   r   r   r      s    r   c                	   @   s€   e Zd Zdededdfdd„ZedeeB deeB d	eeB defd
d„ƒZdeeB deeB fdd„ZdeeB deeB fdd„Z	dS )ÚSimpleFilesPathWrapperÚserver_pathÚ
local_pathr
   Nc                 C   s   || _ || _d S r   )r   r   )r   r   r   r   r   r   Ú__init__   s   
zSimpleFilesPathWrapper.__init__Úbase1Úbase2Úvaluec                 C   s   t |ƒ |¡}|| S r   )r   Úrelative_to)Úclsr   r    r!   Úrelativer   r   r   Ú_resolve   s   zSimpleFilesPathWrapper._resolver	   c                 C   ó   | j | j| j|d�S ©N)r   r    r!   )r%   r   r   r   r   r   r   r   (   ó   zSimpleFilesPathWrapper.to_localc                 C   r&   r'   )r%   r   r   r   r   r   r   r   +   r(   z SimpleFilesPathWrapper.to_server)
r   r   r   r   r   Úclassmethodr   r%   r   r   r   r   r   r   r      s    þýüû	r   T)Úfrozenc                   @   s”   e Zd ZU dZeed< 	 eed< 	 dZeed< 	 ee	ƒ d�Z
eed< 	 ded	ed
efdd„ZdedeeB d
efdd„Zededed
d fdd„ƒZdS )ÚTelegramAPIServerz'
    Base config for API Endpoints
    ÚbaseÚfileFÚis_local)ÚdefaultÚwrap_local_fileÚtokenÚmethodr
   c                 C   ó   | j j||d�S )zž
        Generate URL for API methods

        :param token: Bot token
        :param method: API method name (case insensitive)
        :return: URL
        )r1   r2   )r,   Úformat)r   r1   r2   r   r   r   Úapi_url?   ó   zTelegramAPIServer.api_urlr	   c                 C   r3   )z‰
        Generate URL for downloading files

        :param token: Bot token
        :param path: file path
        :return: URL
        )r1   r	   )r-   r4   )r   r1   r	   r   r   r   Úfile_urlI   r6   zTelegramAPIServer.file_urlÚkwargsc                 K   s*   |  d¡}| d|› d�|› d�dœ|¤ŽS )z²
        Use this method to auto-generate TelegramAPIServer instance from base URL

        :param base: Base URL
        :return: instance of :class:`TelegramAPIServer`
        ú/z/bot{token}/{method}z/file/bot{token}/{path}©r,   r-   Nr   )Úrstrip)r#   r,   r8   r   r   r   Ú	from_baseS   s   
þýzTelegramAPIServer.from_baseN)r   r   r   Ú__doc__r   Ú__annotations__r.   Úboolr   r   r0   r   r5   r   r7   r)   r   r<   r   r   r   r   r+   /   s   
 

r+   z,https://api.telegram.org/bot{token}/{method}z/https://api.telegram.org/file/bot{token}/{path}r:   z1https://api.telegram.org/bot{token}/test/{method}z4https://api.telegram.org/file/bot{token}/test/{path}N)Úabcr   r   Údataclassesr   r   Úpathlibr   Útypingr   r   r   r   r+   Ú
PRODUCTIONÚTESTr   r   r   r   Ú<module>   s"    
3þ
þ