rfeedreader 0.9.11 → 0.9.13
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +9 -0
- data/lib/rfeedreader.rb +30 -9
- data/lib/rfeedreader/version.rb +1 -1
- data/test/test_rfeedreader.rb +17 -1
- data/website/index.html +1 -1
- metadata +2 -2
data/History.txt
CHANGED
data/lib/rfeedreader.rb
CHANGED
@@ -131,6 +131,8 @@ module Rfeedreader
|
|
131
131
|
@entries<<Entry_Jumpcut.new(item, self.charset)
|
132
132
|
when "source_picasa"
|
133
133
|
@entries<<Entry_Picasa.new(item, self.charset)
|
134
|
+
when "source_youtube"
|
135
|
+
@entries<<Entry_Youtube.new(item, self.charset)
|
134
136
|
else
|
135
137
|
@entries<<Entry.new(item, self.charset)
|
136
138
|
end
|
@@ -182,6 +184,7 @@ module Rfeedreader
|
|
182
184
|
return "source_google_video" if @feed_url =~ /http:\/\/video\.google\.com/
|
183
185
|
return "source_jumpcut" if @feed_url =~ /http:\/\/rss\.jumpcut\.com/
|
184
186
|
return "source_picasa" if @feed_url =~ /http:\/\/picasaweb\.google\.com/
|
187
|
+
return "source_youtube" if @feed_url =~ /http:\/\/www\.youtube\.com\/rss\//
|
185
188
|
return ""
|
186
189
|
end
|
187
190
|
end
|
@@ -217,7 +220,6 @@ module Rfeedreader
|
|
217
220
|
@description = (@hpricot_item/"description|summary|[@type='text']").text if @description.empty?
|
218
221
|
|
219
222
|
unless @description.empty?
|
220
|
-
|
221
223
|
@description = TextyHelper.clean(@description, 200)
|
222
224
|
|
223
225
|
@description = HTMLEntities.encode_entities(@description, :named, :decimal)
|
@@ -275,14 +277,24 @@ module Rfeedreader
|
|
275
277
|
end
|
276
278
|
end
|
277
279
|
|
280
|
+
class Entry_Youtube<Entry
|
281
|
+
def read_description
|
282
|
+
image = @hpricot_item.search("media:thumbnail").to_s.scan(/url=['"]?([^'"]*)['" ]/).to_s
|
283
|
+
@description = "<a href='#{@link}' class='image_link'><img src='#{image}' class='youtube_image'/></a>"
|
284
|
+
end
|
285
|
+
end
|
286
|
+
|
278
287
|
def read(uri, nb_posts=10, parse_entries=true)
|
279
|
-
|
280
|
-
link
|
281
|
-
|
282
|
-
|
283
|
-
|
288
|
+
link = Rfeedfinder::feed(HTMLEntities.decode_entities(uri))
|
289
|
+
read_feed(link, nb_posts, parse_entries)
|
290
|
+
end
|
291
|
+
|
292
|
+
def read_feed(uri, nb_posts=10, parse_entries=true)
|
293
|
+
unless uri.nil?
|
294
|
+
doc = open_doc(uri)
|
295
|
+
|
284
296
|
unless doc.nil?
|
285
|
-
feed = Feed.new(
|
297
|
+
feed = Feed.new(uri, doc)
|
286
298
|
feed.parse_entries(doc, nb_posts) if parse_entries == true
|
287
299
|
end
|
288
300
|
end
|
@@ -293,14 +305,23 @@ module Rfeedreader
|
|
293
305
|
return read(uri, nb_post=1)
|
294
306
|
end
|
295
307
|
|
308
|
+
def read_feed_first(uri)
|
309
|
+
return read(uri, nb_post=1, is_feed=true)
|
310
|
+
end
|
311
|
+
|
296
312
|
def read_header(uri)
|
297
313
|
return read(uri, parse_entries=false)
|
298
314
|
end
|
315
|
+
|
316
|
+
def read_feed_header(uri)
|
317
|
+
return read_feed(uri, parse_entries=false)
|
318
|
+
end
|
299
319
|
|
300
320
|
def open_doc(link)
|
301
321
|
data = nil
|
322
|
+
delay = 30
|
302
323
|
begin
|
303
|
-
Timeout::timeout(
|
324
|
+
Timeout::timeout(delay) {
|
304
325
|
data = Hpricot(open(link,
|
305
326
|
"User-Agent" => "Ruby/#{RUBY_VERSION} - Rfeedfinder",
|
306
327
|
"From" => "rfeedfinder@googlegroups.com",
|
@@ -308,7 +329,7 @@ module Rfeedreader
|
|
308
329
|
}
|
309
330
|
rescue OpenURI::HTTPError
|
310
331
|
begin
|
311
|
-
Timeout::timeout(
|
332
|
+
Timeout::timeout(delay) {
|
312
333
|
html = Net::HTTP.get(URI.parse(link))
|
313
334
|
data = Hpricot(html, :xml => true) if html.to_s !~ /404 Not Found/
|
314
335
|
}
|
data/lib/rfeedreader/version.rb
CHANGED
data/test/test_rfeedreader.rb
CHANGED
@@ -56,7 +56,6 @@ class TestRfeedreader < Test::Unit::TestCase
|
|
56
56
|
read_first "http://rss.slashdot.org/Slashdot/slashdot"
|
57
57
|
read_first "http://planeta.lamatriz.org/feed/"
|
58
58
|
read_first "http://edubloggers.blogspot.com/"
|
59
|
-
read_first "http://www.deugarte.com/feed/"
|
60
59
|
read_first "http://www.twitter.com/alx/"
|
61
60
|
read_first "http://alemama.blogspot.com"
|
62
61
|
read_first "http://seedmagazine.com/news/atom-focus.xml"
|
@@ -129,4 +128,21 @@ class TestRfeedreader < Test::Unit::TestCase
|
|
129
128
|
def test_read_picasa
|
130
129
|
read_first "http://picasaweb.google.com/data/feed/base/user/christine.klassen?category=album&alt=rss&hl=en_GB&access=public"
|
131
130
|
end
|
131
|
+
|
132
|
+
def test_read_youtube
|
133
|
+
read_first "http://www.youtube.com/rss/user/bideoakinfo/videos.rss"
|
134
|
+
end
|
135
|
+
|
136
|
+
def test_read_deugarte
|
137
|
+
read_first "http://www.deugarte.com/feed"
|
138
|
+
end
|
139
|
+
|
140
|
+
def test_read_feed
|
141
|
+
feed_url = "http://www.ambidextrousmag.org/blog/?feed=rss2"
|
142
|
+
puts "Read first from #{feed_url}"
|
143
|
+
feed = Rfeedreader.read_feed_first feed_url
|
144
|
+
assert_not_nil feed
|
145
|
+
assert_equal 1, feed.entries.size
|
146
|
+
feed.display_entries
|
147
|
+
end
|
132
148
|
end
|
data/website/index.html
CHANGED
@@ -33,7 +33,7 @@
|
|
33
33
|
<h1>rfeedreader</h1>
|
34
34
|
<div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/rfeedreader"; return false'>
|
35
35
|
<p>Get Version</p>
|
36
|
-
<a href="http://rubyforge.org/projects/rfeedreader" class="numbers">0.9.
|
36
|
+
<a href="http://rubyforge.org/projects/rfeedreader" class="numbers">0.9.13</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: rfeedreader
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.9.
|
7
|
-
date: 2007-09-
|
6
|
+
version: 0.9.13
|
7
|
+
date: 2007-09-14 00:00:00 +02:00
|
8
8
|
summary: Feed parser to read feed and return first posts of this feed. Special parsing from sources like Flickr, Jumcut, Google video, ...
|
9
9
|
require_paths:
|
10
10
|
- lib
|