02afbd23ec9ce511facbd0ad8babc4db9c03c588
Session Status Bot
Бот на aiogram 3 для управления статусами персонажей через кнопки и автоматического обновления одного сообщения в канале.
Что умеет
- показывает пользователю только его кнопку, если он привязан по
operator_user_id - позволяет админам видеть все кнопки
- после выбора персонажа предлагает статус:
open,backstage,delay,rest - после выбора статуса просит фразу для публикации
- обновляет заданное сообщение в канале через
edit_message_text - хранит текущее состояние в
data/state.json
Настройка
- Установите зависимости:
uv sync
- Заполните
.envпо примеру из[.env.example](/c:/Users/admin/Desktop/pidoras/.env.example).
Обязательные переменные:
BOT_TOKEN— токен ботаCHANNEL_ID— ID канала, где лежит обновляемое сообщениеCHANNEL_MESSAGE_ID— ID сообщения в каналеADMIN_IDS— список Telegram user id через запятую
- Отредактируйте
[config/actors.json](/c:/Users/admin/Desktop/pidoras/config/actors.json).
Для каждого участника задаются:
key— внутренний ключbutton_text— текст на кнопкеdisplay_name— имя в постеlink— ссылка на ботаoperator_user_id— Telegram user id человека, который может менять этот статусphrases— шаблонные фразы под каждый статус
Запуск
uv run python main.py
Как это работает
- Пользователь пишет
/start. - Бот показывает доступные кнопки персонажей.
- После выбора персонажа бот показывает кнопки статусов.
- После выбора статуса бот просит ввести фразу.
- Введенная фраза сохраняется и бот редактирует сообщение в канале.
Если отправить точку . вместо текста, бот возьмет шаблонную фразу из config/actors.json.
Проверка
Тест рендера:
uv run --with pytest python -m pytest
Description
Languages
Python
95.8%
Dockerfile
4.2%