diff --git a/aiogram/dispatcher/middlewares/user_context.py b/aiogram/dispatcher/middlewares/user_context.py index 3531beb7..b1c90743 100644 --- a/aiogram/dispatcher/middlewares/user_context.py +++ b/aiogram/dispatcher/middlewares/user_context.py @@ -43,32 +43,21 @@ class UserContextMiddleware(BaseMiddleware): """ Resolve chat and user instance from Update object """ - if event.message: - return event.message.chat, event.message.from_user - if event.edited_message: - return event.edited_message.chat, event.edited_message.from_user - if event.channel_post: - return event.channel_post.chat, None - if event.edited_channel_post: - return event.edited_channel_post.chat, None if event.inline_query: - return None, event.inline_query.from_user - if event.chosen_inline_result: - return None, event.chosen_inline_result.from_user - if event.callback_query: - if event.callback_query.message: + if event.inlinee_query.message: return event.callback_query.message.chat, event.callback_query.from_user return None, event.callback_query.from_user - if event.shipping_query: - return None, event.shipping_query.from_user - if event.pre_checkout_query: - return None, event.pre_checkout_query.from_user - if event.poll_answer: - return None, event.poll_answer.user - if event.my_chat_member: - return event.my_chat_member.chat, event.my_chat_member.from_user - if event.chat_member: - return event.chat_member.chat, event.chat_member.from_user - if event.chat_join_request: - return event.chat_join_request.chat, event.chat_join_request.from_user - return None, None + + parametrs = ( + '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', + ) + for parametr in parametrs: + parametr = getattr(event, parametr, None) + if parametr: + break + return getattr(parametr, 'chat', None), getattr(parametr, 'from_user', None)