суббота, 5 апреля 2008 г.

RSS для LinuxForum.ru

Я очень дорожу своим временем и поэтому предпочитаю получать всю необходимую мне информацию из интернета только в формате RSS. Это как минимум позволяет мне узнавать обо всем новом, вообще не заходя на сайты, а также при помощи Google Reader читать новости не только дома, когда можно заниматься более продуктивными делами, но и в транспорте с мобильного телефона или КПК.

Вот только даже сегодня, в эпоху Web 2.0 далеко не все сайты предоставляют качественный экспорт информации в RSS. Так, к примеру, на LinuxForum.ru мне сильно не хватает RSS ленты, которая выдавала бы мне все последние темы, появляющиеся в интересующем меня форуме. Ради справедливости можно сказать, что движок форума позволяет подписаться на новые темы по e-mail, но мне электронную почту для чтения подобной информации использовать очень неудобно. Я уже спрашивал на форуме, можно ли забирать эту информацию по RSS, на что получил отрицательный ответ.

В итоге пришлось решать эту проблему своими силами. С помощью Yahoo Pipes я создал pipe, который выдает все последние темы указанного в параметрах pipe'а форума. По правде сказать, раньше я с Yahoo Pipes никогда не работал и его возможности меня сильно удивили - это действительно очень мощный инструмент, который замечательно справляется со своей задачей. Так что всячески вам его рекомендую.

Для того, чтобы воспользоваться моим pipe'ом, вам необходимо сходить по адресу http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics и ввести в текстовом поле web-формы идентификатор интересующего вас форума. Например, для форума Новости и их обсуждение (http://linuxforum.ru/index.php?showforum=2) идентификатор будет равен 2.

После введения в текстовое поле идентификатора форума и нажатия на кнопку "Run Pipe" вы получите список всех новых тем этого форума, на который сможете подписаться по RSS.

Для того, чтобы сэкономить вам время в добавлении лент для различных форумов, я создал OPML файл со всеми лентами, представленный ниже, который вы сможете импортировать в свой любимый RSS ридер (в том числе и в Google Reader).

Pipe состоит из двух pipe'ов, "исходные тексты" которых можно посмотреть здесь и здесь, кликнув по кнопке View Source.

Ну вот собственно и все. Надеюсь мой pipe пригодится не только мне. Благодарности можно писать в комментариях. =)

Ссылки на RSS каналы:
Новости и их обсуждение
Железо для Linux
Важные и частые темы
Проекты Нашего Форума
Книги и Документация
Программирование
Программирование для начинающих
Администрирование
Программы
WINE
Бизнес и бухгалтерия под Линукс
Игры
Обсуждение GUI, DE/WM
Мультимедиа
Вопрос новичка
Дорога, открытая всем
Тематический флейм
Linux и образование
Момент истины
Red Hat Linux, Fedora Core, ASP Linux
ALTLinux
Mandriva Linux, Mandrake Linux
Debian GNU/Linux
Ubuntu
Gentoo Linux
Arch Linux
Slackware Linux
Novell SUSE Linux
Free и другие BSD
Другие Linux-ы и Unix-ы
Live-CD
Поддержка форума
Интернет-Магазин LinuxCenter
LinuxFormat
Разговоры обо всём
Игровая площадка
Юмор
Жизнь в картинках
Слёты и встречи LinuxForum'а

OPML файл для импорта в RSS reader:
<?xml version="1.0" encoding="UTF-8"?>
<opml version="1.0">
<head>
<title>LinuxForum.ru last topics</title>
</head>
<body>
<outline title="LinuxForum.ru last topics">
<outline
title="Новости и их обсуждение"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=2"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Железо для Linux"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=33"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Важные и частые темы"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=61"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Проекты Нашего Форума"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=3"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Книги и Документация"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=49"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Программирование"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=4"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Программирование для начинающих"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=67"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Администрирование"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=11"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Программы"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=12"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="WINE"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=71"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Бизнес и бухгалтерия под Линукс"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=58"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Игры"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=14"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Обсуждение GUI, DE/WM"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=54"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Мультимедиа"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=15"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Вопрос новичка"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=17"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Дорога, открытая всем"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=37"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Тематический флейм"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=39"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Linux и образование"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=68"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Момент истины"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=72"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Red Hat Linux, Fedora Core, ASP Linux"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=9"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="ALTLinux"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=32"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Mandriva Linux, Mandrake Linux"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=18"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Debian GNU/Linux"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=13"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Ubuntu"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=69"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Gentoo Linux"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=29"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Arch Linux"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=64"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Slackware Linux"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=19"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Novell SUSE Linux"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=31"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Free и другие BSD"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=20"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Другие Linux-ы и Unix-ы"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=21"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Live-CD"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=35"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Поддержка форума"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=8"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Интернет-Магазин LinuxCenter"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=51"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="LinuxFormat"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=57"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Разговоры обо всём"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=5"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Игровая площадка"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=47"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Юмор"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=6"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Жизнь в картинках"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=27"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
<outline
title="Слёты и встречи LinuxForum'а"
type="rss"
xmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics?_render=rss&amp;forum_id=34"
htmlUrl="http://pipes.yahoo.com/konishchevdmitry/linuxforum_last_topics"
/>
</outline>
</body>
</opml>

