Расширили нашу open-source систему автоматизации новостей News Bot.
Теперь она может получать материалы не только из RSS-лент новостных сайтов, но и напрямую из X (Twitter).
При этом уже работающие RSS-источники менять не пришлось: они продолжают работать в прежнем режиме.
Зачем добавили X
News Bot автоматически выполняет значительную часть работы по ведению новостных и тематических сообществ:
собирает материалы из источников;
отбирает подходящие публикации;
переводит их;
при необходимости переписывает текст с помощью LLM;
проверяет, не публиковалась ли уже эта новость;
отправляет готовый материал в VK, Telegram или Битрикс24.
Но у RSS есть ограничение.
Многие новости сначала появляются в социальных сетях, а уже потом попадают на сайты и в RSS-ленты.
Особенно это заметно для:
коротких новостей;
официальных заявлений;
публикаций компаний и разработчиков;
музыкальных и развлекательных проектов;
авторских комментариев;
материалов с несколькими фотографиями.
Поэтому мы добавили возможность получать такие публикации напрямую из X.
Что это даёт
Новости можно публиковать быстрее
Если важная информация появилась в X, теперь не обязательно ждать, пока её перепечатает сайт или она появится в RSS.
News Bot может получить исходную публикацию напрямую и сразу отправить её на обработку.
Для новостных и тематических сообществ это сокращает задержку между появлением новости и её публикацией.
Можно использовать больше источников
Теперь в одном проекте можно одновременно использовать:
обычные RSS-ленты;
отдельные аккаунты X;
списки аккаунтов X.
Например, один поток может собирать новости с крупных сайтов, а другой — следить за официальными аккаунтами компаний, артистов или организаций.
Вся эта информация затем проходит через одну систему обработки и публикации.
Несколько фотографий сохраняются в одном посте
Публикации в X часто содержат несколько изображений.
News Bot умеет получить их и опубликовать, например, в VK одним постом.
То есть не нужно вручную скачивать фотографии и собирать публикацию заново.
Для разных источников можно использовать разные правила
Пост из X и большая новостная статья — это разные типы контента.
Поэтому News Bot позволяет обрабатывать их по-разному.
Например, для одного источника можно настроить:
почти дословный перевод;
короткий пересказ;
более свободный редакторский текст;
обязательное указание автора;
сохранение ссылки на оригинал.
Для другого источника правила могут быть совершенно другими.
Можно также заранее задать правильное написание имён, брендов, названий компаний и других терминов.
Это особенно полезно для тематических сообществ, где важно сохранять единый стиль публикаций.
Система проверяет материалы на повторы
Одна и та же новость может появиться сразу в нескольких местах.
Например:
компания публикует сообщение в X;
через несколько минут новость появляется на сайте;
затем материал приходит через RSS.
Без проверки система могла бы опубликовать одну и ту же новость несколько раз.
News Bot сравнивает новые материалы с уже опубликованными и старается определить такие совпадения.
Это позволяет одновременно использовать больше источников, не превращая канал в поток дублей.
Что будет, если X временно перестанет работать
X является дополнительным источником, а не обязательной частью системы.
Его можно полностью отключить одной настройкой.
При этом RSS, Telegram, VK, Битрикс24 и остальные функции продолжат работать независимо.
Это было одним из основных требований при разработке: новая возможность не должна делать уже работающую систему менее надёжной.
Почему не стали просто превращать X в RSS
Можно было выбрать более простой на первый взгляд путь:
X → RSS → News Bot
Но публикация в социальной сети содержит больше информации, чем обычная запись RSS.
Например:
Если сначала превращать всё это в RSS, часть информации можно потерять.
Поэтому для X сделали отдельный механизм получения данных.
При этом обычный RSS остаётся основным и самым простым способом подключения сайтов, где он уже есть.
Можно будет подключать и другие источники
X стал первым новым типом источника после RSS, но сама система теперь подготовлена для дальнейшего расширения.
В дальнейшем по тому же принципу можно подключать, например:
При этом каждый новый источник можно добавлять отдельно, не переделывая уже работающие.
Если сайт удобно подключить через RSS — используется RSS.
Если достаточно RSSHub — можно использовать его.
Если нужны дополнительные данные конкретного сервиса — подключается отдельный механизм сбора.
То есть способ интеграции выбирается под задачу, а не наоборот.
Надёжность
Автоматическая система должна нормально работать не только тогда, когда все внешние сервисы доступны.
News Bot умеет сохранять состояние обработки и восстанавливаться после перезапуска.
Если внешний сервис временно недоступен, система может повторить попытку позже.
Также предусмотрена дополнительная защита от ситуации, когда материал из-за сбоя случайно публикуется повторно.
Для пользователя всё это означает довольно простую вещь:
систему не нужно постоянно контролировать вручную только потому, что один из внешних сервисов временно ответил ошибкой.
Текущий статус
Новый механизм уже протестирован на реальных источниках X.
Проверены:
получение публикаций;
работа с отдельными аккаунтами и списками;
перевод и обработка текста;
публикация в VK;
работа с несколькими изображениями;
восстановление после перезапуска;
совместная работа RSS и X;
защита от повторных публикаций.
Что в итоге изменилось
Изначально News Bot был системой автоматизации новостей из RSS.
Теперь он постепенно превращается в более универсальную платформу для работы с контентом из разных источников.
Схема остаётся простой:
источник → обработка → проверка дублей → публикация
Меняется только то, откуда можно получать исходные материалы.
И главное — новые возможности добавляются без необходимости переделывать уже работающие проекты.
Ссылки
Кейс по системе:
https://msk.onl/cases/news-bot-automation
Все обновления News Bot:
https://msk.onl/blog?tag=news-bot
Проект на GitHub:
https://github.com/mskonl/news-bot
Если вам нужна автоматизация сбора, обработки и публикации контента, News Bot можно адаптировать под конкретную задачу: выбрать источники, настроить правила обработки, промпты, расписание и каналы публикации.
Код проекта открыт и доступен на GitHub.