o
    LDi                     @   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   c/var/www/www-root/data/www/77.83.87.30/venv/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
