Telegram новости бот — FeedBot для Telegram
В свободное от общественных и коммерческих проектов время я немного сам программирую. В основном то что мне же самому нужно и что может пригодится другим.
Пример такого — это FeedRetranslatorBot в телеграме которые перенаправляет новости из RSS каналов на сайте и просто страниц где есть новости в телеграм каналы. Бот был сделан для того чтобы заменить разного рода новостные читалки, а для удобства вместо категорий новостей чтобы можно было создать себе новостные каналы и в них транслировать то что интересно.
Особенность именно FeedRetranslatorBot в алгоритмах внутри которые извлекают новости из сайтов у которых нет экспорта в RSS. Примеры:
- сайт ЦСР http://csr.ru/
- раздел пресс-релизов Лукойла http://www.lukoil.ru/PressCenter/Pressreleases
- отдел по церковной благотворительности РПЦ http://www.diaconia.ru/news/diaconia
- и многие другие
Инструкция как подключить канал
-
Необходимо создать новый публичный канал. В десктопном приложении это раздел «New channel» на английском или «Новый канал» на русском.
У канала надо заполнить основные его параметры: название, описание и выбрать картинку
-
Сделать канал публичным После создания необходимо настроить канал для работы
В настройках канала укажите что это «Public channel» а в Link укажите публичный идентификатор канала. В данном случае — это rudigitaltop
-
Добавьте бота к администраторам канала. В Manage Channel нажмите на вкладку Administrators
Нажмите кнопку «Add administrator»
В поиске наберите FeedReatranslatorBot и нажмите на выпадающий бот.
Подтвердите назначение бота администором канала
Установите и подтвердите разрешения для бота. На практике ему достаточно прав на публикацию материалов.
-
Добавление канала для подписок Откройте чат с FeedRetranslatorBot и наберите команду /channel <название канала> (то которое было указано в Link). Пример: /channel rudigitaltop
Проверьте ленту которую вы хотите транслировать в канал командой /test. Это позволит убедится что новости извлекаемы из этого источника. Пример в данном случае «/test https://corp.mail.ru/ru/press/releases/» проверяет извлекаются ли корпоративные новости mail.ru

Добавьте новости командой /add <id канала> <ссылка>. Пример «/add rudigitaltop https://yandex.ru/blog/company/rss»

В итоге получился канал «Ведущие интернет компании» (rudigitaltop) в который транслируются новости Яндекса, Mail.ru груп, 1С, 2Gis и других.
Список всех каналов и привязанных к ним подписок можно получить командой «/list». Пример того как выводятся подписки по каналу rudigitaltop

Примеры каналов
На основе бота уже создано множество каналов:
- Правительственный дайджест https://t.me/govdigest : новости администрации Президента, Правительства, ключевых министерств и мозговых центров
- Контрактная система https://t.me/gzcontracts : новости электронных торговых площадок, сайта госзакупок и других источников регулирования российской контрактной системы (государственной)
- Госфинансы https://t.me/govfin : новости Минфина, Казначейства, ФНС России и другие новости по госфинансам
- Московский патриархат https://t.me/mospatriarhia новости Московского патриархата и всех его синоидальных отдела (без учёта митрополий и епархий)
- Open Data Digest https://t.me/opendatadigest : международные новости про открытые данные
- Open Government Digeest https://t.me/opengovdigest : международные новости про открытость государства
- Data is Good https://t.me/dataisgood : международные источники про данные и алгоритмы
- Крупнейшие компании https://t.me/topcorpnews : новости топ 20 российских компаний по рейтингу РБК 500 (Газпром, Лукойл, Ростех и др)
Кроме того многие публичные каналы создают пользователи. Например, Фил Кулин (канал Эшер II, https://t.me/usher2, https://usher2.club) создал такие каналы:
- Лента новостей с regulation.gov.ru https://t.me/ru_regulation : поток новостей по законопроектам для публичной реакции
- Новости Минцифры и Роскомнадзора https://t.me/ru_comnews : новости этих двух ведомств соответственно
Подробнее о боте
Для того чтобы извлекать оттуда новости бот использует библиотеку newsworker https://github.com/ivbeg/newsworker которая как раз и извлекает из HTML заголовки, даты, ссылки и текст новости. Это даёт возможность охватить ещё и те источники новостей которые можно упустить при медиамониторинге.
Новости собираются в режиме от 15 до 30 минут, если не возникает проблем с первоисточником, например если он не банит внешних ботов как это иногда бывает с сайтом Роскомнадзора, например.
Бот работает на принципе forever free, создан не для монетизации, а для личного удобства (как я уже говорил он мне нужен для замены RSS читалок). Большая часть его кода открыта или будет открыта на github’е.
Не все возможности реализованы, как я писал — вначале бот готовился для себя и лишь позже открыт для всех желающих.
Из того что запланировано:
- веб-интерфейс с документацией и каталогом общедоступных каналов (для тех кто решит их публичить)
- API и утилита командной строки для управления подписками
- монитор доступности сайтов с новостями (не заблокировали ли бота)
- упрощение горизонтального масштабирования
Вы также можете создать свои каналы с помощью этого бота. Он реагирует на команду /help, а мне можно задавать вопросы и пожелания в https://t.me/begtinchat и на почту [email protected].