カラクリサイクル

『輝かしい青春』なんて無かった人の雑記

del.icio.usからはてなブックマークに乗り換えた

概要: del.icio.usからリニューアルしたはてなブックマークに乗り換えた。


はてなブックマークがリニューアルして全文検索が付いたので、最近ブックマークもめっきり使ってなかったし、 まあしばらく使えなくても問題ないやということで、del.icio.usとはてなブックマークのブックマークをバックアップして、 両方とも一旦全部消して、んでバックアップを書き戻してみたいな事をやってました。

今のところはてなブックマークを普通のブックマークに、 del.icio.usの方をコメント先とトラックバック先のメモに使うようにしてみたんですが、 これがなかなかいい感じ。

特にはてなブックマークでインクリメントに全文検索できるのがステキ。 まあ前々からtaggingはゆれがあるしアテにならないし面倒だしと思ってたので、 全文検索ができるのは大きなポイント。

でまあ使い心地はおいといて、最初del.icio.usからエクスポートしたブックマークからいらないものを取り除いて、 サクっとインポートしたらいいんじゃね?と思ってたんだけど、何が悪いのか何回やってもうまくいかなかったので、 仕方なくPerlで以下のようなスクリプトを書いてインポートした。

#!perl

use strict;
use warnings;

use XML::Atom::Client;
use XML::Atom::Entry;
use Time::HiRes qw(sleep);
use HTML::TreeBuilder::XPath;

my $username    = '<username>';
my $password    = '<password>';

my $file        = shift @ARGV or die "Usage: import.pl {bookmark}.html";

my $client  = XML::Atom::Client->new;
   $client->username($username);
   $client->password($password);

my $tree    = HTML::TreeBuilder::XPath->new;
   $tree->parse_file($file);

my @entries = ();

my $nodes   = $tree->findnodes('//a');
for my $node ( $nodes->get_nodelist ) {
    my $link = $node->findvalue('@href');
    push @entries, $link;
}

for my $url ( reverse @entries ) {
    my $entry   = XML::Atom::Entry->new;
    my $link    = XML::Atom::Link->new;
       $link->rel('related');
       $link->type('text/html');
       $link->href($url);
    $entry->add_link( $link );

    my $loc = $client->createEntry('http://b.hatena.ne.jp/atom/post', $entry);
    if ( $loc ) {
        print "success: $url\n";
    }
    else {
        print "failed: $url\n";
    }

    sleep(1);
}

使い方はスクリプトを保存して

import.pl {ブックマーク形式のHTML}.html

で実行すればOK。なんかたまにPOSTに失敗するときがあるので、 プロンプトへの出力をファイルにリダイレクトして後で確認するとかしたほうがよさげ。 あと一回ごとに一秒スリープしてるので、ブックマーク数が多いと時間がかかるかも知れません。 それとコメントは全部吹っ飛ぶのでその辺り注意。

ちなみにはてなブックマークへのPOSTの部分はPlaggerのPublish::HatenaBookmarkを参考にしました。 まあXML::Atomを使ってるだけですが。

あとこのスクリプト、HTMLファイルからa要素抜き出してhref取得してPOSTしてるだけなので、 別にブックマーク形式のHTMLじゃ無くても動きます。使い道あるかどうかわかんないけど。

まあスクリプトの話は切り上げるとして、やっぱりインクリメントに全文検索はいいですな。 欲しい情報がすぐ出てくるし。まあブックマークした内容を完全に忘れてるので、 読み返しそうもない情報とかもありますが。

あとやっぱり時代は全文検索です。全文検索です。大切なことなので何回も言います。 全文検索が無かったら果て部、じゃなかったはてブなんて使ってませんよ。

まあこれではてなブックマーカーになるわけですが、クネクネとかはしないでしょう。興味ないし。 まあネガコメぐらいはあるかも知れないけど。

ま、これから気になった記事とかをブックマークしていきまかねぇ。