はてなブックマークの被ブックマーク件数を取得するスクリプト。
さすがにこれはワンライナーだとキツそうだったので普通に書いてみた。
#!/opt/local/bin/perl use strict; use warnings; use Encode 'encode_utf8'; use LWP::Simple 'get'; use XML::RSS; use XMLRPC::Lite; # 引数:URL, 閾値 my $target = shift; my $threshold = shift; unless (defined $target) { print STDERR "usage: $0 <target_url> <threshold (optional)>\n"; exit; } # 取得するRSSのURL生成 my %params = ( 'mode' => 'rss', 'sort' => 'eid', 'url' => $target, ); if (defined $threshold) { $params{threshold} = $threshold; $params{sort} = 'hot'; } my $url = 'http://b.hatena.ne.jp/entrylist?' . join('&', map { "$_=$params{$_}" } keys %params); # RSSの取得 my $rss = new XML::RSS; $rss->parse(get $url); # 各エントリの被ブックマーク数を取得 my $results = XMLRPC::Lite ->proxy('http://b.hatena.ne.jp/xmlrpc') ->call('bookmark.getCount', map { $_->{link} } @{$rss->{items}},) ->result; # 結果の表示 for (@{$rss->{items}}) { printf("%3d: %s\n", $results->{$_->{link}}, encode_utf8($_->{title})); }
実行例:
$ ./hatebu.pl usage: ./hatebu.pl <target_url> <threshold (optional)>
$ ./hatebu.pl 'http://d.hatena.ne.jp/sugyan/' 4: 16進数のテーブルを表示するワンライナーを考える まとめ - すぎゃーんメモ 1: GenesisLightningTalks Vol.14 に行ってきた - すぎゃーんメモ 7: 16進数のテーブルを表示するワンライナーを考える - すぎゃーんメモ 1: GenesisLightningTalks Vol.14 に行ってきた - すぎゃーんメモ 1: 清楚なクライアントを試してみた - すぎゃーんメモ 19: SoozyCon7に行ってきた - すぎゃーんメモ 1: zsh始めてみる - すぎゃーんメモ 1: Google App Engine でloggingを使ってログを出力する - すぎゃーんメモ 2: 何かの画像をワンライナーとか何かで取得する - すぎゃーんメモ 1: 美人時計の画像ファイルをワンライナーで取得する - すぎゃーんメモ 4: 高機能ライブラリ「jQuery」とそのPlugin「Validation」 - すぎゃーんメモ 5: 美人時計の画像ファイルをワンライナーで取得する - すぎゃーんメモ 1: W45TからiPhoneへの電話帳データ移行 - すぎゃーんメモ 16: 美人時計の画像ファイルをワンライナーで取得する - すぎゃーんメモ 3: Google App Engine でBasic認証を実装 - すぎゃーんメモ 2: Google App Engine でBasic認証を実装 改 - すぎゃーんメモ 8: 連想配列の最後にカンマを入れてはいけない言語もある - すぎゃーんメモ 2: GenesisLightningTalks Vol.13 で喋ってきた その2 - すぎゃーんメモ 3: 70年代の先輩方と麻雀してきた - すぎゃーんメモ 1: GenesisLightningTalks Vol.13 で喋ってきた その1 - すぎゃーんメモ 1: 1行自己紹介 - すぎゃーんメモ 2: Sierpinski triangleワンライナー - すぎゃーんメモ 1: Acme::EyeDropsすげーーー - すぎゃーんメモ 6: マジカルインクリメントによる文字列操作 - すぎゃーんメモ 5: デブサミ2009に、ちょっとだけ行ってきた - すぎゃーんメモ 1: ファイルハンドルの出力先に変数を指定する - すぎゃーんメモ 1: 2009-02-06 - すぎゃーんメモ 29: ワンライナー記号化スクリプトを書いた - すぎゃーんメモ 2: GenesisLightningTalksで喋ってきた! その2 - すぎゃーんメモ 4: GenesisLightningTalksで喋ってきた! - すぎゃーんメモ
$ ./hatebu.pl 'http://d.hatena.ne.jp/sugyan/' 5 7: 16進数のテーブルを表示するワンライナーを考える - すぎゃーんメモ 19: SoozyCon7に行ってきた - すぎゃーんメモ 5: 美人時計の画像ファイルをワンライナーで取得する - すぎゃーんメモ 16: 美人時計の画像ファイルをワンライナーで取得する - すぎゃーんメモ 8: 連想配列の最後にカンマを入れてはいけない言語もある - すぎゃーんメモ 6: マジカルインクリメントによる文字列操作 - すぎゃーんメモ 5: デブサミ2009に、ちょっとだけ行ってきた - すぎゃーんメモ 29: ワンライナー記号化スクリプトを書いた - すぎゃーんメモ 5: 第十二回java-jaに行ってみた - すぎゃーんメモ 7: iPhoneアプリにおけるローカライズの挙動が謎 - すぎゃーんメモ