by shigemk2

当面は技術的なことしか書かない

自分のブログの総はてブ数をGrowlで定期的に表示させる

一応毎日ブログをやっている身としては、自分のブログにどのくらいはてブ
集まっているか気になるところだけど、いちいち自分のブログにアクセスするのが
いいかげん面倒になってきたので、定期的に総はてブ数を表示するスクリプト的なものを作ってみた。

段階を踏んでみよう。

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で表示できるし。