はてなブックマークを初期化

はてなブックマークは、自分のアカウントではプライベートで使ってた。だけど、Twitterと連携させてみたいと思ったので、今までのブックマークを隠したいと。ただ、個別にプライベートにできないようで、今までのブックマークを削除しようと。機能的には用意されていないようなので、自分で削除しなきゃいけないんだけど、数も多いし、手作業ではどうにもならなさそうだった。

API 経由でできそうだと思ったけど、どうせ車輪の再発明になりそうだということで、Googleで検索してみるとやはり存在した。koshigoewiki:はてな:はてなブックマーク [KoshigoeWiki]にスクリプト(Perl)が公開されてます。備忘録に、如何に手順等を残しておきます。

自分の Ubuntu Server が入った VPS サーバにて実行してみた。XML::Atom が必要なので、以下のコマンドを実行してインストールしておく必要がある。

$ sudo apt-get install libxml-atom-service-perl

#!/usr/bin/perl -w

use strict;
use XML::Atom::Client;

my  = "http://b.hatena.ne.jp/atom";
my  =  . "/post/";
my  =  . "/edit/";
my  =  . "/feed";
my $USER     = "KoshigoeBushou";
my $PASS     = "x2tnx8";

# Initialize
my $api = XML::Atom::Client->new;
$api->username($USER);
$api->password($PASS);

my $recentFeed = $api->getFeed();
my @eidList    = getEIDList($recentFeed->as_xml);
while (scalar @eidList > 0) {
  foreach my $eid (@eidList) {
    print "[DELETE] eid:$eid/" . $api->deleteEntry( . $eid) . ".¥n";
  }
  $recentFeed = $api->getFeed();
  @eidList    = getEIDList($recentFeed->as_xml);
}

##

sub getEIDList {
  my $feed = shift;

  my @lines   = split("¥n", $feed);
  my @eidList = ();
  foreach my $line (@lines) {
    if ($line =~ /rel¥=¥"service.edit¥"/) {
      $line =~ /href¥=¥".+¥/edit¥/([0-9]+)¥"/;
      push(@eidList, $1);
    } else {
    }
  }

  return @eidList;
}

で、

$ perl test.pl

を実行しました。

| コメントは受け付けていません。 | tech