refactor: clean up unused code and duplicate handlers
- Removed duplicate admin callback handlers from main.py (moved to admin_panel.py) - Removed unused methods from BotController (handle_admin_panel, handle_lottery_management, handle_conduct_lottery_admin, handle_conduct_lottery) - Removed unused keyboard methods from ui.py (get_lottery_management_keyboard, get_lottery_keyboard, get_conduct_lottery_keyboard) - Simplified IBotController interface to only essential methods - Simplified IKeyboardBuilder interface to only used methods - Fixed cmd_admin handler to directly show admin panel - Bot now uses centralized admin handlers from admin_panel.py
This commit is contained in:
70
main.py
70
main.py
@@ -57,53 +57,25 @@ async def cmd_start(message: Message):
|
||||
|
||||
@router.message(Command("admin"))
|
||||
async def cmd_admin(message: Message):
|
||||
"""Обработчик команды /admin"""
|
||||
async with get_controller() as controller:
|
||||
if not controller.is_admin(message.from_user.id):
|
||||
await message.answer("❌ Недостаточно прав для доступа к админ панели")
|
||||
return
|
||||
|
||||
# Создаем callback query объект для совместимости
|
||||
from aiogram.types import CallbackQuery
|
||||
fake_callback = CallbackQuery(
|
||||
id="admin_cmd",
|
||||
from_user=message.from_user,
|
||||
chat_instance="admin",
|
||||
data="admin_panel",
|
||||
message=message
|
||||
)
|
||||
await controller.handle_admin_panel(fake_callback)
|
||||
"""Обработчик команды /admin - перенаправляет в admin_panel"""
|
||||
from src.core.config import ADMIN_IDS
|
||||
if message.from_user.id not in ADMIN_IDS:
|
||||
await message.answer("❌ Недостаточно прав для доступа к админ панели")
|
||||
return
|
||||
|
||||
# Отправляем сообщение с кнопкой админ панели
|
||||
from src.components.ui import KeyboardBuilderImpl
|
||||
kb = KeyboardBuilderImpl()
|
||||
keyboard = kb.get_admin_keyboard()
|
||||
|
||||
text = "⚙️ **Панель администратора**\n\n"
|
||||
text += "Выберите раздел для управления:"
|
||||
|
||||
await message.answer(text, reply_markup=keyboard, parse_mode="Markdown")
|
||||
|
||||
|
||||
# === CALLBACK HANDLERS ===
|
||||
|
||||
@router.callback_query(F.data == "test_callback")
|
||||
async def test_callback_handler(callback: CallbackQuery):
|
||||
"""Тестовый callback handler"""
|
||||
await callback.answer("✅ Тест прошел успешно! Колбэки работают.", show_alert=True)
|
||||
|
||||
|
||||
@router.callback_query(F.data == "admin_panel")
|
||||
async def admin_panel_handler(callback: CallbackQuery):
|
||||
"""Обработчик админ панели"""
|
||||
async with get_controller() as controller:
|
||||
await controller.handle_admin_panel(callback)
|
||||
|
||||
|
||||
@router.callback_query(F.data == "lottery_management")
|
||||
async def lottery_management_handler(callback: CallbackQuery):
|
||||
"""Обработчик управления розыгрышами (старый callback)"""
|
||||
async with get_controller() as controller:
|
||||
await controller.handle_lottery_management(callback)
|
||||
|
||||
|
||||
@router.callback_query(F.data == "conduct_lottery_admin")
|
||||
async def conduct_lottery_admin_handler(callback: CallbackQuery):
|
||||
"""Обработчик выбора розыгрыша для проведения"""
|
||||
async with get_controller() as controller:
|
||||
await controller.handle_conduct_lottery_admin(callback)
|
||||
|
||||
|
||||
@router.callback_query(F.data == "active_lotteries")
|
||||
async def active_lotteries_handler(callback: CallbackQuery):
|
||||
"""Обработчик показа активных розыгрышей"""
|
||||
@@ -111,23 +83,11 @@ async def active_lotteries_handler(callback: CallbackQuery):
|
||||
await controller.handle_active_lotteries(callback)
|
||||
|
||||
|
||||
@router.callback_query(F.data.startswith("conduct_") & ~F.data.in_(["conduct_lottery_admin"]))
|
||||
async def conduct_specific_lottery_handler(callback: CallbackQuery):
|
||||
"""Обработчик проведения конкретного розыгрыша"""
|
||||
async with get_controller() as controller:
|
||||
await controller.handle_conduct_lottery(callback)
|
||||
|
||||
|
||||
@router.callback_query(F.data == "back_to_main")
|
||||
async def back_to_main_handler(callback: CallbackQuery):
|
||||
"""Обработчик возврата в главное меню"""
|
||||
async with get_controller() as controller:
|
||||
await controller.handle_start(callback.message)
|
||||
|
||||
|
||||
# === ЗАГЛУШКИ ДЛЯ ОСТАЛЬНЫХ CALLBACKS ===
|
||||
|
||||
# === ЗАГЛУШКИ НЕ НУЖНЫ - ВСЕ ФУНКЦИИ РЕАЛИЗОВАНЫ В РОУТЕРАХ ===
|
||||
# Функции обрабатываются в:
|
||||
# - admin_panel.py: создание розыгрышей, управление пользователями, счетами, чатом, статистика
|
||||
# - registration_handlers.py: регистрация пользователей
|
||||
|
||||
Reference in New Issue
Block a user