Telegram новости бот — FeedBot для Telegram

В свободное от общественных и коммерческих проектов время я немного сам программирую. В основном то что мне же самому нужно и что может пригодится другим.

Пример такого — это FeedRetranslatorBot в телеграме которые перенаправляет новости из RSS каналов на сайте и просто страниц где есть новости в телеграм каналы. Бот был сделан для того чтобы заменить разного рода новостные читалки, а для удобства вместо категорий новостей чтобы можно было создать себе новостные каналы и в них транслировать то что интересно.

Особенность именно FeedRetranslatorBot в алгоритмах внутри которые извлекают новости из сайтов у которых нет экспорта в RSS. Примеры:

  • сайт ЦСР http://csr.ru/
  • раздел пресс-релизов Лукойла http://www.lukoil.ru/PressCenter/Pressreleases
  • отдел по церковной благотворительности РПЦ http://www.diaconia.ru/news/diaconia
  • и многие другие

Инструкция как подключить канал

  1. Необходимо создать новый публичный канал. В десктопном приложении это раздел «New channel» на английском или «Новый канал» на русском.

    Telegram_2018-08-14_11-23-32

    У канала надо заполнить основные его параметры: название, описание и выбрать картинку

    Telegram_2018-08-14_11-31-52
  2. Сделать канал публичным После создания необходимо настроить канал для работы

    Telegram_2018-08-14_11-33-54

    В настройках канала укажите что это «Public channel» а в Link укажите публичный идентификатор канала. В данном случае — это rudigitaltop

    Telegram_2018-08-14_14-48-43
  3. Добавьте бота к администраторам канала. В Manage Channel нажмите на вкладку Administrators

    Telegram_2018-08-14_11-34-05

    Нажмите кнопку «Add administrator»

    Telegram_2018-08-14_11-34-25

    В поиске наберите FeedReatranslatorBot и нажмите на выпадающий бот.

    Telegram_2018-08-14_11-34-48

    Подтвердите назначение бота администором канала

    Telegram_2018-08-14_11-34-56

    Установите и подтвердите разрешения для бота. На практике ему достаточно прав на публикацию материалов.

    Telegram_2018-08-14_11-35-06
  4. Добавление канала для подписок Откройте чат с FeedRetranslatorBot и наберите команду /channel <название канала> (то которое было указано в Link). Пример: /channel rudigitaltop

    Telegram_2018-08-14_11-36-11

Проверьте ленту которую вы хотите транслировать в канал командой /test. Это позволит убедится что новости извлекаемы из этого источника. Пример в данном случае «/test https://corp.mail.ru/ru/press/releases/» проверяет извлекаются ли корпоративные новости mail.ru

Telegram_2018-08-14_11-37-10

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

Telegram_2018-08-14_11-38-33

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

Список всех каналов и привязанных к ним подписок можно получить командой «/list». Пример того как выводятся подписки по каналу rudigitaltop

Telegram_2018-08-14_15-00-46

Примеры каналов

На основе бота уже создано множество каналов:

  • Правительственный дайджест 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].

Поделиться:
Нет комментариев

Добавить комментарий

Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.