from aiogram import Router from aiogram.types import CallbackQuery from bot.filters import AdminCallbackFilter from bot.logging_utils import describe_user, get_logger from bot.state import ( bot_redeem_messages, bot_redeem_users, redeem_messages, redeem_users, ) 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) -> None: user = describe_user(callback.from_user.id) logger.info("Открыт режим активации ключей по всем ботам: %s", user) await callback.answer() redeem_users.add(callback.from_user.id) redeem_messages[callback.from_user.id] = callback.message await callback.message.edit_text( # type: ignore[union-attr] "Отправьте ключ Steam для активации\n\n" "Можно отправить сразу несколько ключей.\n\n" "Пример:\n" "AAAAA-BBBBB-CCCCC\nDDDDD-EEEEE-FFFFF", reply_markup=back_keyboard(), ) @router.callback_query( lambda c: c.data and c.data.startswith("redeem_bot_"), AdminCallbackFilter() ) async def redeem_bot_menu(callback: CallbackQuery) -> None: user = describe_user(callback.from_user.id) bot_name = callback.data.replace("redeem_bot_", "") # type: ignore[union-attr] logger.info("Открыт режим активации ключей для одного бота: %s bot=%s", user, bot_name) await callback.answer() bot_redeem_users[callback.from_user.id] = bot_name bot_redeem_messages[callback.from_user.id] = callback.message await callback.message.edit_text( # type: ignore[union-attr] f"Отправьте ключ Steam для активации на аккаунте:\n{bot_name}\n\n" "Можно отправить сразу несколько ключей.", reply_markup=back_keyboard(f"bot_{bot_name}"), )