Как использовать YQL для объединения двух RSS-лент, отсортированных по pubDate? - PullRequest
4 голосов
/ 27 апреля 2010

Видя, что YQL рекламируется как хороший способ сделать что-то, мне стало интересно, как использовать YQL для извлечения и объединения двух разных каналов в один (отсортированный по pubDate).

Получить три канала довольно просто, но получается, что каналы просто объединяются и не объединяются.

Вот пример кода.

select channel.title,channel.link,channel.item.title,channel.item.link
    from xml where url in(
      'http://code.flickr.com/blog/feed/rss/',
      'http://feeds.delicious.com/v2/rss/codepo8?count=15',
      'http://www.stevesouders.com/blog/feed/rss',
      'http://www.yqlblog.net/blog/feed/',
      'http://www.quirksmode.org/blog/index.xml'
    )

Ответы [ 3 ]

3 голосов
/ 26 мая 2010

Спасибо за эту информацию. Работает и при доступе к объекту rss:

select title,link,pubDate from rss where url in (
    'http://feeds.delicious.com/v2/rss/hasematzel?count=3',
    'http://oliverschwarz.tumblr.com/rss',
    'http://twitter.com/statuses/user_timeline/818226.rss',
    'http://hasematzel.de/blog/feed/',
    'http://piepmatzel.de/feed/'
) | sort(field="pubDate", descending="true")

Это очень простой способ создать отдел новостей или жизнепоток. Не забудьте принудительно кешировать возврат YQL:)

2 голосов
/ 27 апреля 2010

Это должно сработать

select channel.item.title,channel.item.link, channel.item.pubDate
    from xml where url in(
      'http://code.flickr.com/blog/feed/rss/',
      'http://feeds.delicious.com/v2/rss/codepo8?count=15',
      'http://www.stevesouders.com/blog/feed/rss',
      'http://www.yqlblog.net/blog/feed/',
      'http://www.quirksmode.org/blog/index.xml'
    )
  | unique(field="channel.item.link")
  | sort(field="channel.item.pubDate", descending="true")

используйте функции пост-запроса уникальные для фильтрации дубликатов и сортировку для изменения порядка результатов. Здесь ссылка на документацию этих функций http://developer.yahoo.com/yql/guide/sorting.html

1 голос
/ 27 мая 2010

Что касается вопроса RSS - YQL всегда возвращает XML - если вы хотите превратить его в канал RSS, вы также можете использовать Yahoo Pipes и модуль YQL, чтобы получить его как RSS.

...