diff options
author | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-10-21 12:19:43 +0000 |
---|---|---|
committer | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-10-21 12:19:43 +0000 |
commit | 57a639494a2a002f496a945979e2bf499b0d9fdb (patch) | |
tree | 53fadfc1666459e1286735a37171539883d66d70 /sample/rss | |
parent | 754b1fac44487454cc25a14443615c0fba3da6ad (diff) |
* lib/rss.rb, lib/rss/, test/rss/, sample/rss/: merged from trunk.
- 0.1.6 -> 2.0.0.
- fixed image module URI. Thanks to Dmitry Borodaenko.
- supported Atom.
- supported ITunes module.
- supported Slash module.
* NEWS: added an entry for RSS Parser.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@13747 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'sample/rss')
-rwxr-xr-x | sample/rss/blend.rb | 6 | ||||
-rwxr-xr-x | sample/rss/convert.rb | 2 | ||||
-rwxr-xr-x[-rw-r--r--] | sample/rss/list_description.rb | 13 | ||||
-rwxr-xr-x | sample/rss/re_read.rb | 10 | ||||
-rwxr-xr-x[-rw-r--r--] | sample/rss/rss_recent.rb | 20 |
5 files changed, 35 insertions, 16 deletions
diff --git a/sample/rss/blend.rb b/sample/rss/blend.rb index 2fbd6efed6..351f6f373f 100755 --- a/sample/rss/blend.rb +++ b/sample/rss/blend.rb @@ -64,6 +64,12 @@ rss = RSS::Maker.make("1.0") do |maker| item.setup_maker(maker.items) end end + + maker.items.each do |item| + item.title ||= "UNKNOWN" + item.link ||= "UNKNOWN" + end + maker.items.do_sort = true maker.items.max_size = 15 end diff --git a/sample/rss/convert.rb b/sample/rss/convert.rb index 394b13e8eb..e6bff4c623 100755 --- a/sample/rss/convert.rb +++ b/sample/rss/convert.rb @@ -23,7 +23,7 @@ ARGV.each do |fname| when '-v' verbose = true next - when /^-t(0\.91|1\.0|2\.0)$/ + when /^-t(0\.91|1\.0|2\.0|atom)$/ to_version = $1 next end diff --git a/sample/rss/list_description.rb b/sample/rss/list_description.rb index bb1f9636e2..d4b98a9ac6 100644..100755 --- a/sample/rss/list_description.rb +++ b/sample/rss/list_description.rb @@ -56,9 +56,18 @@ ARGV.each do |fname| rescue RSS::UnknownConversionMethodError error($!) if verbose end - rss.channel.title ||= "Unknown" + + rss = rss.to_rss("1.0") do |maker| + maker.channel.about ||= maker.channel.link + maker.channel.description ||= "No description" + maker.items.each do |item| + item.title ||= "No title" + item.link ||= "UNKNOWN" + end + end + next if rss.nil? + rss.items.each do |item| - item.title ||= "Unknown" channels[rss.channel.title] ||= [] channels[rss.channel.title] << item if item.description end diff --git a/sample/rss/re_read.rb b/sample/rss/re_read.rb index c19a5099bb..ee54a18a88 100755 --- a/sample/rss/re_read.rb +++ b/sample/rss/re_read.rb @@ -29,16 +29,16 @@ ARGV.each do |fname| read = false begin rss = RSS::Parser.parse(source) - puts "Re-read valid RSS: #{fname}" + puts "Re-read valid feed: #{fname}" RSS::Parser.parse(rss.to_s) read = true rescue RSS::InvalidRSSError error($!) if verbose - ## do non validate parse for invalid RSS 1.0 + ## do non validate parse for invalid feed begin rss = RSS::Parser.parse(source, false) rescue RSS::Error - ## invalid RSS. + ## invalid feed error($!) if verbose end rescue RSS::Error @@ -46,9 +46,9 @@ ARGV.each do |fname| end if rss.nil? - puts "Invalid RSS: #{fname}" + puts "Invalid feed: #{fname}" elsif !read - puts "Re-read invalid RSS: #{fname}" + puts "Re-read invalid feed: #{fname}" begin RSS::Parser.parse(rss.to_s) rescue RSS::Error diff --git a/sample/rss/rss_recent.rb b/sample/rss/rss_recent.rb index 7821df5c7b..38b57c37fa 100644..100755 --- a/sample/rss/rss_recent.rb +++ b/sample/rss/rss_recent.rb @@ -55,16 +55,20 @@ ARGV.each do |fname| rescue RSS::UnknownConversionMethodError error($!) if verbose end - rss.items.each do |item| - if item.respond_to?(:pubDate) and item.pubDate - class << item - alias_method(:dc_date, :pubDate) - end - end - if item.respond_to?(:dc_date) and item.dc_date - items << [rss.channel, item] + + rss = rss.to_rss("1.0") do |maker| + maker.channel.about ||= maker.channel.link + maker.channel.description ||= "No description" + maker.items.each do |item| + item.title ||= "UNKNOWN" + item.link ||= "UNKNOWN" end end + next if rss.nil? + + rss.items.each do |item| + items << [rss.channel, item] if item.dc_date + end end end processing_time = Time.now - before_time |