__all__ = ["__setup_private_router"] from loguru import logger from aiogram import Router, F from aiogram.filters import Command from Mousey.Bot.States import OfferNews from .utils import cmd_get_stickers, cmd_cancel from .menu import ( cmd_menu, call_menu, call_useful_info, call_about_bot_info, ) from .news import ( call_news_menu, cmd_news_offer, call_news_offer, call_input_news_text, call_news_offer_send, call_news_statistics, cmd_news_input_error, call_news_offer_cancel, call_input_news_contact, ) def __setup_private_router() -> Router: """ Регистрация событий для роутера пользователей. """ router = Router() ######################## ### Полезные команды ### ######################## router.message.register(cmd_cancel, Command("cancel")) router.message.register(cmd_get_stickers, Command("get_stickers")) ######################### ### Главное меню бота ### ######################### router.message.register( cmd_menu, Command(commands=["start", "menu"]) ) router.callback_query.register(call_menu, F.data == "menu") router.callback_query.register( call_useful_info, F.data == "useful_info" ) router.callback_query.register( call_about_bot_info, F.data == "about_bot_info" ) ###################### ### Новостное меню ### ###################### router.callback_query.register( call_news_menu, F.data == "news_menu" ) # Статистика новостей router.callback_query.register( call_news_statistics, F.data == "news_statistics" ) # Меню, для предложки новостей router.callback_query.register( call_news_offer, F.data == "news_offer" ) # Кнопки при предложении новости router.callback_query.register( call_input_news_text, F.data == "news_input_text" ) router.callback_query.register( call_input_news_contact, F.data == "news_input_contact" ) # Обработка ввода текста для предложки router.message.register( cmd_news_offer, F.text, OfferNews.typing_text, ) router.message.register( cmd_news_offer, F.text, OfferNews.typing_contact, ) router.message.register( cmd_news_input_error, OfferNews.typing_text, ) router.message.register( cmd_news_input_error, OfferNews.typing_contact, ) # Отправить новость router.callback_query.register( call_news_offer_send, F.data == "news_offer_send" ) # Отменить отправку новости router.callback_query.register( call_news_offer_cancel, F.data == "news_offer_cancel" ) logger.success("Роутер для ЛС готов.") return router