LIRS を取得する PRagger プラグイン
を作ってみたけど,「LIRSってどんなんだっけ?」ってとこから始めたからどうもよくわからない。
こんなんでいいのかな。
LIRS と RSS の対応は表のようにしてみたけど,どうか。
| LIRS | RSS |
| 更新時刻 (Last-Modified GMT) | dc:date |
| 更新時刻を取得した時刻(GMT) | |
| サイトのGMTとの時差(秒) | |
| サイトのURL | link |
| サイトの容量 | |
| サイトのタイトル | title |
| サイトの管理者 | |
| 情報取得元サイトのURL | |
| 独自情報 |
require 'open-uri'
require 'rss/maker'
require 'zlib'
require 'kconv'
$KCODE = 'utf8'
def parse_lirs(record)
fields = record.chomp.split(",")
item = RSS::RDF::Item.new
item.title = fields[6] # Title
item.link = fields[5] # URL
item.date = Time.at(fields[1].to_i + fields[3].to_i) # Last-Modified (local time)
return item
end
def load_lirs(config, data)
f = open(config["url"])
lirs = Zlib::GzipReader.wrap(f) {|gz| gz.read }.toutf8
items = lirs.map {|record| parse_lirs(record) }
return items
rescue
puts "LoadError File = #{config["url"]}"
return []
end
