Несколько дней я с упоением делал то, что очень давно планировал и откладывал: онлайн-агрегатор RSS. Простым языком - френдлента. Многие на этом месте недоуменно пожмут плечами: зачем изобретать велосипед, если есть
Яндекс.Лента и
Google Reader, не считая других, более мелких поделок? Отвечаю: во-первых - потому, что у них нет некоторых фишек, которые мне нужны. Во-вторых - потому, что это именно фишка движка самого блога, а не сторонний сервис. В общем, продолжаю всячески развивать идеологию «лучше много независимых блогов, чем все яйца в одной корзине».
Итак, что представляет из себя
моя френдлента? С технической точки зрения - это сборщик RSS-записей из указанных источников. Своеобразный персональный кеш. Медленно, но верно скрипт обходит весь список источников, дергает оттуда записи и сохраняет их себе на память. Тут кроется первая изюминка: если запись между «обходами» изменялась, скрипт посчитает ее новой, и снова добавит в базу. Таким образом я стараюсь не упускать всякие «
UPD»-дописки - вдруг чего интересное дописали?
С точки зрения пользователя это еще более забавная штуковина. Во-первых, лент сразу три. Первая - все кешированные записи сплошняком (я так и назвал вкладку - «Все подряд»). Вторая лента - своеобразная куча, куда «падают» свежие записи. Я могу прочитать запись и удалить ее из этой кучи (вот, кстати, где пригождается вышеописанная фишка: если я прочитал запись и выкинул ее из кучи, а потом вдруг пост обновится - скрипт посчитает его новым и снова закинет в кучу, и я прочитаю его исправленный вариант), а могу переместить в третью ленту - «Избранное». В избранные записи попадают те записи, которые, как я считаю, мне стоит держать под рукой. Что-то очень интересное. Из «Избранного» записи уже никуда не деваются, их можно только стереть. И, кстати, там записи лежат уже сортированные не по датам, а по источникам (авторам).
Ну и теперь, если считать такое трехуровневое хранение записей второй изюминкой, то третья изюминка кроется в
весовых коэффициентах источников. Я еще колеблюсь - применять ли их ко всем трем лентам или хватит того, что они применяются в средней, «распределительной» ленте, но они есть. Всякая бытовая мелочь и картинки задвигаются поглубже, остальное - поближе.
Четвертая изюминка кроется в том, что если нажать на значок автора в списке источников (на странице с френдлентой справа), выдадутся записи только этого конкретного автора.
Пятая изюминка - отдельный стиль оформления для постов каждого из источников. Я ограничился тем, что некоторым повесил тематические картинки, но вообще возможности шире.
Ну а теперь ложечка дегтя. Закрытые записи. Тут кроется несколько нюансов - поскольку в RSS-потоках подзамочные и общие записи никак не различаются, то есть риск выдать чей-то «подзамок», если забирать RSS авторизованно (от имени своего аккаунта, а не на общих основаниях, анонимно). Это не грозит, если френдлента никому, кроме хозяина не видна. Но в моем случае так сделать нельзя, я хотел бы демонстрировать свой блогодвижок на всю мощность. Поэтому во френдленте вы не найдете закрытых записей, скрипт собирает «урожай» RSS-лент анонимно. Но - повторюсь - возможно и чтение ленты «от своего имени», под своим аккаунтом.
Такая вот хитрючая штука вышла. Пойду еще с ней поиграюсь.