FeedBot для Telegram
Пример такого - это FeedRetranslatorBot в телеграме которые перенаправляет новости из RSS каналов на сайте и просто страниц где есть новости в телеграм каналы.
В свободное от общественных и коммерческих проектов время я немного сам программирую. В основном то что мне же самому нужно и что может пригодится другим.
Пример такого - это 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].