金の小売価格をメールで通知するスクリプト

金の小売価格を週に一度メールで通知するスクリプトを書いてみた。週に一度、って部分は cron にまかせるわけだけど。

use strict;
use utf8;

sub strip_yen {
    my $str = shift;
    $str =~ s{}{}xms;
    return $str;
}

my $price = do {
    use Web::Scraper;
    use URI;
    my $uri = URI->new("http://gold.tanaka.co.jp/commodity/souba/");
    my $table_path = '/html/body/div[2]/table/tr[9]/td/table/tr/td[2]/table/tr[13]/td/table/tr/td/table';
    my $scraper = scraper {
        process "$table_path/tr[2]/td", 'saling_prices[]' => 'TEXT';
        process "$table_path/tr[4]/td", 'buying_prices[]' => 'TEXT';
    };
    my $result = $scraper->scrape($uri);

    {
        gold_saling     => strip_yen($result->{saling_prices}[1]),
        gold_buying     => strip_yen($result->{buying_prices}[1]),
        platinum_saling => strip_yen($result->{saling_prices}[2]),
        platinum_buying => strip_yen($result->{buying_prices}[2]),
    };
};

my $pipe = '|/var/qmail/bin/qmail-inject -a -fgpone@mato.me example@ezweb.ne.jp';
open my $mail, $pipe or die;
print $mail $price->{gold_saling};
close $mail;

指定した価格より下がったらメールする、とかに変えていく予定。