90 lines
2.8 KiB
Python
90 lines
2.8 KiB
Python
__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
|
|
|