first-commenting-bot/README.md
Artemii Peretiachenko 9147306713 Initial commit: Telegram first-comment bot.
Auto-replies in a channel discussion chat with HTML text from comment.txt.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-20 15:05:59 +02:00

60 lines
2.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# First commenting bot
Telegram-бот, который в discuss-чате канала отвечает заданным текстом на каждый новый пост (автофорвард из канала).
## Как это работает
1. В канале выходит пост.
2. Telegram сам дублирует его в привязанный discussion-чат.
3. Бот видит сообщение с `is_automatic_forward` (автофорвард из канала).
4. Бот делает reply с текстом из файла [`comment.txt`](comment.txt).
Бот слушает **discuss-чат**, не сам канал. В канал его добавлять не нужно.
Обычные сообщения, личка и команды (`/start` и т.п.) бот игнорирует — на них нет обработчиков.
## Настройка в Telegram
1. Создайте бота у [@BotFather](https://t.me/BotFather) и скопируйте токен.
2. В настройках канала включите **Discussion** и привяжите супергруппу.
3. Добавьте бота в discuss-чат и сделайте **админом** с правом писать сообщения.
4. Узнайте `chat_id` discuss-чата (отрицательный, вида `-100...`). Удобные способы:
- переслать любое сообщение из чата боту вроде [@userinfobot](https://t.me/userinfobot);
- временно залогировать `message.chat.id` в боте.
## Установка и запуск
```bash
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`](comment.txt) в корне проекта (можно многострочный HTML).
Запуск:
```bash
python -m bot.main
```
Тесты:
```bash
python -m pytest
```
## Проверка
1. Запустите бота.
2. Опубликуйте тестовый пост в канале.
3. В discuss-чате появится автофорвард — бот ответит replyем текстом из `comment.txt`.
4. Обычное сообщение в чат бот игнорирует.