Исправлен вывод имени пользователей TG без фамилии.

This commit is contained in:
Kirill Kirilenko 2025-11-26 01:03:28 +03:00
parent 70e5961069
commit c9fd78e438
3 changed files with 13 additions and 4 deletions

View file

@ -95,9 +95,9 @@ async def warning_handler(message: Message, bot: Bot):
user = database.DB.get_user(chat_id, user_id) user = database.DB.get_user(chat_id, user_id)
user_info = message.reply_to_message.from_user user_info = message.reply_to_message.from_user
await message.answer('У {} {} {} {}.'.format( # TODO: родительный падеж имени и фамилии, если возможно
user_info.first_name, await message.answer('У {} {} {}.'.format(
user_info.last_name, utils.full_name(user_info.first_name, user_info.last_name),
user['warnings'], user['warnings'],
utils.make_word_agree_with_number(user['warnings'], 'предупреждение')) utils.make_word_agree_with_number(user['warnings'], 'предупреждение'))
) )

View file

@ -4,6 +4,7 @@ from aiogram import Bot, Router, F
from aiogram.types import Message from aiogram.types import Message
from aiogram.utils.formatting import Bold, Italic from aiogram.utils.formatting import Bold, Italic
import utils
from messages import * from messages import *
import tg.tg_database as database 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 i = 1
for user in top_users: for user in top_users:
info = await bot.get_chat_member(chat_id, user['user_id']) 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 i = i + 1
return result return result

View file

@ -1,4 +1,6 @@
from calendar import timegm from calendar import timegm
from typing import Optional
from pymorphy3 import MorphAnalyzer from pymorphy3 import MorphAnalyzer
from time import gmtime from time import gmtime
@ -13,3 +15,9 @@ def make_word_agree_with_number(n: int, word: str) -> str:
def posix_time(): def posix_time():
return timegm(gmtime()) 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