feat(bot): add bot account ownership and balance

This commit is contained in:
2026-07-24 10:44:48 +05:00
parent 87385228ea
commit 8bd5c80693
22 changed files with 1008 additions and 393 deletions
+12 -10
View File
@@ -4,7 +4,7 @@ from aiogram import Router
from aiogram.types import CallbackQuery
from aiogram.fsm.context import FSMContext
from bot.filters import AdminCallbackFilter
from bot.filters import AdminCallbackFilter, AdminFilter
from bot.logging_utils import describe_user, get_logger
from bot.api.asf import get_plugins, restart_asf as restart_asf_request
@@ -18,7 +18,7 @@ router = Router()
logger = get_logger(__name__)
@router.callback_query(lambda c: c.data == "back", AdminCallbackFilter())
@router.callback_query(lambda c: c.data == "back")
async def back_button(callback: CallbackQuery, state: FSMContext) -> None:
user = describe_user(callback.from_user.id)
logger.info("Нажата кнопка возврата: %s", user)
@@ -29,7 +29,8 @@ async def back_button(callback: CallbackQuery, state: FSMContext) -> None:
await callback.answer()
try:
await callback.message.edit_text(
get_asf_status_text(), reply_markup=main_keyboard()
get_asf_status_text(callback.from_user.id),
reply_markup=main_keyboard(callback.from_user.id),
)
logger.info("Пользователь возвращен в главное меню: %s", user)
@@ -46,7 +47,8 @@ async def refresh_handler(callback: CallbackQuery) -> None:
try:
await callback.message.edit_text(
get_asf_status_text(), reply_markup=main_keyboard()
get_asf_status_text(callback.from_user.id),
reply_markup=main_keyboard(callback.from_user.id),
)
logger.info("Главный экран обновлен: %s", user)
@@ -55,7 +57,7 @@ async def refresh_handler(callback: CallbackQuery) -> None:
await callback.message.edit_text(f"Ошибка: {error}")
@router.callback_query(lambda c: c.data == "delete_msg", AdminCallbackFilter())
@router.callback_query(lambda c: c.data == "delete_msg")
async def delete_message(callback: CallbackQuery) -> None:
user = describe_user(callback.from_user.id)
logger.info("Запрошено удаление сообщения: %s", user)
@@ -77,7 +79,7 @@ async def restart_asf_confirm(callback: CallbackQuery) -> None:
await callback.answer()
await callback.message.edit_text(
"♻ Точно перезапустить ASF?\n\nВо время перезапуска IPC будет недоступен несколько секунд.",
reply_markup=confirm_action_keyboard("restart_asf", "back"),
reply_markup=confirm_action_keyboard("restart_asf", "admin_panel"),
)
@@ -99,7 +101,7 @@ async def restart_asf(callback: CallbackQuery) -> None:
)
await callback.message.edit_text(
f"Ошибка HTTP {response.status_code}",
reply_markup=main_keyboard(),
reply_markup=main_keyboard(callback.from_user.id),
)
return
@@ -115,8 +117,8 @@ async def restart_asf(callback: CallbackQuery) -> None:
await asyncio.sleep(1)
await callback.message.edit_text(
f"ASF успешно перезапущен\n\n{get_asf_status_text()}",
reply_markup=main_keyboard(),
f"ASF успешно перезапущен\n\n{get_asf_status_text(callback.from_user.id)}",
reply_markup=main_keyboard(callback.from_user.id),
)
logger.info("ASF успешно перезапущен: %s", user)
@@ -126,7 +128,7 @@ async def restart_asf(callback: CallbackQuery) -> None:
await callback.message.edit_text(
f"Ошибка: {error}",
reply_markup=main_keyboard(),
reply_markup=main_keyboard(callback.from_user.id),
)