Source code for quackamollie.core.bot.callback.user_settings_callback

# -*- coding: utf-8 -*-
""" Module for the `User Settings` sub-menu of the `/settings` Telegram bot command """
__all__ = ["user_settings_router", "user_settings_callback_handler", "document_management_callback_handler"]
__author__ = "QuacktorAI"
__copyright__ = "Copyright 2024, Forge of Absurd Ducks"
__credits__ = ["QuacktorAI"]

from aiogram import F, Router
from aiogram.enums import ParseMode
from aiogram.types import CallbackQuery, InlineKeyboardButton
from aiogram.utils.keyboard import InlineKeyboardBuilder

from quackamollie.core.bot.decorator.permissions import permission_authorized
from quackamollie.core.bot.decorator.user_chat_registered import ensure_user_chat_registered
from quackamollie.core.bot.menu.settings_menu import SettingsCallbackData

user_settings_router = Router()


[docs] @user_settings_router.callback_query(SettingsCallbackData.filter(F.name == "user")) @permission_authorized @ensure_user_chat_registered async def user_settings_callback_handler(query: CallbackQuery): """ Callback query handler for the "User Settings" section of the bot. Allow modification of the user app settings. :param query: A callback query given by aiogram :type query: CallbackQuery """ user_settings_builder = InlineKeyboardBuilder() user_settings_builder.row( InlineKeyboardButton(text="📄 Documents Management", callback_data=SettingsCallbackData(name="document_management").pack()), InlineKeyboardButton(text="⬅️ Go back", callback_data=SettingsCallbackData(name="settings_root").pack()), ) await query.message.edit_text("👤 <b>User Settings</b>\n\n📄 <i>Documents Management</i> [Coming Soon] \n" "Manage and share your documents across your different chats with me", reply_markup=user_settings_builder.as_markup(), parse_mode=ParseMode.HTML, disable_web_page_preview=True)
[docs] @user_settings_router.callback_query(SettingsCallbackData.filter(F.name == "document_management")) @permission_authorized @ensure_user_chat_registered async def document_management_callback_handler(query: CallbackQuery): """ Callback query handler for the "User Settings/Documents Management" section of the bot. Allow modification of the user documents and associated sharing rules. :param query: A callback query given by aiogram :type query: CallbackQuery """ await query.answer("Not implemented yet, coming soon...")