52 lines
2 KiB
Python
52 lines
2 KiB
Python
# adapter/telegram/keyboards/settings.py
|
|
from __future__ import annotations
|
|
|
|
from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup
|
|
|
|
from sdk.interface import UserSettings
|
|
|
|
|
|
def settings_main_keyboard() -> InlineKeyboardMarkup:
|
|
return InlineKeyboardMarkup(inline_keyboard=[
|
|
[
|
|
InlineKeyboardButton(text="🧩 Скиллы", callback_data="settings:skills"),
|
|
InlineKeyboardButton(text="🔗 Коннекторы", callback_data="settings:connectors"),
|
|
],
|
|
[
|
|
InlineKeyboardButton(text="🧠 Личность", callback_data="settings:soul"),
|
|
InlineKeyboardButton(text="🔒 Безопасность", callback_data="settings:safety"),
|
|
],
|
|
[
|
|
InlineKeyboardButton(text="💳 Подписка", callback_data="settings:plan"),
|
|
],
|
|
])
|
|
|
|
|
|
def skills_keyboard(skills: dict[str, bool]) -> InlineKeyboardMarkup:
|
|
buttons = []
|
|
for skill, enabled in skills.items():
|
|
icon = "✅" if enabled else "❌"
|
|
buttons.append([InlineKeyboardButton(
|
|
text=f"{icon} {skill}",
|
|
callback_data=f"toggle_skill:{skill}",
|
|
)])
|
|
buttons.append([InlineKeyboardButton(text="← Назад", callback_data="settings:back")])
|
|
return InlineKeyboardMarkup(inline_keyboard=buttons)
|
|
|
|
|
|
def safety_keyboard(safety: dict[str, bool]) -> InlineKeyboardMarkup:
|
|
buttons = []
|
|
for trigger, enabled in safety.items():
|
|
icon = "✅" if enabled else "❌"
|
|
buttons.append([InlineKeyboardButton(
|
|
text=f"{icon} {trigger}",
|
|
callback_data=f"toggle_safety:{trigger}",
|
|
)])
|
|
buttons.append([InlineKeyboardButton(text="← Назад", callback_data="settings:back")])
|
|
return InlineKeyboardMarkup(inline_keyboard=buttons)
|
|
|
|
|
|
def back_keyboard() -> InlineKeyboardMarkup:
|
|
return InlineKeyboardMarkup(inline_keyboard=[
|
|
[InlineKeyboardButton(text="← Назад", callback_data="settings:back")],
|
|
])
|