はてブをgoogleブックマークへ引越し
post2gbookmarks.rb
以上を参考にして はてブをgoogleブックマークへ引っ越すスクリプトを書いてみた。
http://b.hatena.ne.jp/n9d/config?mode=exportにある。
http://b.hatena.ne.jp/dump を 以下のスクリプトと同じディレクトリのhateb.atomとして保存して実行するだけでOK
googleのレスポンスが遅いのかスクリプトのスピードが遅いのか、それともはてブがあまりにも巨大なのかわからないが結構時間がかかる。
まあ、一度引っ越せば問題ないからいいんだけど。
でもgoogleブックマークにはexport無いんだよな…ガメるだけってMSと同じスタイルじゃん。
追記:メモリを食いすぎて遅くなるためブックマークを登録するたびにログインしなおすように書き直した。
#!/usr/bin/ruby -Ku require 'rubygems' require 'mechanize' # gem install mechanize require 'nkf' require 'rexml/document' def setbmk(title,bkmk,labels,annotation) agent = WWW::Mechanize.new nkfopt = '-s -m0' # Shift JIS に変換する。偶然のMIME文字列をデコードしない。 # Google にログイン page = agent.get('http://www.google.com/bookmarks/?hl=ja') form = page.forms.first form.Email = USERNAME # Googleユーザ名 form.Passwd = PASSWORD # パスワード res = agent.submit(form) # Google Bookmarks にブックマークを投稿 page = agent.get('http://www.google.com/bookmarks/mark?op=add&hl=ja') form = page.form('add_bkmk_form') form.title=NKF.nkf(nkfopt,title) form.bkmk=NKF.nkf(nkfopt,bkmk) form.labels=NKF.nkf(nkfopt,labels) form.annotation=NKF.nkf(nkfopt, annotation) res = agent.submit(form) puts res.code == '200' ? 'OK': 'NG' end i=0 doc = REXML::Document.new(open('./hateb.atom')) doc.root.each_element('/feed/entry'){|entry| title,bkmk,labels,annotation='','','','' entry.each_element('title'){|t| title=t.texts.join.strip} entry.each_element('link'){|c| bkmk=c.attributes.get_attribute('href').value if c.attributes.get_attribute('rel').value=='related'} tag=[] entry.each_element('dc:subject'){|t| tag.push(t.texts.join.strip)} labels=tag.join(',') entry.each_element('summary'){|t| annotation= t.texts.join.strip} print i+=1 setbmk(title,bkmk,labels,annotation) }