From 151f64396a3d5509b764566fde236ad063042092 Mon Sep 17 00:00:00 2001 From: Jakhongir Ganiev Date: Sun, 23 Jun 2024 16:51:07 +0500 Subject: [PATCH] Fixed webhook Bot initialization to use default properties in updated aiogram - Implemented `default=DefaultBotProperties(parse_mode=)` as per aiogram new changes. - Ensured compatibility with the updated aiogram version and proper handling of webhook requests. --- aiogram/webhook/aiohttp_server.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/aiogram/webhook/aiohttp_server.py b/aiogram/webhook/aiohttp_server.py index 7caa0e15..9e46301a 100644 --- a/aiogram/webhook/aiohttp_server.py +++ b/aiogram/webhook/aiohttp_server.py @@ -14,6 +14,7 @@ from aiogram.methods import TelegramMethod from aiogram.methods.base import TelegramType from aiogram.types import InputFile from aiogram.webhook.security import IPFilter +from aiogram.client.default import DefaultBotProperties def setup_application(app: Application, dispatcher: Dispatcher, /, **kwargs: Any) -> None: @@ -240,7 +241,7 @@ class TokenBasedRequestHandler(BaseRequestHandler): self, dispatcher: Dispatcher, handle_in_background: bool = True, - bot_settings: Optional[Dict[str, Any]] = None, + bot_settings: Optional[DefaultBotProperties] = None, **data: Any, ) -> None: """ @@ -291,5 +292,11 @@ class TokenBasedRequestHandler(BaseRequestHandler): """ token = request.match_info["bot_token"] if token not in self.bots: - self.bots[token] = Bot(token=token, **self.bot_settings) + if not isinstance(self.bot_settings, DefaultBotProperties): + raise TypeError( + "Passing `parse_mode`, `disable_web_page_preview` or `protect_content` " + "to Bot initializer is not supported anymore. These arguments have been removed " + f"in 3.7.0 version. Use `default=DefaultBotProperties(parse_mode=...)` argument instead." + ) + self.bots[token] = Bot(token=token, default=self.bot_settings) return self.bots[token]