mirror of
https://github.com/artemium428/first-commenting-bot.git
synced 2026-09-15 16:46:19 +00:00
Telegram bot that posts a fixed first comment under new channel posts in the linked discussion chat
Auto-replies in a channel discussion chat with HTML text from comment.txt. Co-authored-by: Cursor <cursoragent@cursor.com> |
||
|---|---|---|
| bot | ||
| tests | ||
| .env.example | ||
| .gitignore | ||
| comment.txt | ||
| pytest.ini | ||
| README.md | ||
| requirements.txt | ||
First commenting bot
Telegram-бот, который в discuss-чате канала отвечает заданным текстом на каждый новый пост (автофорвард из канала).
Как это работает
- В канале выходит пост.
- Telegram сам дублирует его в привязанный discussion-чат.
- Бот видит сообщение с
is_automatic_forward(автофорвард из канала). - Бот делает reply с текстом из файла
comment.txt.
Бот слушает discuss-чат, не сам канал. В канал его добавлять не нужно.
Обычные сообщения, личка и команды (/start и т.п.) бот игнорирует — на них нет обработчиков.
Настройка в Telegram
- Создайте бота у @BotFather и скопируйте токен.
- В настройках канала включите Discussion и привяжите супергруппу.
- Добавьте бота в discuss-чат и сделайте админом с правом писать сообщения.
- Узнайте
chat_iddiscuss-чата (отрицательный, вида-100...). Удобные способы:- переслать любое сообщение из чата боту вроде @userinfobot;
- временно залогировать
message.chat.idв боте.
Установка и запуск
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
Заполните .env:
| Переменная | Описание |
|---|---|
BOT_TOKEN |
Токен от BotFather |
DISCUSSION_CHAT_ID |
ID discuss-супергруппы (-100...) |
COMMENT_FILE |
Опционально: путь к файлу с текстом ответа (относительно корня проекта или абсолютный). По умолчанию — comment.txt |
Текст ответа редактируйте в comment.txt в корне проекта (можно многострочный HTML).
Запуск:
python -m bot.main
Тесты:
python -m pytest
Проверка
- Запустите бота.
- Опубликуйте тестовый пост в канале.
- В discuss-чате появится автофорвард — бот ответит reply’ем текстом из
comment.txt. - Обычное сообщение в чат бот игнорирует.