Patch #231 » RSSParser.rb
1 |
class RSSParser |
---|---|
2 |
require 'rexml/document' |
3 |
def self.run(url) |
4 |
xml = REXML::Document.new Net::HTTP.get(URI.parse(url)) |
5 |
data = { |
6 |
:title => xml.root.elements['channel/title'].text, |
7 |
:home_url => xml.root.elements['channel/link'].text, |
8 |
:rss_url => url, |
9 |
:items => [] |
10 |
}
|
11 |
xml.elements.each '//item' do |item| |
12 |
new_items = {} and item.elements.each do |e| |
13 |
new_items[e.name.gsub(/^dc:(\w)/,"\1").to_sym] = e.text |
14 |
end
|
15 |
data[:items] << new_items |
16 |
end
|
17 |
data
|
18 |
end
|
19 |
end
|
20 |
|