diff --git a/aiogram/dispatcher/__init__.py b/aiogram/dispatcher/__init__.py index 61e116d4..7312aac7 100644 --- a/aiogram/dispatcher/__init__.py +++ b/aiogram/dispatcher/__init__.py @@ -181,6 +181,7 @@ class Dispatcher: raise RuntimeError('Pooling already started') log.info('Start pooling.') context.set_value(MODE, LONG_POOLING) + context.set_value('dispatcher', self) context.set_value('bot', self.bot) self._pooling = True diff --git a/aiogram/dispatcher/webhook.py b/aiogram/dispatcher/webhook.py index 50136aad..89636aa8 100644 --- a/aiogram/dispatcher/webhook.py +++ b/aiogram/dispatcher/webhook.py @@ -53,7 +53,10 @@ class WebhookRequestHandler(web.View): :return: :class:`aiogram.Dispatcher` """ - return self.request.app[BOT_DISPATCHER_KEY] + dp = self.request.app[BOT_DISPATCHER_KEY] + context.set_value('dispatcher', dp) + context.set_value('bot', dp.bot) + return dp async def parse_update(self, bot): """ @@ -63,7 +66,7 @@ class WebhookRequestHandler(web.View): :return: :class:`aiogram.types.Update` """ data = await self.request.json() - update = types.Update.deserialize(data) + update = types.Update(**data) bot.prepare_object(update, parent=bot) return update