Парсер и автопубликация материалов в Телеграм
Система следит за источниками, читает страницы и PDF, готовит саммари и передает редактору материал для публикации, правки, переноса или отказа.
- 60 мин → 2 минВремя на один пост
- 2–4 ч/день → автосборМониторинг источников
- копировать вручную → автоизвлечениеPDF-материалы
Проблема
Редактор тратил 2–4 часа в день на ручной мониторинг, чтение PDF и написание саммари. Процесс был не масштабируемым и зависел от одного человека.
Проблема
Редактор канала тратил по несколько часов в день еще до работы с текстом - следил за источниками, открывал страницы и PDF, выписывал главное и только потом собирал пост.
После подготовки материал все равно нужно было проверить, при необходимости поправить, выбрать время публикации и отправить в нужный канал. Весь маршрут зависел от ежедневной ручной работы одного человека.
Что я построил
Конвейер из трех слоев, который собирает материал и передает редактору готовый вариант для финального решения.
1. Мониторинг (userbot)
Userbot на Telethon следит за каналами-источниками в реальном времени.
- Если в тексте поста есть нужные слова-маркеры — пост идёт в обработку.
- Если нет — игнорируется.
- Всё настраивается через удобного Telegram-бота администратора, без правки кода и перезапуска сервера.
2. Обработка (n8n + OpenAI)
Пост попадает в n8n. Там происходит магия:
- Если есть PDF — текст извлекается автоматически (парсинг документа).
- OpenAI генерирует саммари по заданному промпту (промпт тоже можно менять прямо из бота).
- Результат сохраняется в PostgreSQL с защитой от дубликатов.
3. Модерация и публикация (editor-bot)
Бот отправляет готовое саммари редактору. Одно нажатие кнопки:
- Опубликовать — сразу улетает во все нужные целевые каналы.
- Запланировать — можно выбрать время, и система сама опубликует позже.
- Редактировать — поправить текст саммари прямо в боте, если нейросеть где-то ошиблась.
- Отклонить — пост удаляется из очереди.
PDF-файл прикрепляется отдельно — в комментарии к посту через связанное обсуждение, чтобы не загромождать основной пост.
Хитрые детали
Чтобы временная ошибка не ломала маршрут публикации, в системе есть:
- Группы маркеров: каждый маркер привязан к конкретному целевому каналу. Один пост про «когнитивные искажения» уйдёт в канал по психологии, про «эффективность» — в канал про бизнес. Всё автоматически.
- Очередь с ретраями: если Telegram флудит или редактор долго не отвечает, система не теряет пост. Она повторит попытку доставки редактору до 5 раз, а потом вернёт пост в очередь через час.
- Защита от дубликатов: ограничение
ON CONFLICTв базе по пареsource_channel + message_idне дает создать вторую запись для того же исходного поста. - Планировщик: каждые 30 секунд проверяет отложенные посты и публикует их строго по расписанию.
- Алерты: при сбое бот присылает уведомление админу в Телеграм.
Под капотом
Архитектура решения:
Каналы-источники
→ userbot (Telethon)
→ outbox queue
→ n8n webhook
→ Read PDF / OpenAI GPT
→ PostgreSQL
→ editor-bot (aiogram 3)
→ редактор нажимает кнопку
→ публикация в целевые каналы
Всё упаковано в Docker Compose. Reverse proxy через Nginx, SSL-сертификаты обновляются через Let’s Encrypt. Деплой — одной командой.
До / После
| Показатель | До внедрения | После внедрения |
|---|---|---|
| Время на пост | 30–60 мин | ~2 мин (прочесть и нажать кнопку) |
| PDF-материалы | Вручную читать и выписывать | Автоизвлечение + саммари |
| Маршрутизация | Вручную | Автоматически по маркерам |
Итог
Вместо 30–60 минут подготовки редактор тратит около двух минут на чтение и решение. Материалы остаются в очереди, дубли отсекаются, а при временной ошибке система повторяет доставку.
Редактор остается финальным фильтром - он может опубликовать материал, отложить, поправить или отклонить.
Такую связку можно собрать под любую нишу: новости, исследования, вакансии, товары, юридические обзоры — везде, где нужен постоянный мониторинг источников, фильтрация и публикация.
Идеальная работа! Тот случай, один на сотню, когда человек делом подтверждает все свои слова.
Вместо 30–60 минут подготовки редактор тратит около двух минут на чтение и решение. Материалы остаются в очереди, дубли отсекаются, а при временной ошибке система повторяет доставку.