from __future__ import annotations import html WELCOME_RICH_HTML = """
Помогаю писать и редактировать посты для соцсетей. Расскажи, о чём нужен пост, а я верну три варианта: короткий, развёрнутый и с призывом к действию.
Выбери режим в нижнем меню: «Обучение», «Генерация», «Подписка» или «Помощь». Внутри режима кнопка «Главное меню» возвращает сюда. Команда /start тоже открывает главное меню.
В режиме «Обучение» пришли скриншоты своих постов; в режиме «Генерация» попроси идею или пост.
""" HELP_MENU_TITLE = "Помощь по боту" HELP_MENU_INTRO = "Выбери раздел — откроется только он. Из любого раздела можно перейти в любой." HELP_SECTIONS: dict[str, tuple[str, str]] = { "posts": ( "✍️ Написать пост", """В сообщениях с вариантами будет только текст поста: без нумерации и вступлений, с абзацами, переносами строк и уместными эмодзи.
""", ), "tone": ( "🎨 Tone of Voice", """Пришли скриншот или галерею скриншотов своих опубликованных постов. Я распознаю текст, сохраню его как образцы и обновлю только правила Tone of Voice. Сами публикации не переписываю.
Чтобы удалить стиль и историю обучения, нажми «Сбросить данные» и подтверди действие.
""", ), "edit": ( "✏️ Правка поста", """Ответь реплаем на сообщение с вариантом и укажи, что изменить. Например: «Сделай короче и добавь призыв». Я учту оригинальный текст и верну три новых варианта отдельными сообщениями.
""", ), "idea": ( "💡 Идея для поста", """Напиши «предложи идею для поста», «о чём написать?» или «накидай тему» — верну одну идею. Команда /idea работает так же.
Идеи сохраняются, чтобы не повторяться: каждая новая идея отличается от предыдущих.
""", ), "subscription": ( "💳 Подписка", """У тебя есть пробный период — 3 дня бесплатно. Дальше — подписка на 30 дней за 100 звёзд.
/balance — узнать статус: сколько осталось дней триала или подписки./subscribe — оплатить подписку на 30 дней.При входе в режим «Подписка» бот сразу показывает активный период и сколько дней осталось. Нажми «Продлить подписку», чтобы сразу открыть счёт в звёздах. Когда период закончится, генерация постов и идей станет недоступна.
""", ), "commands": ( "⌨️ Команды", """Команды-переключатели доступны в любом режиме: /start — главное меню; /training — обучение; /generate — генерация; /subscription — подписка; /help — помощь.
Действия доступны только в своём режиме: /style и /clear — обучение; /post и /idea — генерация; /balance и /subscribe — подписка. /clear и кнопка «Сбросить данные» сначала запрашивают подтверждение; подписка и триал не меняются.
В режиме «Генерация» можно попросить идею обычными словами: «предложи идею для поста», «о чём написать?», «накидай тему».
""", ), } HELP_SECTION_ORDER: tuple[str, ...] = tuple(HELP_SECTIONS) HELP_MENU_BUTTON = "⌂ В меню" def _menu_buttons(current: str | None = None) -> str: rows = [] for section in HELP_SECTION_ORDER: title = HELP_SECTIONS[section][0] if section == current: button = f'{HELP_MENU_INTRO}
" f"Я помогаю писать и редактировать посты для соцсетей. " f"Генерирую посты только по явной просьбе.
" f"{_menu_buttons(current)}" ) def help_section_html(section: str) -> str: title, body = HELP_SECTIONS[section] return f"