This repository has been archived on 2025-09-07. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
MouseyBot/Mousey/Bot/Handlers/Admin/__init__.py

83 lines
2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

__all__ = ["__setup_admin_router"]
from loguru import logger
from aiogram import Router, F
from aiogram.filters import Command
from Mousey.Misc import UserRole
from Mousey.Bot.Filters import UserRoleFilter
from .info import cmd_admin_database_info
from .utils import (
cmd_sticker_id,
cmd_update_role,
)
from .menu import (
cmd_admin_menu,
call_admin_menu,
call_admin_commands,
)
from .news import (
call_news_menu,
call_news_favorite,
call_news_offer_menu,
)
def __setup_admin_router() -> Router:
"""
Регистрация событий для роутера администрации бота.
"""
router = Router()
############
### Меню ###
############
router.message.register(cmd_admin_menu, Command("admin"))
router.callback_query.register(
call_admin_menu, F.data == "admin_menu"
)
router.callback_query.register(
call_admin_commands, F.data == "admin_commands"
)
#######################
### Сбор информации ###
#######################
router.message.register(
cmd_admin_database_info, Command("database_info")
)
##############
### Разное ###
##############
router.message.register(cmd_sticker_id, F.sticker)
router.message.register(
cmd_update_role,
Command("update_role"),
UserRoleFilter(UserRole.MAIN_ADMIN),
)
##########################
### Модерация новостей ###
##########################
router.callback_query.register(
call_news_menu, F.data == "admin_news_menu"
)
router.callback_query.register(
call_news_favorite,
F.data == "admin_news_favorite",
)
# Просмотр новостей
router.callback_query.register(
call_news_offer_menu,
F.data.startswith("admin_news_offer_"),
)
logger.success("Роутер для модерации готов.")
# Вывод роутера
return router