Amazon.co.jpのURLを短くする
誰かに書籍を紹介するときにamazonはとても便利だけど,唯一の不満はURLが長ったらしいこと.ISBN10がわかっていれば簡単なURLにすることができるのは知っていたけれど,もっと短くすることができるということを知った.
誰かやってないかなぁ,と思って3分くらい調べたけれど見つからなかったので,変換結果をストックする機能もつけたCGIを作ってみた.Kogai Dan氏のようにかっこよく5分で.と言いたいところだが,実際は30分くらいかかっています.これが若さか...
Amazon.co.jpのURLを短くするなんか
使い方:長ったらしいURLを入力して変換ぼたんをぽちっ
ブックマークレット(ポップアップに変換後URLを表示)を作ろうと思ったけれど,やめました.世界のどこかに必要とする人がいれば作ろうと思います.
そーすこーど
#!/usr/bin/perl use strict; use warnings; use CGI; my $cgi = new CGI(); my $input_url = $cgi->param('url'); my $records = $cgi->param('records'); # print header print "Content-type:text/html;charset=UTF-8\n\n"; print <<"EOD"; <html><body> EOD my $BASE_URL = "http://amazon.jp/"; my $converted_url; if ($input_url && $input_url =~ m<http://(www.)?amazon(.co)?.jp.*/(dp/\d{9}(\d|X))>){ $converted_url = $BASE_URL . $3; # add new input url as records if ($records){ $records = $converted_url . '&' . $records; }else{ $records = $converted_url; } } # print form print <<"EOD"; <h2>Amazon.co.jpのURLを短くするなんか</h2> <form method="POST" action="./amzurl.cgi"> <input type="text" name="url" size="120"><br /> <input type="hidden" name="records" value="$records"> <input type="submit" value="へんかん"><br /> </form> <hr /> EOD # print records if ($records){ my @recorded_url_list = split /&/, $records; print "<ul>\n"; foreach my $recorded_url (@recorded_url_list){ print "<li>$recorded_url</li>\n"; } print "</ul>\n"; } # print footer print "</body></html>\n";