from aiogram import Router from aiogram.types import CallbackQuery from aiogram.fsm.context import FSMContext from bot.filters import AdminCallbackFilter from bot.logging_utils import describe_user, get_logger from bot.states import RedeemFlow from bot.ui.keyboards import back_keyboard router = Router() logger = get_logger(__name__) @router.callback_query(lambda c: c.data == "redeem_keys", AdminCallbackFilter()) async def redeem_keys_menu(callback: CallbackQuery, state: FSMContext) -> None: user = describe_user(callback.from_user.id) logger.info("Открыт режим активации ключей по всем ботам: %s", user) await callback.answer() await callback.message.edit_text( "Отправьте ключ Steam для активации\n\n" "Можно отправить сразу несколько ключей.\n\n" "Пример:\n" "AAAAA-BBBBB-CCCCC\nDDDDD-EEEEE-FFFFF", reply_markup=back_keyboard(), ) await state.set_state(RedeemFlow.waiting_all_keys) await state.update_data(menu_message_id=callback.message.message_id) @router.callback_query( lambda c: c.data and c.data.startswith("redeem_bot_"), AdminCallbackFilter() ) async def redeem_bot_menu(callback: CallbackQuery, state: FSMContext) -> None: user = describe_user(callback.from_user.id) bot_name = callback.data.replace("redeem_bot_", "") logger.info( "Открыт режим активации ключей для одного бота: %s bot=%s", user, bot_name ) await callback.answer() await callback.message.edit_text( f"Отправьте ключ Steam для активации на аккаунте:\n{bot_name}\n\n" "Можно отправить сразу несколько ключей.", reply_markup=back_keyboard(f"bot_{bot_name}"), ) await state.set_state(RedeemFlow.waiting_bot_keys) await state.update_data( bot_name=bot_name, menu_message_id=callback.message.message_id )