Home‎ > ‎Service‎ > ‎

delicious

http://del.icio.us/

別に今更紹介と言うほどのことではなくて、はてなブックマークがいつのまにやらエクスポート対応していたので、移行のテストというか橋頭堡みたいな感じで使ってみているだけ…。
のつもりだったんですが、これを機会にBluedotとか色々試してみて、結局deliciousでいいじゃん?ってことになってしまいました。orz
後、Stickis はちょっと使ってるけど。どう使い分けるのか、考え中。
こっちにもdeliciousから移行登録したのだけど、昔のは消したくなった。でもやり方がわからん。
http://www.stickis.com/

はてなブックマークからの移行

はてなとdeliciousの両方にアカウントがあるのが前提です。

Step.1

まずは、はてなブックマークからデータのダウンロード
設定 > データのエクスポート から 「ブックマーク形式」で、ローカルにダウンロード。

Step.2

deliciousにログインして
settings > import / upload
先ほどダウンロードしておいたファイルを指定してアップロードします。
それにしても、7千件弱のインポート、1時間くらいたったと思うけど終わりません。2時間くらいかかりそう?

Step.3

インポートしたブックマークは、ブラウザのブックマークという前提だと思うのですが、全部非公開になってます。
これ、手作業でチクチク戻すの勘弁。というわけで、何か適当なツールを探したのですけどみつかりません…。
もしかしたらWindows用なら何かあるのかもしれませんが。

というわけで、APIを叩くスクリプトを作ることにします。ライブラリは、いろいろperl,ruby,php,javaと大抵でているみたい。
まずは、rubyでチャレンジ。
http://ridiculous.rubyforge.org/
Ridiculous というラッパーです。
試してみたのですが、エラーはきます。
./ridiculous.rb:63:in `request': undefined method `use_ssl=' for #<Net::HTTP api.del.icio.us:443 open=false> (NoMethodError)
ridiculous.rbをいじってリスト取るくらいまでは出来るようになったんですけど、addとかでもエラーでまくって面倒くさくなってなげました。

次、仕方ないのでperl
http://search.cpan.org/~ascope/Net-Delicious-1.1/lib/Net/Delicious.pm
Net::DeliciousをCPANから入れます。
my @post = $del->all_posts();
データ大杉なのか、取れなかったっぽいので、日付の文字列を生成して一日毎に取ることにしました。
my $del = Net::Delicious->new({ user => $user, pswd => $pass });
my $date = "2006-01-01";
my @post = $del->posts( { dt => $date} );
ここで取ったデータに、sheared を付けて、ポストし直し。
パラメタの $p->{time} addの時と違って dtじゃなくって、しばらく引っかかってました。
foreach my $p (@post)  {
        my $href = $p->{href};
        my $description = encode("UTF-8", $p->{description});
        my $extended = encode("UTF-8", $p->{extended});
        my $tags = encode("UTF-8", $p->{tags});
        my $dt = $p->{time};
        my $shared = $p->{shared};
        if ($shared =~ "no"){
           $del->add_post({url=>$href,description=>$description,
              extended=>$extended,tags=>$tags,
              dt=>$dt,shared=>"yes",replace=>"yes"});
        }
}

なのですが、どうもその日付のブックマークの一部が not shared になって残るようで…。

my $date = "2006-01-01T6";
my @post = $del->posts( { dt => $date} );

とか、6時間毎に刻んでみたところ、APIに投げた日付と取得できるデータの日付にずれがあるような?
まぁ、一応、これで全部共有されたわけだけど、時間かかるしなんとも…。

ċ
delicious_01.html
(1k)
ユーザー不明,
2007/02/19 18:54
Comments