(
self,
token: str,
base_url: BaseUrl = "https://api.telegram.org/bot",
base_file_url: BaseUrl = "https://api.telegram.org/file/bot",
request: BaseRequest | None = None,
get_updates_request: BaseRequest | None = None,
private_key: bytes | None = None,
private_key_password: bytes | None = None,
local_mode: bool = False,
)
| 322 | ) |
| 323 | |
| 324 | def __init__( |
| 325 | self, |
| 326 | token: str, |
| 327 | base_url: BaseUrl = "https://api.telegram.org/bot", |
| 328 | base_file_url: BaseUrl = "https://api.telegram.org/file/bot", |
| 329 | request: BaseRequest | None = None, |
| 330 | get_updates_request: BaseRequest | None = None, |
| 331 | private_key: bytes | None = None, |
| 332 | private_key_password: bytes | None = None, |
| 333 | local_mode: bool = False, |
| 334 | ): |
| 335 | super().__init__(api_kwargs=None) |
| 336 | if not token: |
| 337 | raise InvalidToken("You must pass the token you received from https://t.me/Botfather!") |
| 338 | self._token: str = token |
| 339 | |
| 340 | self._base_url: str = _parse_base_url(base_url, self._token) |
| 341 | self._base_file_url: str = _parse_base_url(base_file_url, self._token) |
| 342 | self._LOGGER.debug("Set Bot API URL: %s", self._base_url) |
| 343 | self._LOGGER.debug("Set Bot API File URL: %s", self._base_file_url) |
| 344 | |
| 345 | self._local_mode: bool = local_mode |
| 346 | self._bot_user: User | None = None |
| 347 | self._private_key: bytes | None = None |
| 348 | self._requests_initialized: bool = False |
| 349 | self._bot_initialized: bool = False |
| 350 | |
| 351 | self._request: tuple[BaseRequest, BaseRequest] = ( |
| 352 | ( |
| 353 | HTTPXRequest(connection_pool_size=1) |
| 354 | if get_updates_request is None |
| 355 | else get_updates_request |
| 356 | ), |
| 357 | HTTPXRequest() if request is None else request, |
| 358 | ) |
| 359 | |
| 360 | # this section is about issuing a warning when using HTTP/2 and connect to a self-hosted |
| 361 | # bot api instance, which currently only supports HTTP/1.1. Checking if a custom base url |
| 362 | # is set is the best way to do that. |
| 363 | |
| 364 | warning_string = "" |
| 365 | |
| 366 | if ( |
| 367 | isinstance(self._request[0], HTTPXRequest) |
| 368 | and self._request[0].http_version == "2" |
| 369 | and not self.base_url.startswith("https://api.telegram.org/bot") |
| 370 | ): |
| 371 | warning_string = "get_updates_request" |
| 372 | |
| 373 | if ( |
| 374 | isinstance(self._request[1], HTTPXRequest) |
| 375 | and self._request[1].http_version == "2" |
| 376 | and not self.base_url.startswith("https://api.telegram.org/bot") |
| 377 | ): |
| 378 | if warning_string: |
| 379 | warning_string += " and request" |
| 380 | else: |
| 381 | warning_string = "request" |
no test coverage detected