hatenaのエクスポート形式をrssに

変換するスクリプトrubyで書いてみた。移行したいというよりもバックアップ用。ついでにどのサービスもインポート、エクスポート形式としてrssを採用すればいいのに。いつのまにかWordpressrssからのインポート機能がついていたのだった。

しかし、残念ながらはてなのエクスポートのxmlはHTMLを含んでいないので、自力でHTML変換しなければいけない。それと、時刻情報がないので、セクションをエントリー扱いにはできない。これはべつにかまわないっぽいけどもっとも、がんばれば、http://dac.lolipop.jp/diary/200307.html#d20030728 を多少改造して一か月単位で作るという手もある。いったんxmlにしてしまえばなんとかなる。けどタイムアウトになりそうなのでローカルで。rubyでパース部分を移植すればいいんだろうけど、面倒で。

http://www.log2mt.com/
こっちのが簡単かも。中間形式としてのmt形式ってけっこう通用してるし。

RSS Parserのインストールが必要。

require "rexml/document"
file = File.new( "export.xml" )
doc = REXML::Document.new file
ary = doc.elements.to_a("/diary/day")

require "rss/maker"

rss = RSS::Maker.make("2.0") do |maker|
maker.channel.title ="hellotitle"
maker.channel.link ="http://hellolink"
maker.channel.description ="hello this is test"
i=0
item = Array.new
temp = Array.new
while i < ary.length
item[i] = maker.items.new_item
item[i].title = ary[i].attributes["title"]
item[i].description = ary[i].elements["body"].text
temp = ary[i].attributes["date"].split("-")
item[i].date = Time.local(*temp)
i = i + 1
end
end

print rss