forked from feedjira/feedjira
-
Notifications
You must be signed in to change notification settings - Fork 0
/
get_sample_feeds.rb
34 lines (29 loc) · 1.07 KB
/
get_sample_feeds.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# just a quick script to try to pull down some of the feeds from my subscriptions to look at and test against
require 'rubygems'
require 'ostruct'
require 'curl-multi'
require 'nokogiri'
subscriptions_xml = File.read("google-reader-subscriptions.xml")
elements = Nokogiri.XML(subscriptions_xml).search("outline[@xmlUrl]")
feeds = elements.map do |opml_entry|
OpenStruct.new(
:feed_url => opml_entry.attributes["xmlUrl"].to_s,
:title => opml_entry.attributes["title"].to_s,
:url => opml_entry.attributes["htmlUrl"].to_s)
end
urls = []
multi = Curl::Multi.new
feeds.each do |feed|
on_failure = lambda do |ex|
puts "Failed to retrieve #{feed.title} - #{feed.feed_url}"
puts ex
puts "********************************************************************************"
end
on_success = lambda do |body|
puts "got #{feed.title} - #{feed.feed_url}"
urls << feed.feed_url
end
multi.get(feed.feed_url, on_success, on_failure)
end
multi.select([], []) while multi.size > 0
File.open("successful_feed_urls.txt", "w") {|f| f.write(urls.join("\n"))}