922b1b26a6
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
40 lines
1.6 KiB
Python
40 lines
1.6 KiB
Python
from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup
|
|
|
|
|
|
def template_choice_keyboard(templates: list[dict]) -> InlineKeyboardMarkup:
|
|
buttons = []
|
|
for tpl in templates:
|
|
buttons.append([InlineKeyboardButton(
|
|
text=tpl["name"],
|
|
callback_data=f"template:{tpl['id']}",
|
|
)])
|
|
return InlineKeyboardMarkup(inline_keyboard=buttons)
|
|
|
|
|
|
def protocol_actions_keyboard(protocol_id: str, app_url: str) -> InlineKeyboardMarkup:
|
|
return InlineKeyboardMarkup(inline_keyboard=[
|
|
[
|
|
InlineKeyboardButton(text="📄 DOCX", callback_data=f"export:{protocol_id}:docx"),
|
|
InlineKeyboardButton(text="📕 PDF", callback_data=f"export:{protocol_id}:pdf"),
|
|
InlineKeyboardButton(text="📝 MD", callback_data=f"export:{protocol_id}:md"),
|
|
],
|
|
[
|
|
InlineKeyboardButton(text="🔄 Перегенерировать", callback_data=f"regen:{protocol_id}"),
|
|
],
|
|
[
|
|
InlineKeyboardButton(text="🌐 Открыть в вебе", url=f"{app_url}/protocols/{protocol_id}"),
|
|
],
|
|
])
|
|
|
|
|
|
def recording_list_keyboard(recordings: list[dict]) -> InlineKeyboardMarkup:
|
|
buttons = []
|
|
for rec in recordings[:10]:
|
|
status_emoji = {"uploaded": "⏳", "processing": "⚙️", "done": "✅", "error": "❌"}
|
|
emoji = status_emoji.get(rec["status"], "")
|
|
buttons.append([InlineKeyboardButton(
|
|
text=f"{emoji} {rec['title'][:40]}",
|
|
callback_data=f"rec:{rec['id']}",
|
|
)])
|
|
return InlineKeyboardMarkup(inline_keyboard=buttons)
|