From c9fd78e438eb047beac9e59008506ba0fb37c063 Mon Sep 17 00:00:00 2001 From: Kirill Kirilenko Date: Wed, 26 Nov 2025 01:03:28 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=20=D0=B2=D1=8B=D0=B2=D0=BE=D0=B4=20=D0=B8=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=20=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2?= =?UTF-8?q?=D0=B0=D1=82=D0=B5=D0=BB=D0=B5=D0=B9=20TG=20=D0=B1=D0=B5=D0=B7?= =?UTF-8?q?=20=D1=84=D0=B0=D0=BC=D0=B8=D0=BB=D0=B8=D0=B8.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tg/handlers/admin.py | 6 +++--- tg/handlers/user.py | 3 ++- utils.py | 8 ++++++++ 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/tg/handlers/admin.py b/tg/handlers/admin.py index c470a21..f6dffcd 100644 --- a/tg/handlers/admin.py +++ b/tg/handlers/admin.py @@ -95,9 +95,9 @@ async def warning_handler(message: Message, bot: Bot): user = database.DB.get_user(chat_id, user_id) user_info = message.reply_to_message.from_user - await message.answer('У {} {} {} {}.'.format( - user_info.first_name, - user_info.last_name, + # TODO: родительный падеж имени и фамилии, если возможно + await message.answer('У {} {} {}.'.format( + utils.full_name(user_info.first_name, user_info.last_name), user['warnings'], utils.make_word_agree_with_number(user['warnings'], 'предупреждение')) ) diff --git a/tg/handlers/user.py b/tg/handlers/user.py index 1dd7c03..5286660 100644 --- a/tg/handlers/user.py +++ b/tg/handlers/user.py @@ -4,6 +4,7 @@ from aiogram import Bot, Router, F from aiogram.types import Message from aiogram.utils.formatting import Bold, Italic +import utils from messages import * import tg.tg_database as database @@ -16,7 +17,7 @@ async def format_rating(chat_id: int, top_users: List[Any], bot: Bot) -> str: i = 1 for user in top_users: info = await bot.get_chat_member(chat_id, user['user_id']) - result += '{}. {} {} - {}\n'.format(i, info.user.first_name, info.user.last_name, user['value']) + result += '{}. {} - {}\n'.format(i, utils.full_name(info.user.first_name, info.user.last_name), user['value']) i = i + 1 return result diff --git a/utils.py b/utils.py index 463ef5b..5178918 100644 --- a/utils.py +++ b/utils.py @@ -1,4 +1,6 @@ from calendar import timegm +from typing import Optional + from pymorphy3 import MorphAnalyzer from time import gmtime @@ -13,3 +15,9 @@ def make_word_agree_with_number(n: int, word: str) -> str: def posix_time(): return timegm(gmtime()) + + +def full_name(first_name: str, last_name: Optional[str]) -> str: + if last_name is not None: + return f"{first_name} {last_name}" + return first_name