bot rafactor and bugfix
This commit is contained in:
@@ -1,23 +1,88 @@
|
||||
from __future__ import annotations
|
||||
from enum import IntEnum
|
||||
"""Состояния бота редактора."""
|
||||
from enum import IntEnum, auto
|
||||
from typing import Dict
|
||||
|
||||
|
||||
class States(IntEnum):
|
||||
CHOOSE_CHANNEL = 0
|
||||
CHOOSE_TYPE = 1
|
||||
CHOOSE_FORMAT = 2
|
||||
ENTER_TEXT = 3
|
||||
ENTER_MEDIA = 4
|
||||
EDIT_KEYBOARD = 5
|
||||
CONFIRM_SEND = 6
|
||||
ENTER_SCHEDULE = 7
|
||||
|
||||
SELECT_TEMPLATE = 8
|
||||
PREVIEW_VARS = 9
|
||||
PREVIEW_CONFIRM = 10
|
||||
|
||||
TPL_NEW_NAME = 11
|
||||
TPL_NEW_TYPE = 12
|
||||
TPL_NEW_FORMAT = 13
|
||||
TPL_NEW_CONTENT = 14
|
||||
TPL_NEW_KB = 15
|
||||
class BotStates(IntEnum):
|
||||
"""Состояния для ConversationHandler."""
|
||||
|
||||
# Общие состояния
|
||||
CONVERSATION_END = -1
|
||||
START = 1
|
||||
MAIN_MENU = 2
|
||||
|
||||
# Состояния создания шаблона
|
||||
TPL_TYPE = 10
|
||||
TPL_NAME = 11
|
||||
TPL_TEXT = 12
|
||||
TPL_NEW_KB = 13
|
||||
TPL_SELECT = 14
|
||||
TPL_NEW_NAME = 15
|
||||
TPL_NEW_TYPE = 16
|
||||
TPL_NEW_FORMAT = 17
|
||||
TPL_NEW_CONTENT = 18
|
||||
TEMPLATE_PREVIEW = 19
|
||||
TEMPLATE_VARS = 20
|
||||
|
||||
# Состояния создания поста
|
||||
CREATE_POST = 30
|
||||
CHOOSE_CHANNEL = 31 # Выбор канала
|
||||
CHOOSE_TYPE = 32 # Выбор типа поста (текст/фото/видео/gif)
|
||||
CHOOSE_FORMAT = 33 # Выбор формата текста (HTML/Markdown)
|
||||
ENTER_TEXT = 34 # Ввод текста поста
|
||||
ENTER_MEDIA = 35 # Загрузка медиафайла
|
||||
EDIT_KEYBOARD = 36 # Редактирование клавиатуры
|
||||
CONFIRM_SEND = 37 # Подтверждение отправки
|
||||
ENTER_SCHEDULE = 38 # Ввод времени для отложенной публикации
|
||||
SELECT_TEMPLATE = 39 # Выбор шаблона
|
||||
PREVIEW_VARS = 40 # Ввод значений для переменных
|
||||
PREVIEW_CONFIRM = 41 # Подтверждение предпросмотра
|
||||
|
||||
# Состояния работы с каналами
|
||||
CHANNEL_NAME = 50
|
||||
CHANNEL_DESC = 51
|
||||
CHANNEL_INVITE = 52
|
||||
|
||||
# Состояния управления ботами и каналами
|
||||
BOT_TOKEN = 60 # Ввод токена бота
|
||||
CHANNEL_ID = 61 # Ввод идентификатора канала
|
||||
CHANNEL_TITLE = 62 # Ввод имени канала
|
||||
CHANNEL_SELECT_BOT = 63 # Выбор бота для канала
|
||||
|
||||
@classmethod
|
||||
def get_description(cls, state: int) -> str:
|
||||
"""Возвращает описание состояния."""
|
||||
descriptions: Dict[int, str] = {
|
||||
# Общие состояния
|
||||
cls.CONVERSATION_END: "Завершение диалога",
|
||||
|
||||
# Шаблоны
|
||||
cls.TPL_TYPE: "Выбор типа шаблона",
|
||||
cls.TPL_NAME: "Ввод имени шаблона",
|
||||
cls.TPL_TEXT: "Ввод текста шаблона",
|
||||
cls.TPL_NEW_KB: "Ввод клавиатуры шаблона",
|
||||
cls.TPL_SELECT: "Выбор шаблона",
|
||||
cls.TPL_NEW_CONTENT: "Ввод содержимого шаблона",
|
||||
|
||||
# Посты
|
||||
cls.CHOOSE_CHANNEL: "Выбор канала",
|
||||
cls.CHOOSE_TYPE: "Выбор типа поста",
|
||||
cls.CHOOSE_FORMAT: "Выбор формата",
|
||||
cls.ENTER_TEXT: "Ввод текста",
|
||||
cls.ENTER_MEDIA: "Загрузка медиа",
|
||||
cls.EDIT_KEYBOARD: "Редактирование клавиатуры",
|
||||
cls.CONFIRM_SEND: "Подтверждение отправки",
|
||||
cls.ENTER_SCHEDULE: "Планирование публикации",
|
||||
cls.SELECT_TEMPLATE: "Выбор шаблона",
|
||||
cls.PREVIEW_VARS: "Ввод значений переменных",
|
||||
cls.PREVIEW_CONFIRM: "Подтверждение предпросмотра",
|
||||
|
||||
# Каналы и боты
|
||||
cls.CHANNEL_NAME: "Ввод имени канала",
|
||||
cls.CHANNEL_DESC: "Ввод описания канала",
|
||||
cls.CHANNEL_INVITE: "Ввод инвайт-ссылки",
|
||||
cls.BOT_TOKEN: "Ввод токена бота",
|
||||
cls.CHANNEL_ID: "Ввод ID канала",
|
||||
cls.CHANNEL_TITLE: "Ввод названия канала",
|
||||
cls.CHANNEL_SELECT_BOT: "Выбор бота для канала",
|
||||
}
|
||||
return descriptions.get(state, f"Неизвестное состояние {state}")
|
||||
|
||||
Reference in New Issue
Block a user