del.icio.us network -> opml

network に登録しているものを個別に livedoor Reader で購読してみる。*1


まず、network の json から opml を生成。

netwrok2opml.rb

#!/usr/bin/ruby

require 'json'
require 'open-uri'

username = ARGV.shift
s = ''
open("http://del.icio.us/feeds/json/network/#{username}") { |f|
    s = f.read
}
json = JSON.parse s

print <<-EOS
<?xml version="1.0" encoding="utf-8"?>
<opml version="1.1">
<head>
    <title>del.icio.us network</title>
</head>
<body>
EOS

json.each { |u|
    print %Q{    <outline title="del.icio.us / #{u}" text="del.icio.us / #{u}" htmlURL="http://del.icio.us/#{u}" type="rss" xmlUrl="http://del.icio.us/rss/#{u}" />\n}
}
print "</body>\n"
print "</opml>\n"
$ ruby network2opml.rb [ユーザ名] > network.xml


でできた、OPMLlivedoor Reader にインポート。


まとめて読むのと個別に読むのとどちらがいいか確かめる。


json パーサーとして http://rubyforge.org/projects/json/ を使用した。 わざわざ使わなくてもよかった気もするけど。
opmlbloglines のものを参考にした。仕様が全くわかっていない。

*1:今までは network のフィードを購読