Files
AnyMusicBot/bot/callbacks/settings.py
2024-11-02 00:10:24 +02:00

41 lines
1.4 KiB
Python

from aiogram import Router, Bot
from aiogram.types import CallbackQuery
from aiogram.exceptions import TelegramBadRequest
from bot.factories.open_setting import OpenSettingCallback, SettingChoiceCallback
from bot.keyboards.inline.setting import get_setting_kb
from bot.modules.settings import settings_strings, UserSettings
router = Router()
@router.callback_query(OpenSettingCallback.filter())
async def on_settings(
callback_query: CallbackQuery, callback_data: OpenSettingCallback, bot: Bot
):
await bot.edit_message_text(
inline_message_id=callback_query.inline_message_id,
text=settings_strings[callback_data.s_id].description,
reply_markup=get_setting_kb(
callback_data.s_id, str(callback_query.from_user.id)
),
)
@router.callback_query(SettingChoiceCallback.filter())
async def on_change_setting(
callback_query: CallbackQuery, callback_data: SettingChoiceCallback, bot: Bot
):
UserSettings(callback_query.from_user.id)[callback_data.s_id] = callback_data.choice
try:
await bot.edit_message_text(
inline_message_id=callback_query.inline_message_id,
text=settings_strings[callback_data.s_id].description,
reply_markup=get_setting_kb(
callback_data.s_id, str(callback_query.from_user.id)
),
)
except TelegramBadRequest:
pass