added: dictionary support for censore message/user management with dict triggers
36 lines
1.5 KiB
Python
36 lines
1.5 KiB
Python
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()) |