From 1b0bae2fc2eab2502e4dc810354ece3ad2617b4f Mon Sep 17 00:00:00 2001 From: h Date: Sat, 29 Mar 2025 13:14:30 +0200 Subject: [PATCH] [upd] better settings provider user id getter --- src/bot/dependencies/settings/user_settings.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/bot/dependencies/settings/user_settings.py b/src/bot/dependencies/settings/user_settings.py index bbd2fd9..0c2b241 100644 --- a/src/bot/dependencies/settings/user_settings.py +++ b/src/bot/dependencies/settings/user_settings.py @@ -1,4 +1,4 @@ -from aiogram.types import TelegramObject +from aiogram.types import InlineQuery, TelegramObject, User from dishka import Provider, Scope, provide from bot.modules.settings import UserSettings @@ -8,13 +8,13 @@ from utils.db import UserSettingsDocument class SettingsProvider(Provider): @provide(scope=Scope.REQUEST) async def get_user_settings(self, event: TelegramObject) -> UserSettings: - if not hasattr(event, "from_user") and ( - not hasattr(event, "inline_query") or event.inline_query is None + if isinstance(from_user := getattr(event, "from_user", None), User): + user_id = from_user.id + elif isinstance( + inline_query := getattr(event, "inline_query", None), InlineQuery ): - user_id = 0 - elif hasattr(event, "inline_query") and event.inline_query is not None: - user_id = event.inline_query.from_user.id + user_id = inline_query.from_user.id else: - user_id = event.from_user.id + user_id = 0 return await UserSettingsDocument.get_user_settings(user_id)