#30-04 [hack]更新グラフ
RSSTIMESは外部サーバなので、自前で生成する
ようにしたのがこれ↓
スクリプトはこんな感じ↓
#!/usr/local/bin/perl
# make timebar
@fname = <*.html>;
$now = time;
$expire = 86400 * 30;
$scale = 3;
@bar = split(//, "0" x (24 * $scale));
for $file (@fname) {
open(FD, $file);
while (<FD>) {
if (m|^<strong>#\d\d-\d\d <a name="\d\d-\d\d" href="#\d\d-\d\d" title="(\d+)"|io) {
$time = $1;
if ($time >= $now - $expire) {
(undef, $min, $hour) = localtime($time);
$bar[$hour * $scale + int($min / (60 / $scale))]++;
}
}
}
close(FD);
}
foreach $i (0..$#bar) {
$color = 7 if (($color = $bar[$i]) > 7);
$bar[$i] = sprintf("<span class=\"c%d\" title=\"%02d:%02d-%d\"> </span>",
$color, int($i / $scale), int(($i % $scale) * 60 / $scale), $bar[$i]);
}
$timebar = join("", @bar);
print $timebar;
要するに更新時刻一覧拾ってきて処理してるだけですね。RSSに残っている情報だけだと少なすぎるので
ある程度蓄積しておかないとスカスカになっちゃいますが。$scaleで横の倍率が指定できる
ので、適当な大きさにしておけばいいかと。
CSSで色つけてます。グラデをあんまり細かくすると認識できなくなるのでかなり大雑把です。
cronで実行するようにしてincludeで取り込むのがいいんではないかと。気がついたら真っ黒になったり するので気が抜けません :D