RSS прокси на Node.js / Нотификации в телефон с любого сайта

Published: 08 March 2021
on channel: VoidPlusPlusRu
552
24

#rss #proxyscript #node.js #nodejs #heroku
Представьте, что есть какой-то сайт, с полезной для вас информацией, которая постоянно пополняется. Например, это может быть сайт с объявлениями. Но этот сайт не предоставляет возможности получать оповещения о новой информации. Поэтому вам нужно периодически заходить на этот сайт и просматривать новую информацию. Было бы намного лучше получать оповещения о новой, нужной именно вам информации, сразу в телефон.

Для этого можно использовать обычный RSS-ридер.

Возможно те, кто помладше и не слышали никогда о нём, поэтому поясню что это такое.

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

Лет 15 назад RSS был довольно популярен. Однако уже потерял свою былую популярность. Новые сайты уже не предоставляют информацию в этом формате, а те, кто раньше предоставляли - постепенно отключают RSS.

Кто-то скажет, что RSS уже не нужен, ведь есть те же ленты новостей в соцсетях. Но эти ленты содержат ещё кучу рекламы и “умных” рекомендаций.
Я до сих пор использую RSS, чтобы следить за нужной мне информацией, например объявления о продаже автомобилей, недвижимости и о вакансиях.

Совсем недавно один из сайтов, на который я был подписан, отключил RSS, чем меня сильно огорчил. Но, к счастью, тот же самый сайт предоставляет REST API.

Первая мысль была найти какое-нибудь приложение, которое сможет аналогично RSS-ридеру читать новые записи из REST API. Однако ничего толкового не нашёл, но оно и понятно. RSS - это стандартизированный формат данных, в то время как REST может предоставлять данные в любой структуре.

Следующей идеей было написать простейший прокси скрипт для преобразования REST в RSS. Ведь ридер уже есть, нужно только подать ему правильный формат.

Такой скрипт помимо непосредственно конвертации из JSON в XML может ещё и отфильтровывать неинтересные записи. Благодаря этому, такой скрипт можно использовать и в случаях, когда сайт предоставляет RSS, но не даёт достаточных фильтров.

Даже если сайт не предоставляет ни RSS, ни REST, на худой конец можно работать с HTML и так же фильтровать и преобразовывать в XML.

Для скрипта я выбрал Node.js. Далее чуть подробнее разберу скрипт.
Код этого скрипта получился очень простым.

Первый случай, когда нужно преобразовать из REST в XML. Просто берём данные по ссылке. Далее формируем rss объект, который позже сериализуется в xml.

Заполняем все стандартные поля.
Поле item - должно быть массивом записей. Здесь я беру список вакансий фильтрую его по нужным мне условиям и преобразую в список записей RSS.

Потом с помощью xml2js библиотеки преобразую js объект в xml.

Обязательно ставим тип ответа xml и возвращаем сам xml.

В случае с только фильтрацией всё ещё проще.
Берем данные, с помощью того же xml2js преобразуем в объект. И фильтруем массив item. А дальше так же как и в первом случае.

Итак, после того, как скрипт готов и проверен, можно задеплоить его на какой-нибудь хостинг.

Теперь остаётся вставить в RSS-ридер ссылку на прокси скрипт. И вуаля. Больше не нужно постоянно проверять сайт на наличие новых объявлений, что позволяет значительно экономить время.

0:00 Вступление
0:26 Что такое RSS
2:19 Прокси скрипт


Watch video RSS прокси на Node.js / Нотификации в телефон с любого сайта online without registration, duration hours minute second in high quality. This video was added by user VoidPlusPlusRu 08 March 2021, don't forget to share it with your friends and acquaintances, it has been viewed on our site 55 once and liked it 2 people.