from telegram import InlineKeyboardButton, InlineKeyboardMarkup def kb_next_text(draft_id: int): return InlineKeyboardMarkup( [[InlineKeyboardButton("Дальше — текст", callback_data=f"draft_next_text:{draft_id}")]] ) def kb_confirm(draft_id: int): # Кнопка «Отправить» ведёт к мультивыбору чатов return InlineKeyboardMarkup( [ [ InlineKeyboardButton("Отправить", callback_data=f"draft_confirm_send:{draft_id}"), InlineKeyboardButton("Отменить", callback_data=f"draft_cancel:{draft_id}"), ] ] ) def kb_multiselect(draft_id: int, chats: list[tuple[str, int]], selected: set[int]): rows = [] for title, chat_id in chats: mark = "✅ " if chat_id in selected else "▫️ " rows.append([InlineKeyboardButton(f"{mark}{title}", callback_data=f"tgl:{draft_id}:{chat_id}")]) rows.append([ InlineKeyboardButton("Выбрать все", callback_data=f"selall:{draft_id}"), InlineKeyboardButton("Сбросить", callback_data=f"clear:{draft_id}"), ]) rows.append([ InlineKeyboardButton("Отправить выбранные", callback_data=f"sendmulti:{draft_id}"), InlineKeyboardButton("Отменить", callback_data=f"draft_cancel:{draft_id}"), ]) return InlineKeyboardMarkup(rows) def kb_choose_chat(draft_id: int, chats: list[tuple[str, int]]): return kb_multiselect(draft_id, chats, selected=set())