49 lines
1.8 KiB
Python
49 lines
1.8 KiB
Python
from aiogram import F, Router
|
|
from aiogram.filters import Command
|
|
from aiogram.fsm.context import FSMContext
|
|
from aiogram.types import CallbackQuery, Message
|
|
|
|
from bot import version
|
|
from filters.admin import IsAdminFilter
|
|
from keyboards.admin.panel_kb import AdminPanelCallback, build_management_kb, build_panel_kb
|
|
|
|
router = Router()
|
|
|
|
|
|
@router.callback_query(AdminPanelCallback.filter(F.action == "admin"), IsAdminFilter())
|
|
async def handle_admin_callback_query(callback_query: CallbackQuery, state: FSMContext):
|
|
text = f"🤖 Панель администратора\n📌 Версия бота: {version}"
|
|
|
|
await state.clear()
|
|
|
|
if callback_query.message.text:
|
|
await callback_query.message.edit_text(text=text, reply_markup=build_panel_kb())
|
|
else:
|
|
try:
|
|
await callback_query.message.delete()
|
|
except Exception as e:
|
|
print(f"Ошибка при удалении сообщения: {e}")
|
|
|
|
await callback_query.message.answer(text=text, reply_markup=build_panel_kb())
|
|
|
|
|
|
@router.callback_query(F.data == "admin", IsAdminFilter())
|
|
async def handle_admin_callback_query(callback_query: CallbackQuery, state: FSMContext):
|
|
await handle_admin_message(callback_query.message, state)
|
|
|
|
|
|
@router.message(Command("admin"), IsAdminFilter())
|
|
async def handle_admin_message(message: Message, state: FSMContext):
|
|
text = f"🤖 Панель администратора\n📌 Версия бота: {version}"
|
|
|
|
await state.clear()
|
|
await message.answer(text=text, reply_markup=build_panel_kb())
|
|
|
|
|
|
@router.callback_query(AdminPanelCallback.filter(F.action == "management"), IsAdminFilter())
|
|
async def handle_management(callback_query: CallbackQuery):
|
|
await callback_query.message.edit_text(
|
|
text="🤖 Управление ботом",
|
|
reply_markup=build_management_kb(),
|
|
)
|