мой агрегатор новостей

у меня довольно давно были претензии к Google Reader. Некоторые из них касались интерфейса, поэтому я от него отказался и стал использовать собственный интерфейс: Open Google Reader. Но прочие претензии были к серверной части, например, отсутствие поддержки авторизации для подзамочных постов в жж, или невозможность получить полный текст статьи для куцых потоков. Поэтому уже несколько лет я прикидывал, как можно сделать собственный агрегатор новостей, хотя никак не мог собраться.

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

я уже писал о своей любви к статическим файлам как основе для веб-сервисов. Для агрегатора мне тоже получилось обойтись без кода, исполняющегося в контексте веб-сервера. Регистрации нет: продукт однопользовательский. Аутентификация — HTTP Auth. REST API (удалить из непрочитанных, сохранить на будущее) сделано через WebDav в nginx. Агрегированные списки строятся при помощи ls и cat, которые запускает incron при изменении списка файлов.

ну а собственно сборщик новостей — это работающий по крону скрипт на питоне, использующий feedparser. Он проходит по списку потоков, вынимает из них новые записи и складывает их в папку непрочитанных. При необходимости ходит по ссылкам и достаёт оттуда полезное содержимое по CSS selector. Дата обновления потока хранится в файле.

нельзя не упомянуть недостатки решения, с которыми я легко мирюсь. Нет подписки на PubSubHubbub, поэтому приходится подождать (максимум 15 минут — такая периодичность обновления). Нет веб-интерфейса для управления списком потоков. Если запись со вчерашней датой попадает в поток только сегодня (как это часто бывает у хабра, баша, и т.п.) она будет проигнорирована. При обновлении записи она может снова попасть в непрочитанные. Но всё это мелочи для меня.

в итоге уже где-то месяц я пользуюсь своим агрегатором, а с пятницы вообще перестал заглядывать в Google Reader.

любопытно, что гугл стимулирует меня отказываться от его продуктов в очень подходящие моменты: как раз когда мои навыки развиваются до нужного уровня, чтобы настроить или сделать альтернативу. Вначале была почта, потом интерфейс ридера, потом система рекомендаций ридера, потом фотогалерея, за ней агрегатор. А сейчас гугл собирается предать XMPP, так что будет у меня собственный джаббер-сервер, который я тоже давно хотел.

Артемий Трегубенко,
,

comments powered by Disqus