forked from FOSS/ASF-Control-Bot
49 lines
2.0 KiB
Python
49 lines
2.0 KiB
Python
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"
|
|
"<code>AAAAA-BBBBB-CCCCC\nDDDDD-EEEEE-FFFFF</code>",
|
|
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<code>{bot_name}</code>\n\n"
|
|
"Можно отправить сразу несколько ключей.",
|
|
reply_markup=back_keyboard(f"bot_{bot_name}"),
|
|
)
|