hatena-graph-update: はてなグラフを更新するコマンド

■これはなに? はてなグラフ<graph.hatena.ne.jp/>というサービスがあります。 さまざまなデータの、日ごとの移り変わりをグラフにして表現してくれる サービスです。

通常はWeb上のインタフェースからデータを入力するのですが、APIが公開 されているので、プログラムから自動的にグラフを更新することができま す。

hatena-graph-updateは、コマンドラインから数値を指定して特定のグラフ を更新するためのコマンドです。コマンドパラメタや標準入力からデータ を入力できるので、cronやメールとの連携が簡単にできます。

■使い方 実行には、Ruby 1.8.7以降が必要です。

http://www.ruby-lang.org/

はてなグラフAPIライブラリも必須です。

http://rubyforge.org/projects/hatenaapigraph/

また、はてなのユーザID/パスワードをコマンドパラメタで渡したくない 場合にはpitもしくはnet/netrcライブラリが利用できるようにインストー ルされている必要があります。

http://rubyforge.org/projects/lowreal/   (pit)
http://rubyforge.org/projects/net-netrc/ (net-netirc)

コマンドシンタックスは以下のとおりです:

% hatena-graph-update [-u user] [-p pass] [-d date] [-a] graph [data...]

-u user, --user   : はてなのユーザID。無指定時には~/.netrcを見ます
-p pass, --passwd : はてなのパスワード
-d date, --date   : グラフの日付。無指定時には実行時の日付
-a                : 追加モード
graph             : 更新するグラフの名前(必須)
data              : 更新するデータ。無指定時には標準入力

ユーザIDをコマンドパラメタで指定しなかった場合には、~/.netrcの中 から、machineに「hatena.ne.jp」を指定したエントリを参照して使い ます。loginとpasswordの値が必要です。

dataは、複数指定できます。値は小数に変換された後、すべて足しあわされて から、今日、ないしは指定した日付のグラフの値として登録されます。

■実行例 (1) メールで体重を更新

メールの本文に体重を書いて特定のアドレスに送ると、その値がグラフに
反映されます。procmailを使うとこんな感じに書けます。

:0
* ^TO_.*[email protected]
| sed '1,/^$/d' | hatena-graph-update weight

(2) ログファイルのサイズをグラフ化

cronなどでログファイルの切り替えをする際に、前日のログファイルの行数
をグラフに送ります。

#!/bin/sh
yesterday=`date -d yesterday +%Y-%m-%d`

cd /var/log/hoge
mv hoge.log hoge.log.$yesterday
wc -l < hoge.log.$yesterday |\
   hatena-graph-update -u hoge -p hoge -d $yesterday logsize

(3) 摂取カロリーを食事のたびに追記する

朝昼晩の3回の食事のつど、追加モードで摂取カロリーを記録します。数値の
後ろに数値以外の文字が書かれていても無視されるので、何を食べたのか同時
に記録しておくことができます。

朝:
% hatena-graph-update -a calorie
410 チーズトースト
100 ミルクティ
^D

昼:
% hatena-graph-update -a calorie
720 カレーライス
^D

晩:
% hatena-graph-update -acalorie
430 さばの味噌煮
200 ごはん
150 味噌汁
^D

■ライセンス Copyright © 2009 by TADA Tadashi <[email protected]> Distributed under GPL.