# Session Status Bot Бот на `aiogram 3` для управления статусами актеров и обновления одного поста в канале. ## Что умеет - показывает пользователю только его кнопку актера - после выбора актера сразу дает один экран кнопок: `Открыть`, `Закулисье`, `Задержка`, `Антракт`, `Своя фраза` - статусы применяются сразу с шаблонной фразой - `Своя фраза` меняет текст для текущего статуса - обновляет сообщение канала в `MarkdownV2` - умеет хранить шаблон поста через `/post` ## Команды - `/start` или `/panel` — открыть панель - `/help` — справка - `/refresh` — перерисовать пост в канале - `/cancel` — сбросить текущий ввод - `/post` — сохранить шаблон поста ## Шаблон поста Шаблон должен содержать: - `{{actors}}` — сюда бот вставляет блок актеров - `{{hidden_link}}` — необязательно, сюда бот вставляет скрытую ссылку для превью Если `{{hidden_link}}` не указан, но в [config/actors.json](/c:/Users/admin/Desktop/pidoras/config/actors.json) заполнен `hidden_link_url`, бот добавит скрытую ссылку в начало сам. Важно: если просто переслать уже оформленный Telegram-пост, Telegram не гарантирует точное восстановление исходного `MarkdownV2`. Надежнее отправлять шаблон как обычный текст или реплаем на текстовый пост. ## Настройка 1. Установить зависимости: ```powershell uv sync ``` 2. Заполнить `.env`. 3. Проверить [config/actors.json](/c:/Users/admin/Desktop/pidoras/config/actors.json): - `hidden_link_url` — ссылка для скрытого превью - `phrases` — шаблонные фразы под статусы - `operator_user_id` или `operator_user_ids` — кто может менять статус ## Запуск ```powershell uv run python main.py ``` ## Проверка ```powershell uv run --with pytest python -m pytest ```