Исправление определения пользователя для сброса нарушений

This commit is contained in:
2025-10-18 13:41:35 +03:00
parent ab80af2744
commit 2709c8ce40
3 changed files with 44 additions and 18 deletions

View File

@@ -29,32 +29,23 @@ def register_handlers(bot: AsyncTeleBot):
target_user = None
target_user_id = None
# Обработка ответа на сообщение
if message.reply_to_message:
target_user = message.reply_to_message.from_user
target_user_id = target_user.id
# Обработка по username или ID
else:
parts = message.text.split(maxsplit=1)
if len(parts) < 2:
await send_temp_message(
bot,
message,
COMMAND_MESSAGES['reset_violations_help']
)
return
# Парсим команду
parts = message.text.split(maxsplit=1)
# Если есть аргументы в команде (username или ID) - используем их
if len(parts) >= 2:
identifier = parts[1].strip()
# Попытка получить по username
if identifier.startswith('@'):
username = identifier[1:]
logger.info(f"Поиск пользователя по username: {username}")
user_data = db.get_user_by_username(username)
if user_data:
target_user_id = user_data[0]
logger.info(f"Найден пользователь в БД: id={user_data[0]}, nickname={user_data[1]}, tag={user_data[2]}")
else:
logger.warning(f"Пользователь с username {username} не найден в БД")
await send_temp_message(
bot,
message,
@@ -66,6 +57,7 @@ def register_handlers(bot: AsyncTeleBot):
else:
try:
target_user_id = int(identifier)
logger.info(f"Использован ID пользователя: {target_user_id}")
except ValueError:
await send_temp_message(
bot,
@@ -74,6 +66,21 @@ def register_handlers(bot: AsyncTeleBot):
)
return
# Если аргументов нет - пробуем использовать reply_to_message
elif message.reply_to_message:
target_user = message.reply_to_message.from_user
target_user_id = target_user.id
logger.info(f"Использован пользователь из reply_to_message: id={target_user_id}")
# Если ни аргументов, ни reply нет - показываем help
else:
await send_temp_message(
bot,
message,
COMMAND_MESSAGES['reset_violations_help']
)
return
# Проверяем, что нашли пользователя
if not target_user_id:
await send_temp_message(