25 lines
1.4 KiB
Python
25 lines
1.4 KiB
Python
"""Explain unmatched input instead of silently dropping it or broadcasting it."""
|
|
from aiogram import F, Router
|
|
from aiogram.fsm.context import FSMContext
|
|
from aiogram.types import Message, CallbackQuery
|
|
|
|
input_fallback_router = Router(name="input_fallback")
|
|
|
|
|
|
@input_fallback_router.callback_query()
|
|
async def unmatched_button(callback: CallbackQuery):
|
|
await callback.answer("Кнопка устарела или недоступна. Откройте меню заново через /start.", show_alert=True)
|
|
|
|
|
|
@input_fallback_router.message(F.text.lstrip().startswith("/"))
|
|
async def unknown_command(message: Message):
|
|
await message.answer("Команда не распознана или недоступна на этом шаге. /help — справка, /cancel — отменить текущий ввод.")
|
|
|
|
|
|
@input_fallback_router.message()
|
|
async def unmatched_input(message: Message, state: FSMContext):
|
|
if await state.get_state():
|
|
await message.answer("Этот ввод не подходит для текущего шага. Отправьте данные в формате из подсказки или используйте предложенные кнопки. /cancel — отмена.")
|
|
else:
|
|
await message.answer("Сейчас бот не ожидает эти данные. /start — главное меню, /register — регистрация. Для переписки сначала откройте чат.")
|