rfeedfinder 0.9.2 → 0.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +4 -0
- data/lib/rfeedfinder.rb +23 -21
- data/lib/rfeedfinder/version.rb +1 -1
- data/test/test_rfeedfinder.rb +5 -5
- data/website/index.html +1 -1
- metadata +2 -2
data/History.txt
CHANGED
data/lib/rfeedfinder.rb
CHANGED
@@ -92,7 +92,7 @@ module Rfeedfinder
|
|
92
92
|
|
93
93
|
def isFeedData?(data)
|
94
94
|
# if no html tag and rss, rdf or feed tag, it's a feed
|
95
|
-
return ((data
|
95
|
+
return ((data/"html|HTML").empty? and (!(data/:rss).nil? or !(data/:rdf).nil? or !(data/:feed).nil?))
|
96
96
|
end
|
97
97
|
|
98
98
|
def isFeed?(uri)
|
@@ -104,16 +104,9 @@ module Rfeedfinder
|
|
104
104
|
# URI error
|
105
105
|
return false
|
106
106
|
end
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
html = Net::HTTP.get(URI.parse(uri))
|
111
|
-
data = Hpricot(html, :xml => true)
|
112
|
-
rescue Timeout::Error
|
113
|
-
return false
|
114
|
-
rescue
|
115
|
-
return false
|
116
|
-
end
|
107
|
+
|
108
|
+
data = open_doc(uri)
|
109
|
+
return false if data.nil?
|
117
110
|
|
118
111
|
return isFeedData?(data)
|
119
112
|
end
|
@@ -133,21 +126,30 @@ module Rfeedfinder
|
|
133
126
|
return feeds
|
134
127
|
end
|
135
128
|
|
136
|
-
def
|
137
|
-
_recurs = [uri] if _recurs.nil?
|
138
|
-
fulluri = makeFullURI(uri)
|
139
|
-
|
129
|
+
def open_doc(link)
|
140
130
|
begin
|
141
|
-
data = Hpricot(open(
|
131
|
+
data = Hpricot(open(link,
|
132
|
+
"User-Agent" => "Ruby/#{RUBY_VERSION} - Rfeedfinder",
|
133
|
+
"From" => "rfeedfinder@googlegroups.com",
|
134
|
+
"Referer" => "http://rfeedfinder.rubyforge.org/"), :xml => true)
|
142
135
|
rescue Timeout::Error
|
143
|
-
return
|
136
|
+
return nil
|
144
137
|
rescue OpenURI::HTTPError
|
145
|
-
html = Net::HTTP.get(URI.parse(
|
138
|
+
html = Net::HTTP.get(URI.parse(link))
|
146
139
|
data = Hpricot(html, :xml => true)
|
147
140
|
rescue => err
|
148
|
-
puts "Error while opening #{
|
149
|
-
return
|
141
|
+
puts "Error while opening #{link} with Hpricot: #{err.class} " << $!
|
142
|
+
return nil
|
150
143
|
end
|
144
|
+
return data
|
145
|
+
end
|
146
|
+
|
147
|
+
def feeds(uri, all=false, querySyndic8=false, _recurs=nil)
|
148
|
+
_recurs = [uri] if _recurs.nil?
|
149
|
+
fulluri = makeFullURI(uri)
|
150
|
+
|
151
|
+
data = open_doc(fulluri)
|
152
|
+
return [] if data.nil?
|
151
153
|
|
152
154
|
# is this already a feed?
|
153
155
|
if isFeedData?(data)
|
@@ -212,7 +214,7 @@ module Rfeedfinder
|
|
212
214
|
outfeeds << selected_feeds unless selected_feeds.empty?
|
213
215
|
# outfeeds.each{|link| puts "4 #{link}"}
|
214
216
|
end
|
215
|
-
|
217
|
+
|
216
218
|
if outfeeds.empty?
|
217
219
|
# no A tags, guessing
|
218
220
|
# filenames used by popular software:
|
data/lib/rfeedfinder/version.rb
CHANGED
data/test/test_rfeedfinder.rb
CHANGED
@@ -94,7 +94,7 @@ class TestRfeedfinder < Test::Unit::TestCase
|
|
94
94
|
|
95
95
|
def test_fotolog
|
96
96
|
feed_finder "http://www.fotolog.com/darth_fonsu/"
|
97
|
-
feed_finder "http://
|
97
|
+
feed_finder "http://www0.fotolog.com/darth_fonsu/feed/main/rss20"
|
98
98
|
feed_finder "http://www1.fotolog.com/mad_lux", "http://www0.fotolog.com/mad_lux/feed/main/rss20"
|
99
99
|
feed_finder "http://www1.fotolog.com/kel_06/"
|
100
100
|
end
|
@@ -107,12 +107,12 @@ class TestRfeedfinder < Test::Unit::TestCase
|
|
107
107
|
feed_finder "http://voxd.blogsome.com/"
|
108
108
|
end
|
109
109
|
|
110
|
-
def test_bloger_hr
|
111
|
-
feed_finder "http://andreja666.bloger.hr/"
|
112
|
-
end
|
113
|
-
|
114
110
|
def test_not_fulluri_link
|
115
111
|
# Meta link is only giving /feed/atom.xml
|
116
112
|
feed_finder "http://blog.zvents.com/", "http://blog.zvents.com/feed/atom.xml"
|
117
113
|
end
|
114
|
+
|
115
|
+
def test_412_error
|
116
|
+
feed_finder "http://www.arteleku.net/4.1/blog/laburrak/?feed=rss2", "http://www.arteleku.net/4.1/blog/laburrak/?feed=rss2"
|
117
|
+
end
|
118
118
|
end
|
data/website/index.html
CHANGED
@@ -33,7 +33,7 @@
|
|
33
33
|
<h1>rfeedfinder</h1>
|
34
34
|
<div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/rfeedfinder"; return false'>
|
35
35
|
<p>Get Version</p>
|
36
|
-
<a href="http://rubyforge.org/projects/rfeedfinder" class="numbers">0.9.
|
36
|
+
<a href="http://rubyforge.org/projects/rfeedfinder" class="numbers">0.9.3</a>
|
37
37
|
</div>
|
38
38
|
<h2>What</h2>
|
39
39
|
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4
|
|
3
3
|
specification_version: 1
|
4
4
|
name: rfeedfinder
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.9.
|
7
|
-
date: 2007-
|
6
|
+
version: 0.9.3
|
7
|
+
date: 2007-09-01 00:00:00 +02:00
|
8
8
|
summary: rFeedFinder uses RSS autodiscovery, Atom autodiscovery, spidering, URL correction, and Web service queries -- whatever it takes -- to find the feed.
|
9
9
|
require_paths:
|
10
10
|
- lib
|