Telegram bot that posts a fixed first comment under new channel posts in the linked discussion chat
Find a file
Artemii Peretiachenko ac6027a3fd Wait 5 seconds before replying to a channel post.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-31 11:25:05 +02:00
bot Wait 5 seconds before replying to a channel post. 2026-08-31 11:25:05 +02:00
tests Initial commit: Telegram first-comment bot. 2026-07-20 15:05:59 +02:00
.env.example Initial commit: Telegram first-comment bot. 2026-07-20 15:05:59 +02:00
.gitignore Initial commit: Telegram first-comment bot. 2026-07-20 15:05:59 +02:00
comment.txt Drop the extra CTA from the site line in comment text. 2026-08-31 11:19:12 +02:00
pytest.ini Initial commit: Telegram first-comment bot. 2026-07-20 15:05:59 +02:00
README.md Initial commit: Telegram first-comment bot. 2026-07-20 15:05:59 +02:00
requirements.txt Initial commit: Telegram first-comment bot. 2026-07-20 15:05:59 +02:00

First commenting bot

Telegram-бот, который в discuss-чате канала отвечает заданным текстом на каждый новый пост (автофорвард из канала).

Как это работает

  1. В канале выходит пост.
  2. Telegram сам дублирует его в привязанный discussion-чат.
  3. Бот видит сообщение с is_automatic_forward (автофорвард из канала).
  4. Бот делает reply с текстом из файла comment.txt.

Бот слушает discuss-чат, не сам канал. В канал его добавлять не нужно. Обычные сообщения, личка и команды (/start и т.п.) бот игнорирует — на них нет обработчиков.

Настройка в Telegram

  1. Создайте бота у @BotFather и скопируйте токен.
  2. В настройках канала включите Discussion и привяжите супергруппу.
  3. Добавьте бота в discuss-чат и сделайте админом с правом писать сообщения.
  4. Узнайте chat_id discuss-чата (отрицательный, вида -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

Проверка

  1. Запустите бота.
  2. Опубликуйте тестовый пост в канале.
  3. В discuss-чате появится автофорвард — бот ответит replyем текстом из comment.txt.
  4. Обычное сообщение в чат бот игнорирует.