Telegram Parser & Publisher: контент на автопилоте
Как я убрал редактора из петли: мониторинг, AI-саммари и публикация без ручного труда для канала о психологии.
- 60 → 2 мин Время на один пост
- xN Масштабирование каналов
- 100% Авто-извлечение PDF
Проблема
Редактор тратил 2–4 часа в день на ручной мониторинг, чтение PDF и написание саммари. Процесс был не масштабируемым и зависел от одного человека.
Было
Редактор каждый день вручную:
- Мониторил несколько каналов и научных источников (психология, когнитивистика, маркетинг, осознанность).
- Читал полные материалы, часть из них — сложные PDF.
- Писал саммари в своём стиле.
- Постил в канал.
Проблема: это 2–4 часа в день рутинной работы. Масштабировать нельзя — всё завязано на одного человека. Если редактор заболел или занят — канал молчит.
Что я построил
Полностью автономный конвейер из трёх слоёв, где человек нужен только для финального «ОК».
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 секунд проверяет отложенные посты и публикует их строго по расписанию.
- Алерты: при любом сбое бот присылает уведомление админу в Telegram. Тихих смертей нет.
Под капотом
Архитектура решения:
Каналы-источники
→ 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 мин (прочесть и нажать кнопку) |
| Масштаб | 1 редактор, 1 канал | N редакторов, N каналов |
| Пропуск постов | Бывало (человеческий фактор) | Невозможно (queue + retry) |
| PDF-материалы | Вручную читать и выписывать | Автоизвлечение + саммари |
| Маршрутизация | Вручную | Автоматически по маркерам |
Итог
Редактор теперь — это финальный фильтр, а не операционная единица. Он тратит энергию только на принятие решений: «да / нет / отложить». Всю рутину (мониторинг, чтение, написание, постинг) система взяла на себя.
Такую связку можно собрать под любую нишу: новости, исследования, вакансии, товары, юридические обзоры — везде, где нужен постоянный мониторинг источников, фильтрация и публикация.
Полный цикл от источника до поста. Время на пост сократилось с 60 до 2 минут.