10 комментариев:

Dan Rastor комментирует...

Работа отличная. Но чем эти RSS не устроили?
linuxforum.ru/index.php?act=rssout&id=1

linuxforum.ru/index.php?act=rssout&id=6

linuxforum.ru/index.php?act=rssout&id=7

linuxforum.ru/index.php?act=rssout&id=8

Анонимный комментирует...

Отличная идея, спасибо! У меня есть пара сайтов, которые я тоже бы не отказался читать в фидере.

Dmitry Konishchev комментирует...

Dan Rastor, тем, что с помощью указанных вами RSS потоков можно получить только:
1) все сообщения со всего форума
2) сообщения из форумов "Gentoo", "Программирование", "Флейм", "Администрирование"
3) сообщения из форумов "Дорога, открытая всем", "Тематический и нетематический флейм"
4) сообщения из форумов "Wine", "Игры", "GUI", "Multimedia", "Программы"

Меня это не устраивает. Я хочу получать, к примеру, только последние темы (не сообщения!) из форумов "Программирование", "Ubuntu" и "Книги и Документация".

Dan Rastor комментирует...

Конищев Дмитрий я просто о том, что RSS на форуме есть. А без труб сейчас никуда. Еще раз - отличная работа!

drakulavich комментирует...

Да, Yahoo! Pipes занятный инструментик. Сам недавно стал разбираться с ним. Прикрутил на его основе топ 5 популярных записей к блогу и сделал из нескольких «железных» сайтов один фид с интересными мне новостями (простой фильтр, единственное, иногда приходится перекодировать с виндовой кодировки в UTF).

Dmitry Konishchev комментирует...

Жаль только, что у них есть довольно жесткое ограничение на размер страницы - если в теме много длинных постов, то Yahoo! Pipes просто не будет ее обрабатывать. Тут я решил эту проблему включением древовидного режима отображения, отрезав тем самым все сообщения кроме первого, но на других сайтах это может быть серьезной проблемой.

DYm00n комментирует...

А как вообще там фид создавать? Я хочу для некоторых разделов torrents.ru сделать фид, только чтото не пойму как их вообще делать

Dmitry Konishchev комментирует...

DYm00n, для torrents.ru при помощи Yahoo! Pipes вы не сможете сделать RSS канал, т. к. для просмотра большинства разделов там требуется авторизация (если вам нужны только те из них, для которых авторизация не требуется, то сможете).

Но в любом случае в этом нет необходимости, т. к. многоуважаемый товарищ Xpoft сделал это уже за нас. Здесь вы можете сгенерировать RSS ленту для любого раздела torrents.ru. Обсуждение данного сервиса находится здесь.

DYm00n комментирует...

[b]Конищев Дмитрий[/b]
огромное тебе спасибо, очень давно искал.
А вообще, вкратце не расскажешь, как с http://pipes.yahoo.com работать?

Dmitry Konishchev комментирует...

DYm00n, ммм... А что именно не понятно? Yahoo! Pipes - это "визуальное программирование". "Программирование" осуществляется с помощью различных инструментов, каждый из которых может выполнять строго определенную задачу: получать текст интернет страницы, обрабатывать строки регулярными выражениями и т. п.

Основная задача, которая стоит перед вами - получить HTML текст какой-либо страницы и вычленить оттуда необходимые элементы - заголовки новостей и само содержимое новостей (для этого необходимы минимальные знания языка HTML).

Каждый инструмент Yahoo! Pipes что-то получает на вход и что-то выдает на выходе. Т. е. в итоге все программирование сводится к соединению выходов одних инструментов со входами других так, чтобы получился некий конвейер, в результате работы которого исходный HTML код интересующей вас страницы превращается в RSS ленту.

Вообще если набрать в поисковике что-нибудь вроде "yahoo pipes tutorial", то можно найти много руководств по созданию RSS с его помощью. Но лучше всего, по-моему, смотреть на "исходные тексты" уже готовых "труб", тем более что вы всегда можете сделать себе копию и экспериментировать с ней сколько угодно.

Прошу также обратить внимание на встроенный в Yahoo! Pipes дебаггер, который находится в самом низу вашего "рабочего стола Yahoo! Pipes". Если вы кликните по какому-либо инструменту в "исходном коде" вашего pipe'а, то дебаггер отобразит то, что выводит данный инструмент, обрабатывая данные, которые были поданы ему на вход. Таким образом можно полностью проследить, как работает интересующий вас pipe и понять, как сделать аналогичный самому.

Для начальной тренировки также могу посоветовать вам RssProxy.ru - "облегченную" версию Yahoo! Pipes. С ней работать предельно просто и, возможно, создав с ее помощью какую-нибудь RSS ленту, вы лучше поймете, как работает Yahoo! Pipes.

Удачи. :)