一応毎日ブログをやっている身としては、自分のブログにどのくらいはてブが
集まっているか気になるところだけど、いちいち自分のブログにアクセスするのが
いいかげん面倒になってきたので、定期的に総はてブ数を表示するスクリプト的なものを作ってみた。
段階を踏んでみよう。
1. 総はてブ数を計算するスクリプトを作る
はてなブックマーク件数取得APIとは - はてなキーワード
これは公式のAPIページから丸パクリしたもの。
hatena.pl
#!/usr/local/bin/perl use strict; use warnings; use XMLRPC::Lite; my $url = shift or die "usage $0 <url>"; our $EndPoint = 'http://b.hatena.ne.jp/xmlrpc'; my $count = XMLRPC::Lite ->proxy($EndPoint) ->call('bookmark.getTotalCount', $url) ->result; print $count, "\n";
こんな感じで使われる。
$perl hatena.pl http://d.hatena.ne.jp/shigemk2/ 279
なお、XMLRPC::Liteのインストールが必須ですけども、
当方Perl使いではないので、導入には酷く苦労したが、それはまた別の話。
2. Growlnotifyコマンドを利用してはてブ数を表示させる
ポイントはxargsの使い方とか、だろうか。
$perl hatena.pl http://d.hatena.ne.jp/shigemk2/ | xargs growlnotify -t 'はてブ数' -m
を実行すると、
はてブ数
279
って感じで表示される。
3. crontabでgrowlnotifyを定期的に実行させる
なんとなくこれが一番苦労した。
crontab -eとかで以下のように書く。
0 * * * * /usr/bin/perl /Users/shige/bin/hatena.pl http://d.hatena.ne.jp/shigemk2/ | xargs /usr/local/bin/growlnotify -t 'はてブ数' -m
ほんとうは、
独自コマンド hatebgrowl
#! /bin/sh /usr/bin/perl /Users/shige/bin/hatena.pl http://d.hatena.ne.jp/shigemk2/ | xargs /usr/local/bin/growlnotify -t 'はてブ数' -m
みたいな感じでコマンドを定義して、
0 * * * * hatebgrowl
って書きたかったんだけど、一向に実行してくれないので上のように書くことに
なってしまった。
ポイントは、フルパスで記述することくらいだろうか。
まあいいや、hatebgrowlを定義したから、
growlで表示できるし。