Skip to content

Commit 6bce9b6

Browse files
committed
Fix parse update
1 parent 4939c89 commit 6bce9b6

File tree

2 files changed

+16
-16
lines changed

2 files changed

+16
-16
lines changed

src/entities/utils.py

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
from aiogram.types import Message, ReplyKeyboardMarkup
2-
from aiogram.types.base import TelegramObject
3-
from aiogram.types.callback_query import CallbackQuery
4-
from aiogram.types.pre_checkout_query import PreCheckoutQuery
1+
from aiogram.types import ReplyKeyboardMarkup, Update
52
from aiogram.utils.keyboard import ReplyKeyboardBuilder
63

74
from entities import ADMINS, TEXT
@@ -34,17 +31,18 @@ def get_keyboard(user: User):
3431
return user_markup()
3532

3633

37-
def get_update_user_info(update: TelegramObject):
34+
def get_update_user_info(update: Update):
3835
chat_id = 0
3936
username = ""
40-
if (
41-
isinstance(update, Message) or isinstance(update, PreCheckoutQuery)
42-
) and update.from_user:
43-
chat_id = update.from_user.id
44-
username = update.from_user.username
45-
elif isinstance(update, CallbackQuery):
46-
chat_id = update.from_user.id
47-
username = update.from_user.username
37+
if update.message and update.message.from_user:
38+
chat_id = update.message.chat.id
39+
username = update.message.from_user.username
40+
elif update.callback_query:
41+
chat_id = update.callback_query.from_user.id
42+
username = update.callback_query.from_user.username
43+
elif update.pre_checkout_query:
44+
chat_id = update.pre_checkout_query.from_user.id
45+
username = update.pre_checkout_query.from_user.username
4846

4947
if username is None:
5048
username = f"unknown:${chat_id}"

src/routers/dispatcher.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
from typing import Any, Awaitable, Callable, Dict
1+
from typing import Any, Awaitable, Callable, Dict, cast
22

33
from aiogram import Dispatcher
4+
from aiogram.types import Update
45
from aiogram.types.base import TelegramObject
56

67
from entities import get_update_user_info, storage
@@ -18,10 +19,11 @@
1819

1920
@dp.update.middleware
2021
async def get_user(
21-
handler: Callable[[TelegramObject, Dict[str, Any]], Awaitable[Any]],
22-
update: TelegramObject,
22+
handler: Callable[[Update, Dict[str, Any]], Awaitable[Any]],
23+
_update: TelegramObject,
2324
data: Dict[str, Any],
2425
):
26+
update = cast(Update, _update)
2527
chat_id, username = get_update_user_info(update)
2628
if chat_id == 0:
2729
return await handler(update, data)

0 commit comments

Comments
 (0)