del.icio.usのタグを小文字に統一する

del.icio.usでブックマークしまくりの毎日。
今日の今までタグの頭文字を大文字で書いたり小文字で書いたり、その時の気分で書きたいようにかいていたのですが、いい加減気持ち悪くなったので簡単なスクリプトを書いて小文字に統一するようにしてみました。っていうか最初からそうしろよって感じですが。

#!/usr/bin/perl

use strict;
use LWP::UserAgent;

my $ID = "username";
my $PW = "password";

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(GET => 'http://del.icio.us/api/tags/get');
$req->authorization_basic($ID, $PW);
my $res = $ua->request($req);
if ($res->is_success) {
   my $tags = $res->as_string;
   $tags =~ s!tag="(.+?)"!&do_rename($1)!ge;
} else {
   print "ERROR: " . $res->status_line . "\n";
}

sub do_rename {
   my $oldtag = shift;
   $oldtag !~ /[A-Z]/ and return;
   my $newtag = lc($oldtag);
   my $req = HTTP::Request->new(
         GET => "http://del.icio.usa/api/tags/rename?old=$oldtag&new=$newtag"
         );
   $req->authorization_basic($ID, $PW);
   my $res = $ua->request($req);
   if ($res->is_success) {
      $res->as_string =~ m/<result>(.+?)<\/result>/;
      print "$oldtag -> $newtag $1.\n";
   } else {
      print "ERROR: $oldtag " . $res->status_line . "\n";
   }
   sleep(2);#Please wait AT LEAST ONE SECOND との事なので
}

Net-Delicious-1.14 - OOP for the del.icio.us API - metacpan.orgというCPANモジュールもあるのですが、初めてAPIを触るのでhttp://del.icio.us/doc/apiを見ながら書いてみました。

まあ、同じ悩みを持っている方はあまり多くないと思いますが、名づけてlc.icio.us!

…ハァ、寝よう…。