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

#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 Прокси скрипт

12+
1 просмотр
4 часа назад
12+
1 просмотр
4 часа назад

#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 Прокси скрипт

, чтобы оставлять комментарии