bradly / pluto

A planet style feed aggregator written in Ruby

This URL has Read+Write access

pluto / aggregator.rb
939f4f78 » bradly 2008-10-02 initial commit 1 require 'rubygems'
2 require 'feed-normalizer'
3
4 class FeedNormalizer::Entry; attr_accessor :feed_title, :feed_url; end
5
761d2d22 » bradly 2008-10-03 cleaned up code a bit. Now ... 6 class Aggregator
939f4f78 » bradly 2008-10-02 initial commit 7 attr_accessor :feed_urls, :entries
8
9 def initialize( urls = [] )
10 self.feed_urls = urls
11 @entries = []
12 collect_entries
13 end
14
15 def collect_entries
16 feed_urls.each do |feed_url|
17 begin
18 rss = FeedNormalizer::FeedNormalizer.parse open(feed_url)
19 if not rss.entries.nil?
20 rss.entries.each { |e| e.feed_title=rss.title; feed_url=rss.urls.first; }
21 @entries.concat rss.entries
22 end
23 rescue
761d2d22 » bradly 2008-10-03 cleaned up code a bit. Now ... 24 # sliently recue from any tmieouts or 404 when hitting the feeds
939f4f78 » bradly 2008-10-02 initial commit 25 end
26
27 end
28 @entries.sort! { |a, b| b.date_published <=> a.date_published }
29 end
30 end