forked from FOSS/ASF-Control-Bot
39 lines
1.4 KiB
Python
39 lines
1.4 KiB
Python
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()
|
|
)
|