from aiogram import Router from aiogram.types import CallbackQuery from aiogram.fsm.context import FSMContext from bot.filters import AdminCallbackFilter from bot.states import ConsoleFlow from bot.ui.formatters import get_asf_status_text from bot.logging_utils import describe_user, get_logger from bot.ui.keyboards import console_keyboard, main_keyboard router = Router() logger = get_logger(__name__) @router.callback_query(lambda c: c.data == "console", AdminCallbackFilter()) async def console_enter(callback: CallbackQuery, state: FSMContext) -> None: user = describe_user(callback.from_user.id) logger.info("Пользователь вошел в режим консоли ASF: %s", user) await state.set_state(ConsoleFlow.waiting_command) await callback.answer() await callback.message.edit_text( "💻 Консоль ASF\n\nОтправь команду (без !)", reply_markup=console_keyboard() ) @router.callback_query(lambda c: c.data == "console_exit", AdminCallbackFilter()) async def console_exit(callback: CallbackQuery, state: FSMContext) -> None: user = describe_user(callback.from_user.id) logger.info("Пользователь вышел из режима консоли ASF: %s", user) await state.clear() await callback.answer() await callback.message.edit_text( get_asf_status_text(), reply_markup=main_keyboard() )