はてなグラフに登録する
で、持ち株数分の株価を集計してはてなグラフに登録する。今まで気が向いたときに手で登録してたんだけど、はてなグラフ数値登録APIの存在を知り自動化することにした。あとはこれを16時くらいに動くようにすればよし。
#!/usr/bin/perl -w use strict; use warnings; use HTTP::Request::Common; use LWP::UserAgent; use DateTime; use Readonly; Readonly my $USERNAME => 'hetappi'; Readonly my $PASSWD => 'xxxxxxx'; Readonly my $GRAPH => 'stock'; Readonly my @STOCK => ( ['9404.t', 10], ['9401.t', 100], ['4676.t', 1], ['9409.t', 1], ['9411.t', 100]); sub get_stock_price { my ($code) = @_; my $url = sprintf('http://quote.mobile.yahoo.co.jp/f?a=d&sy=%s&k=', $code); my $response = LWP::UserAgent->new->get($url); my ($price) = $response->content =~ /取引値 ([\d,-]+)/; $price =~ s/,//g; $price; } sub regist_hatena_graph_value { my ($name, $passwd, $graph, $value) = @_; my $ua = LWP::UserAgent->new; $ua->credentials('graph.hatena.ne.jp:80', '', $name, $passwd); my $res = $ua->post( 'http://graph.hatena.ne.jp/api/post', {graphname => $graph, date => DateTime->now->ymd, value => $value}); } my $price = 0; foreach my $ss(@STOCK) { $price += get_stock_price($ss->[0]) * $ss->[1]; } regist_hatena_graph_value($USERNAME, $PASSWD, $GRAPH, $price);