Archived
feat(bot): add bot account ownership and balance
This commit is contained in:
+13
-8
@@ -2,8 +2,8 @@ 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.services.bot_accounts import get_owned_bot
|
||||
|
||||
|
||||
from bot.states import RedeemFlow
|
||||
@@ -13,7 +13,7 @@ router = Router()
|
||||
logger = get_logger(__name__)
|
||||
|
||||
|
||||
@router.callback_query(lambda c: c.data == "redeem_keys", AdminCallbackFilter())
|
||||
@router.callback_query(lambda c: c.data == "redeem_keys")
|
||||
async def redeem_keys_menu(callback: CallbackQuery, state: FSMContext) -> None:
|
||||
user = describe_user(callback.from_user.id)
|
||||
logger.info("Открыт режим активации ключей по всем ботам: %s", user)
|
||||
@@ -30,13 +30,18 @@ async def redeem_keys_menu(callback: CallbackQuery, state: FSMContext) -> None:
|
||||
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()
|
||||
)
|
||||
@router.callback_query(lambda c: c.data and c.data.startswith("redeem_bot_"))
|
||||
async def redeem_bot_menu(callback: CallbackQuery, state: FSMContext) -> None:
|
||||
user = describe_user(callback.from_user.id)
|
||||
|
||||
bot_name = callback.data.replace("redeem_bot_", "")
|
||||
try:
|
||||
account = await get_owned_bot(callback.from_user.id, int(callback.data.replace("redeem_bot_", "")))
|
||||
except ValueError:
|
||||
account = None
|
||||
if account is None:
|
||||
await callback.answer("Бот не найден или вам не принадлежит", show_alert=True)
|
||||
return
|
||||
bot_name = account.bot_name
|
||||
logger.info(
|
||||
"Открыт режим активации ключей для одного бота: %s bot=%s", user, bot_name
|
||||
)
|
||||
@@ -45,9 +50,9 @@ async def redeem_bot_menu(callback: CallbackQuery, state: FSMContext) -> None:
|
||||
await callback.message.edit_text(
|
||||
f"Отправьте ключ Steam для активации на аккаунте:\n<code>{bot_name}</code>\n\n"
|
||||
"Можно отправить сразу несколько ключей.",
|
||||
reply_markup=back_keyboard(f"bot_{bot_name}"),
|
||||
reply_markup=back_keyboard(f"bot_{account.id}"),
|
||||
)
|
||||
await state.set_state(RedeemFlow.waiting_bot_keys)
|
||||
await state.update_data(
|
||||
bot_name=bot_name, menu_message_id=callback.message.message_id
|
||||
bot_name=bot_name, account_id=account.id, menu_message_id=callback.message.message_id
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user