Хроники лаборатории
Френдлента, финиш разработки


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

Итак, что представляет из себя моя френдлента? С технической точки зрения - это сборщик RSS-записей из указанных источников. Своеобразный персональный кеш. Медленно, но верно скрипт обходит весь список источников, дергает оттуда записи и сохраняет их себе на память. Тут кроется первая изюминка: если запись между «обходами» изменялась, скрипт посчитает ее новой, и снова добавит в базу. Таким образом я стараюсь не упускать всякие «UPD»-дописки - вдруг чего интересное дописали?

С точки зрения пользователя это еще более забавная штуковина. Во-первых, лент сразу три. Первая - все кешированные записи сплошняком (я так и назвал вкладку - «Все подряд»). Вторая лента - своеобразная куча, куда «падают» свежие записи. Я могу прочитать запись и удалить ее из этой кучи (вот, кстати, где пригождается вышеописанная фишка: если я прочитал запись и выкинул ее из кучи, а потом вдруг пост обновится - скрипт посчитает его новым и снова закинет в кучу, и я прочитаю его исправленный вариант), а могу переместить в третью ленту - «Избранное». В избранные записи попадают те записи, которые, как я считаю, мне стоит держать под рукой. Что-то очень интересное. Из «Избранного» записи уже никуда не деваются, их можно только стереть. И, кстати, там записи лежат уже сортированные не по датам, а по источникам (авторам).

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

Четвертая изюминка кроется в том, что если нажать на значок автора в списке источников (на странице с френдлентой справа), выдадутся записи только этого конкретного автора.

Пятая изюминка - отдельный стиль оформления для постов каждого из источников. Я ограничился тем, что некоторым повесил тематические картинки, но вообще возможности шире.

Ну а теперь ложечка дегтя. Закрытые записи. Тут кроется несколько нюансов - поскольку в RSS-потоках подзамочные и общие записи никак не различаются, то есть риск выдать чей-то «подзамок», если забирать RSS авторизованно (от имени своего аккаунта, а не на общих основаниях, анонимно). Это не грозит, если френдлента никому, кроме хозяина не видна. Но в моем случае так сделать нельзя, я хотел бы демонстрировать свой блогодвижок на всю мощность. Поэтому во френдленте вы не найдете закрытых записей, скрипт собирает «урожай» RSS-лент анонимно. Но - повторюсь - возможно и чтение ленты «от своего имени», под своим аккаунтом.

Такая вот хитрючая штука вышла. Пойду еще с ней поиграюсь.


RSS HTML рубрики: сайтоводствоjuick twitter facebook вконтакте

Случайные записи впридачу:
Собакх-кх-кх... (жизненное)
«Возьми огонь» (жизненное)
«Сильный приезжает, становится слабым»... (с) (синематограф)

altesack (25 ноя 2009г, 09:26) [ссылка на комментарий]

Думаю ещё надо будет запретить роботу индексировать френдленту, иначе она станет раем для всякого сеошников и блогунёров. Я имею в виду не конкретно твой блог, а продукт в целом.
V.exeR (25 ноя 2009г, 10:30) [ссылка на комментарий]

u724 altesack: в robots.txt прописал disallow (ведь контент не уникальный), а вот в конечном продукте никто не запретит любому это отключить, увы.
altesack (25 ноя 2009г, 11:37) [ссылка на комментарий]

Ну это каждый сам себе ЗБ
Y (25 ноя 2009г, 14:25) [ссылка на комментарий]

При попытке открыть вторую страницу выкидывает на приветственную страницу сайта (аналогичную http://vexer.ru).
V.exeR (25 ноя 2009г, 14:27) [ссылка на комментарий]

u747 Y: вторую - это какую? «Недосмотренное»?
Y (25 ноя 2009г, 15:32) [ссылка на комментарий]

u71 V.exeR, вторую, это с цифрой «2». По ссылке, http://blog.vexer.ru/friends/page2 .
То же самое открывается и при попытке читать записи какого-либо конкретного пользователя, например, по ссылке http://blog.vexer.ru/friends/1a4f892307d137d4aaf9ee531a39edb8
V.exeR (25 ноя 2009г, 16:17) [ссылка на комментарий]

u747 Y: спасибо, исправил. Это я с .htaccess перемудрил :D
Y (25 ноя 2009г, 16:59) [ссылка на комментарий]

u71 V.exeR, пожалуйста :)
Теперь всё прекрасно! =)
Хочу как-нибудь всё таки как следует засесть за php, MySQL и написать что-то своё не меньшего уровня)
Откуда вы?   

Войти через loginza
Оставлять комментарии могут только
имеющие свой ЖЖ-, ЛИру-аккаунт или
еще какой openID (как так?).
Подписаться


Рубрики:

жизненное
аудио-я
видеомонтаж
фотоохота
ремонт
стихи
рассказы
синематограф
библиотека
фонотека
точка зрения
FAQ
приемчики
придумалось
ожидания-прогнозы
допридумано
рингтоны
это я так шучу
обои
микрозарисовки
опасный Интернет
я в печати
поездки-тусовки
смехоспам
мой код
футболки
игродром
подводная жизнь
сайтоводство
программы
персоны
LI.ru
аватарки
курсоры


Разное:

Полка с фильмами
Книжная полка
Полка с играми
Избранное


Календарь записей

2024 (1)
март (1)
2021 (1)
2020 (7)
2019 (3)
2018 (1)
2017 (10)
2016 (12)
2015 (3)
2014 (12)
2013 (10)
2012 (17)
2011 (84)
2010 (172)
2009 (228)
2008 (263)
2007 (154)
2006 (4)
2005 (1)
2004 (1)
2002 (1)
2001 (9)
2000 (9)
1999 (1)
© сайт разработан и поддерживается мной.