rfeedfinder 0.9.2 → 0.9.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|