[docs]@dataclass(frozen=True)classTelegramAPIServer:""" Base config for API Endpoints """base:str"""Base URL"""file:str"""Files URL"""is_local:bool=False"""Mark this server is in `local mode <https://core.telegram.org/bots/api#using-a-local-bot-api-server>`_."""wrap_local_file:FilesPathWrapper=field(default=BareFilesPathWrapper())"""Callback to wrap files path in local mode"""
[docs]defapi_url(self,token:str,method:str)->str:""" Generate URL for API methods :param token: Bot token :param method: API method name (case insensitive) :return: URL """returnself.base.format(token=token,method=method)
[docs]@classmethoddeffrom_base(cls,base:str,**kwargs:Any)->"TelegramAPIServer":""" Use this method to auto-generate TelegramAPIServer instance from base URL :param base: Base URL :return: instance of :class:`TelegramAPIServer` """base=base.rstrip("/")returncls(base=f"{base}/bot{{token}}/{{method}}",file=f"{base}/file/bot{{token}}/{{path}}",**kwargs,)