Telegram-бот для фильтрации и агрегации новостей

Причины создания

Большинство из нас в какой-то момент времени сталкивается с переизбытком информации. У нас есть мессенджеры, аккаунты в социальных сетях, мы используем рекомендательные системы (например, Google Feed или «Яндекс.Дзен»). В каждом из этих источников много неинтересных новостей и спама, поэтому пропустить что-то действительно важное стало очень просто. Например, для меня в данный период времени очень полезно знать информацию о существенных изменениях курсов валют и ставки ЦБ. Поэтому я создал телеграм-бота, который собирает новости из разных источников, фильтрует их по ключевым словам и отправляет уведомление с отфильтрованными новостями в telegram. Бот проверяет информацию каждый час, чтобы не отвлекать лишний раз. Попробовав его несколько дней, могу сказать, что этот бот действительно помогает снизить информационную нагрузку и помогает сконцентрироваться на более важных вещах.

Описание бота

Сам бот Filtered News очень простой. На его создание у меня ушло несколько дней. У бота две основные команды /sources (для указания источников в виде списка url-ов, разделенных запятыми) и /keywords (соответственно для указания списка слов, по которым будет производиться фильтрация). В данный момент поддерживаются только RSS источники, но тем не менее почти у всех популярных медиа они имеются. Просто в качестве примера (а не рекламы) есть следующие:

Но вы также можете добавить любые свои RSS-ссылки. Достаточно удобно их искать прямо на главной странице медиа. Также можно загугуглить. Нужная вам RSS-ссылка будет выдавать xml наподобие следующего.

Пример выдачи RSS-ссылки.
Пример выдачи RSS-ссылки.

Ключевые слова проверятся просто по включению. Поэтому на данном этапе при составлении списка необходимо задумываться над выделением корня, наличием пробелов и тому подобное.

Так, если вас интересуют новости об изменении курса доллара, то хорошим примером ключевой фразы будет “курс доллар” (также можно добавить другие формы, например “курса доллар”). Плохим примером является просто слово “доллар”, так как скорее всего будет много лишних новостей. Фильтрация осуществляется исключительно по заголовкам новостей.

Пример конфигурации бота
Пример конфигурации бота

После того как вы задали ключевые слова и источники в следующий целый час произойдет проверка, появились ли новости за предшествующий час, которые содержат заданные вами ключевые слова. И в случае наличия вам придёт сообщение. Никаких дополнительных проверок больше не происходит.

Пример оповещения бота
Пример оповещения бота

Немного более подробно о том как бот создавался можно посмотреть здесь. Никаким образом не рекомендую и не рекламирую сервисы, используемые при создании бота. Я пользовался тем, чем умел.

Интерфейс бота не очень удобный, но это было сделано в угоду надежности (кодовая база составляет всего около 150 строк). Бота можно очень долго улучшать и придумывать новые фичи, но для меня сейчас более важно, что он решает мою проблему. А новые фичи, на мой взгляд, большой выгоды особо никому не принесут.

Вывод

Мне бот нравится. Предлагаю и вам его опробовать.

1 комментарий

Бота можно поставить на автопостинг в канале?