from telegram import InlineKeyboardMarkup, InlineKeyboardButton from enum import Enum class CallbackType(str, Enum): """Типы callback'ов для кнопок""" MANAGE_MESSAGES = "manage_messages" MANAGE_GROUPS = "manage_groups" MANAGE_USERBOT = "manage_userbot" CREATE_MESSAGE = "create_message" CREATE_GROUP = "create_group" VIEW_MESSAGE = "view_message" VIEW_GROUP = "view_group" DELETE_MESSAGE = "delete_message" DELETE_GROUP = "delete_group" ADD_TO_GROUP = "add_to_group" REMOVE_FROM_GROUP = "remove_from_group" SEND_NOW = "send_now" LIST_MESSAGES = "list_messages" LIST_GROUPS = "list_groups" BACK = "back" MAIN_MENU = "main_menu" def get_main_keyboard() -> InlineKeyboardMarkup: """Главное меню""" keyboard = [ [ InlineKeyboardButton("📨 Сообщения", callback_data=CallbackType.MANAGE_MESSAGES.value), InlineKeyboardButton("👥 Группы", callback_data=CallbackType.MANAGE_GROUPS.value), ], [ InlineKeyboardButton("🤖 UserBot", callback_data=CallbackType.MANAGE_USERBOT.value), ] ] return InlineKeyboardMarkup(keyboard) def get_messages_keyboard() -> InlineKeyboardMarkup: """Меню управления сообщениями""" keyboard = [ [InlineKeyboardButton("➕ Новое сообщение", callback_data=CallbackType.CREATE_MESSAGE.value)], [InlineKeyboardButton("📜 Список сообщений", callback_data=CallbackType.LIST_MESSAGES.value)], [InlineKeyboardButton("⬅️ Назад", callback_data=CallbackType.MAIN_MENU.value)], ] return InlineKeyboardMarkup(keyboard) def get_groups_keyboard() -> InlineKeyboardMarkup: """Меню управления группами""" keyboard = [ [InlineKeyboardButton("➕ Добавить группу", callback_data=CallbackType.CREATE_GROUP.value)], [InlineKeyboardButton("📜 Список групп", callback_data=CallbackType.LIST_GROUPS.value)], [InlineKeyboardButton("⬅️ Назад", callback_data=CallbackType.MAIN_MENU.value)], ] return InlineKeyboardMarkup(keyboard) def get_back_keyboard() -> InlineKeyboardMarkup: """Кнопка назад""" keyboard = [[InlineKeyboardButton("⬅️ Назад", callback_data=CallbackType.MAIN_MENU.value)]] return InlineKeyboardMarkup(keyboard) def get_message_actions_keyboard(message_id: int) -> InlineKeyboardMarkup: """Действия с сообщением""" keyboard = [ [InlineKeyboardButton("📤 Отправить", callback_data=f"send_msg_{message_id}")], [InlineKeyboardButton("🗑️ Удалить", callback_data=f"delete_msg_{message_id}")], [InlineKeyboardButton("⬅️ Назад", callback_data=CallbackType.LIST_MESSAGES.value)], ] return InlineKeyboardMarkup(keyboard) def get_group_actions_keyboard(group_id: int) -> InlineKeyboardMarkup: """Действия с группой""" keyboard = [ [InlineKeyboardButton("📝 Сообщения", callback_data=f"group_messages_{group_id}")], [InlineKeyboardButton("🗑️ Удалить", callback_data=f"delete_group_{group_id}")], [InlineKeyboardButton("⬅️ Назад", callback_data=CallbackType.LIST_GROUPS.value)], ] return InlineKeyboardMarkup(keyboard) def get_yes_no_keyboard(action: str) -> InlineKeyboardMarkup: """Подтверждение да/нет""" keyboard = [ [ InlineKeyboardButton("✅ Да", callback_data=f"confirm_{action}"), InlineKeyboardButton("❌ Нет", callback_data=CallbackType.MAIN_MENU.value), ] ] return InlineKeyboardMarkup(keyboard)