Files
PrimoAranaraBot/bot/handlers/messages/reply_msg.py
2025-09-08 00:40:18 +07:00

39 lines
2.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from random import choice
from typing import List
from aiogram import Router
from aiogram.fsm.context import FSMContext
from aiogram.types import Message
router: Router = Router(name="reply_router")
RANDOM_PHRASES: List[str] = [
"Бла-бла-бла!", "Хва-а-а-тит!", "Серьёзно? 😏", "Опять ты это говоришь...",
"Хи-хи, смешно же!", "Ты снова шутник?", "Я уже слышал это раньше!", "Эй, не надо так!",
"Ладно, ладно, хватит!", "Хмм... интересно...", "Ты меня удивляешь!", "А давай лучше что-то новое?",
"Не могу поверить!", "Ахаха, это забавно!", "Серьёзно? Ну ладно...", "Эй, это уже слишком!",
"О, это было неожиданно!",
]
@router.message()
async def reply_message(message: Message, state: FSMContext) -> None:
# Достаём данные из состояния
data = await state.get_data()
last_bot_text = data.get("last_bot_text", "")
# КРИТИЧЕСКИ ВАЖНО: Проверяем, что состояние не пустое после перезапуска.
# Если состояние пустое (например, после перезапуска), то мы НЕ должны считать,
if last_bot_text and message.text and message.text.strip() == last_bot_text.strip():
response = "Не повторяй за мной!"
else:
response = choice(RANDOM_PHRASES)
ids = message.message_id-1
print(str())
# Отправляем ответ и ПОЛУЧАЕМ ОБЪЕКТ ОТПРАВЛЕННОГО СООБЩЕНИЯ
sent_message = await message.reply(response)
# Сохраняем текст последнего сообщения бота в состоянии
# Теперь состояние будет обновлено после каждого сообщения бота
await state.update_data(last_bot_text=sent_message.text)