Подключение любого сайта к PushAll через RSS. Конвертер новостных лент в Push-уведомления
Сервис создавался как система уведомлений для пользователей с любого сайта, который интегрировал PushAll API.Однако не со всеми можно договориться, гиганты вообще не будут обращать долгое время внимание. При этом на данный момент большая часть пользователей, получает именно новостные уведомления с сайтов, а не личные. По этому поводу мне недавно посоветовали интегрировать RSS-рассылки. То есть по факту PushAll становится эдаким RSS-агрегатором, при этом на самом деле обычные пользователи чаще всего не нуждаются в привычных агрегаторах лент — они заходят на сайты самостоятельно и читают новости уже на них.
В этом плане PushAll пошел по своему пути — он не собирает все ленты в одну. Он лишь берет ленту, связывает её с каналов и делает рассылку с учетом фильтра. То есть пользователь заинтересованный в статьях и новостях определенных тематик получит сразу об этом уведомление. Менее полезную информацию он может прочесть потом самостоятельно.
При этом пользователю не обязательно быть администратором сайта, он может быть его читателем и создать специальный канал. В дальнейшем, если правообладатель захочет получить административный доступ к каналу, ему нужно будет обратиться в службу поддержки и предоставить доказательства правообладания. В этом случае, канал будет полностью перенесен к истинному владельцу.
Не буду отрицать, все советы по поводу RSS были с оглядкой на Pushbullet. Я некоторое время гуглил информацию по агрегаторам — все скрывают время обновления. Я с трудом узнал, что Feedly обновляет ленты обычно лишь раз в 2–4 часа. А минимальное время обновления чуть ли не 30 минут. У Pushbullet я не нашел вообще информации по обновлению лент.Также я хочу не просто скопировать этот функционал — я хочу его расширить. К примеру, у сайта может быть несколько источников, это и YouTube и личный сайт и возможно блог. В дальнейшем можно будет добавлять несколько лент к одному каналу. Также я постараюсь сделать систему исключения повторов. То есть видео опубликованное на YouTube будет разослано один раз, а не три раза, по каждому из источников. Также как правило не все надо рассылать. Для каждой RSS ленты можно будет задать отдельный фильтр, к примеру подкасты можно пушить, а что-то из категории дополнений к новостям можно и опустить. Также время обновления должно зависеть от числа подписчиков.
На данный момент готов минимальный функционал — добавление одной ленты к одному каналу. Канал должен быть публичным. Вы можете сами задать период обновления. К примеру, если вы уверены, что на сайте выходит одна новость в неделю, можно задать период вообще раз в 2–3 часа или больше.Также период обновления зависит от числа подписчиков.
На скриншоте выше отображены все ограничения. Если вкратце — чем больше у вас подписчиков, тем чаще может обновляться канал. От 1 часа и вплоть до 1 минуты.
Алгоритм обновления на данный момент очень прост. Он однопоточен. Старается скачать первые 512 килобайт RSSки, если не выходит, качает всю. Для проверки берется всегда только первая запись, сверяется не была ли она оправлена ранее. В первую очередь будет улучшаться поддержка быстрого сканирования. У многих каналов есть поддержка кэширования, когда канал отвечает 304, в случае если нет новых данных, и поддержка получения только новых записей.Для тестирования необходимо как можно больше разнообразных каналов, чтобы выявить возможные проблемы и оптимизировать работу с ними.
Теперь пользователи меньше зависят от сайтов. Они могут самостоятельно создавать каналы с RSS-лентами и получать необходимую им информацию в виде Push-уведомлений на смартфон с Android и браузер Chrome.