From 21c82b27a07d8db94e6f6b17297c2cc26c41c370 Mon Sep 17 00:00:00 2001 From: NiKuma0 Date: Tue, 23 Aug 2022 18:02:36 +0300 Subject: [PATCH] Refactor: fixed the typo and bug with a poll_answer --- .../dispatcher/middlewares/user_context.py | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/aiogram/dispatcher/middlewares/user_context.py b/aiogram/dispatcher/middlewares/user_context.py index b1c90743..d242e62a 100644 --- a/aiogram/dispatcher/middlewares/user_context.py +++ b/aiogram/dispatcher/middlewares/user_context.py @@ -43,21 +43,25 @@ class UserContextMiddleware(BaseMiddleware): """ Resolve chat and user instance from Update object """ - if event.inline_query: - if event.inlinee_query.message: - return event.callback_query.message.chat, event.callback_query.from_user - return None, event.callback_query.from_user - - parametrs = ( + parameters = ( 'message', 'edited_message', 'channel_post', 'edited_channel_post', 'chosen_inline_result', 'callback_query', 'shipping_query', 'pre_checkout_query', 'poll_answer', 'my_chat_member', 'chat_member', 'chat_join_request', + 'inline_query', ) - for parametr in parametrs: - parametr = getattr(event, parametr, None) - if parametr: + for parameter in parameters: + telegram_obj = getattr(event, parameter, None) + if telegram_obj: break - return getattr(parametr, 'chat', None), getattr(parametr, 'from_user', None) + + if not telegram_obj: + return None, None + if parameter == 'inline_query' and telegram_obj.message: + return parameter.message.chat, parameter.message.from_user + if parameter == 'poll_answer': + return None, parameter.user + + return getattr(parameter, 'chat', None), getattr(parameter, 'from_user', None)