bradly / pluto
- Source
- Commits
- Network (2)
- Issues (0)
- Downloads (0)
- Wiki (1)
- Graphs
-
Tree:
524edef
pluto / aggregator.rb
| 939f4f78 » | bradly | 2008-10-02 | 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 | 6 | class Aggregator | |
| 939f4f78 » | bradly | 2008-10-02 | 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 | 24 | # sliently recue from any tmieouts or 404 when hitting the feeds | |
| 939f4f78 » | bradly | 2008-10-02 | 25 | end | |
| 26 | |||||
| 27 | end | ||||
| 28 | @entries.sort! { |a, b| b.date_published <=> a.date_published } | ||||
| 29 | end | ||||
| 30 | end | ||||
