feat(admin): add admin panel and reminder system

This commit is contained in:
2026-07-30 19:46:16 +05:00
parent ecc006287b
commit e79624a13a
17 changed files with 582 additions and 148 deletions
+16 -11
View File
@@ -2,8 +2,9 @@
from aiogram import Dispatcher
from tgbot.routers import main_errors, main_missed, main_start
from tgbot.routers import channel_requests
from tgbot.routers.admin import admin_menu
from tgbot.routers.user import user_menu
from tgbot.routers.admin import admin_panel
from tgbot.utils.misc.bot_filters import IsAdmin, IsPrivate
@@ -13,8 +14,9 @@ def register_all_routers(dp: Dispatcher):
main_errors.router.message.filter(IsPrivate())
main_start.router.message.filter(IsPrivate())
user_menu.router.message.filter(IsPrivate())
user_menu.router.callback_query.filter(IsPrivate())
# Панель /admin — только для приватных чатов и только для админов
admin_panel.router.message.filter(IsPrivate(), IsAdmin())
admin_panel.router.callback_query.filter(IsPrivate(), IsAdmin())
admin_menu.router.message.filter(IsPrivate(), IsAdmin())
admin_menu.router.callback_query.filter(IsPrivate(), IsAdmin())
@@ -22,13 +24,16 @@ def register_all_routers(dp: Dispatcher):
main_missed.router.message.filter(IsPrivate())
main_missed.router.callback_query.filter(IsPrivate())
# Базовые роутеры, которые нужны всегда
dp.include_router(main_errors.router) # Ошибки
dp.include_router(main_start.router) # Старт и главное меню
# channel_requests не фильтруем по IsPrivate — заявки приходят от каналов
dp.include_router(channel_requests.router) # ChatJoinRequest
# Роутеры для пользователей и админов
dp.include_router(user_menu.router) # Пользовательские обработчики
dp.include_router(admin_menu.router) # Админские обработчики
# Базовые роутеры
dp.include_router(main_errors.router)
dp.include_router(main_start.router)
# Обработка всего, что не поймали выше
dp.include_router(main_missed.router) # Пропущенные сообщения и колбэки
# Пользователи и админы
dp.include_router(admin_panel.router) # /admin панель (раньше admin_menu)
dp.include_router(admin_menu.router) # утилиты: /db, /log, /clear_log
# Всё, что не поймали выше
dp.include_router(main_missed.router)