Verum fd45c1864e
Some checks failed
CI / Lint (ruff + mypy) (push) Failing after 32s
CI / Run tests (push) Has been skipped
CI / Docker build test (push) Successful in 10s
а
2026-04-02 22:30:55 +07:00
123
2026-04-02 18:04:04 +07:00
213
2026-04-02 21:13:40 +07:00
а
2026-04-02 22:30:55 +07:00
2026-04-02 22:12:57 +07:00
123
2026-04-02 18:04:04 +07:00
123
2026-04-02 18:04:04 +07:00
123
2026-04-02 18:04:04 +07:00
123
2026-04-02 18:04:04 +07:00
123
2026-04-02 18:04:04 +07:00
123
2026-04-02 18:04:04 +07:00
123
2026-04-02 18:04:04 +07:00
123
2026-04-02 18:04:04 +07:00
123
2026-04-02 18:04:04 +07:00
123
2026-04-02 18:04:04 +07:00
123
2026-04-02 18:04:04 +07:00
123
2026-04-02 18:04:04 +07:00
123
2026-04-02 18:04:04 +07:00
123
2026-04-02 18:04:04 +07:00
2026-04-02 20:59:04 +07:00
123
2026-04-02 18:04:04 +07:00

Session Status Bot

Бот на aiogram 3 для управления статусами актеров и обновления одного поста в канале.

Что умеет

  • показывает пользователю только его кнопку актера
  • после выбора актера сразу дает один экран кнопок: Открыть, Закулисье, Задержка, Антракт, Своя фраза
  • статусы применяются сразу с шаблонной фразой
  • Своя фраза меняет текст для текущего статуса
  • обновляет сообщение канала в MarkdownV2
  • умеет хранить шаблон поста через /post

Команды

  • /start или /panel — открыть панель
  • /help — справка
  • /refresh — перерисовать пост в канале
  • /cancel — сбросить текущий ввод
  • /post — сохранить шаблон поста

Шаблон поста

Шаблон должен содержать:

  • {{actors}} — сюда бот вставляет блок актеров
  • {{hidden_link}} — необязательно, сюда бот вставляет скрытую ссылку для превью

Если {{hidden_link}} не указан, но в config/actors.json заполнен hidden_link_url, бот добавит скрытую ссылку в начало сам.

Важно: если просто переслать уже оформленный Telegram-пост, Telegram не гарантирует точное восстановление исходного MarkdownV2. Надежнее отправлять шаблон как обычный текст или реплаем на текстовый пост.

Настройка

  1. Установить зависимости:
uv sync
  1. Заполнить .env.

  2. Проверить config/actors.json:

  • hidden_link_url — ссылка для скрытого превью
  • phrases — шаблонные фразы под статусы
  • operator_user_id или operator_user_ids — кто может менять статус

Запуск

uv run python main.py

Проверка

uv run --with pytest python -m pytest
Description
No description provided
Readme 239 KiB
Languages
Python 95.8%
Dockerfile 4.2%