chore: init feat/telegram-forum, cherry-pick keyboards

This commit is contained in:
Mikhail Putilovskij 2026-04-02 00:50:14 +03:00
parent 6cfdfba2f4
commit 5def360f8d
5 changed files with 63 additions and 0 deletions

View file

View file

View file

View file

@ -0,0 +1,11 @@
# adapter/telegram/keyboards/confirm.py
from __future__ import annotations
from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup
def confirm_keyboard(action_id: str) -> InlineKeyboardMarkup:
return InlineKeyboardMarkup(inline_keyboard=[[
InlineKeyboardButton(text="✅ Да", callback_data=f"confirm:yes:{action_id}"),
InlineKeyboardButton(text="❌ Нет", callback_data=f"confirm:no:{action_id}"),
]])

View file

@ -0,0 +1,52 @@
# 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")],
])