なので自分で作ることにした。
参考文献:技術/RubyでRSS
RSS ParserがRubyに標準で付いてるんよな。テレビ番組etc.のRSSを作った後で知ったんよ。・・・楽勝やん。時系列で並べ替えるのも一発。最初からこれを使っていれば・・・。
できあがったものがこちら:http://worris.sakura.ne.jp/rssmixer.cgi
#!/usr/local/bin/ruby
require 'rss/1.0'
require 'open-uri'
require 'rss/dublincore'
require 'rss/maker'
class RssSite
attr_accessor:url
attr_accessor:content
attr_accessor:rss
def initialize(url)
@url = url
end
def get()
@content = ""
open(url) {|u|
@content = u.read
}
parse()
end
def parse()
begin
@rss = RSS::Parser::parse(content)
rescue RSS::InvalidRSSError
@rss = RSS::Parser::parse(content,false)
end
end
def save(file)
File.open(file,'w') {|f|
f.print(@content)
}
end
end
rss=Array.new
orig_rss=["http://f.hatena.ne.jp/worris/rss","http://worris.blog61.fc2.com/?xml"]
orig_rss.each do |uri|
r=RssSite.new(uri)
r.get.items.each do |rr|
rss << rr
end
end
new_rss = RSS::Maker.make("1.0") do |maker|
maker.channel.about = "http://worris.sakura.ne.jp/index.html"
maker.channel.title = "worris'"
maker.channel.description = "worris' RSS"
maker.channel.link = "http://worris.sakura.ne.jp/index.html"
maker.items.do_sort = true
rss.each do |r|
item = maker.items.new_item
item.title = r.title
item.link = r.link
item.description = r.description
item.content_encoded = r.content_encoded
item.dc_date = r.dc_date
end
end
print "Content-type: application/xml\n"
print "Pragma: no-cache\n"
print "Cache-Control: no-cache\n"
print "Expires: Thu, 01 Dec 1994 16:00:00 GMT\n\n"
puts new_rss
トラックバックURL↓
http://worris.blog61.fc2.com/tb.php/16-528ce5ca
複数のRSSをまとめるCGIスクリプト
本サイトはいくつかのブログから構成されているため、複数のブログのRSSをまとめて...
2006.12.30 10:06 | アキラ's ITメモ
