Files

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)