41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
"""Обработчик главного меню."""
|
|
from maxapi.dispatcher import Router
|
|
from maxapi.filters import F
|
|
from maxapi.types.updates.message_callback import MessageCallback
|
|
from maxapi.context import BaseContext
|
|
|
|
from bot.keyboards import main_menu_kb
|
|
from bot.send_helper import bot_reply
|
|
from database.queries.organizations import get_organization
|
|
|
|
router = Router(router_id="menu")
|
|
|
|
|
|
async def _main_menu_text(bot_user: dict) -> str:
|
|
org_id = bot_user.get("org_id")
|
|
if org_id:
|
|
org = await get_organization(org_id)
|
|
org_name = org["name"] if org else None
|
|
else:
|
|
org_name = None
|
|
|
|
if org_name:
|
|
return f"🏠 {org_name}\nВыберите действие:"
|
|
return "🏠 Главное меню\nВыберите действие:"
|
|
|
|
|
|
@router.message_callback(F.callback.payload == "main_menu")
|
|
async def cb_main_menu(
|
|
event: MessageCallback, context: BaseContext, bot_user: dict
|
|
) -> None:
|
|
await context.set_state(None)
|
|
await event.answer(notification="")
|
|
|
|
text = await _main_menu_text(bot_user)
|
|
await bot_reply(
|
|
event,
|
|
text=text,
|
|
attachments=[main_menu_kb()],
|
|
user_id=bot_user["max_user_id"],
|
|
chat_id=event.message.recipient.chat_id if event.message else None,
|
|
)
|