Files
AnyMusicBot/bot/callbacks/settings.py
2023-11-07 14:13:14 +02:00

49 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