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