# 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. Обычное сообщение в чат бот игнорирует.