現在の交通情報を携帯にメールするスクリプト

LifeHackerはどうもスポンサー企業の匂いが濃いことが気になり初めてているのですが、それはともかく、LifeHackerの、コンピュータライフをサポートするブログ、という内容に感化されつつあります。

しかし、あんまりコンピュータばかり見ているのはどうにも気味が悪いので、日常に役立つ、日常をサポートするWeb技術なんていう方向に、興味が振れています。

そんなブログもいいかなー、と。

さて、そんなわけで、齢23歳にしてようやく免許なるものを取りました。

そして例に漏れず東京の道の複雑さと渋滞に悩まされてます。 カーナビをつければいいんでしょうが、バイク用のカーナビなんて無いも同然。地図付きGPS、例えばGarminとかはありますが、渋滞情報とか周辺情報とかそういうハイテクな物は一切無し。

携帯サイトで、渋滞情報を提供するものはあれど、携帯のブラウザのレスポンスじゃイライラするし画像が出ても、小さくて見にくい。

普通にPCで見れば無料なのに、携帯で有料で見るのもちょっと悔しい。

と言うわけで、JARTIC:日本道路交通情報センターのサイトの情報を携帯にメールするスクリプトを書いて見ました。

EmailJP.pm — Send mail with Net::SMTPをMTのlibディレクトリに入れて、libと同じ階層にこのスクリプトを置けば、後はSMTPサーバ(POPbeforeSMTPの場合はPOPも)さえあれば、OK。

cronで回すなり、お気に入りにスクリプトのアドレスを入れておいて手動で動かすもよし、です。

… ここまで考えて、運転中に携帯使えないことに気がつきました。

道路交通情報短縮ダイヤル並に使いどころが無いじゃないか onz cronで回して、信号待ち中にエンジン切って見ればOK?

…ないしPDAナビにして、AirH”差しておくしかないのか。

でも、PDAって林道行くと壊れそうな気が。

とりあえずPerl Scriptのっけておきます。

何も考えずに作ったので、かなりいい加減な点があります。

“車”とかこの辺の文字化けてるし。

いまだに文字コード周りがワケワカメ。

ちなみに道路交通情報は ・ このホームページの内容について、私的使用または引用等著作権法上認められた行為を除き、財団法人日本道路交通情報センターに無断で転載等を行うことはできません。

また、このホームページの内容の全部または一部について、無断で改変を行うことはできません。

なので、個人的使用にとどめませう。

#!/usr/bin/perl -I ./lib #JARTIC のパースをして、RSSに変換する。
#http://www.jartic.or.jp/traffic/ippan/tokyo/rsm1301.html
#そして、JS形式で出力。
use strict ;
use LWP::Simple ;
use Encode ;
use Jcode ;
use EmailJP;
use lib “lib” ;
use Net::POP3;
use Net::SMTP ;
#送り先メールアドレス
my $send_address = ‘hoge@docomo.com’ ;
#メールの題名
my $subject = “道路情報[東京23区]” ;
#POP3とSMTPサーバ
my $server =”hogehoge.ne.jp”;
#使うPOP3サーバのUSER名
my $pop_user = ‘hoge@hogehoge.ne.jp’ ;
#使うPOP3サーバのPASS
my $pop_pass = “hoghog” ;
#まずは掲示板のデータをLWP::SimpleでGET
my $url = ‘http://www.jartic.or.jp/traffic/ippan/tokyo/rsm1301.html’ ;
my $rowdata = LWP::Simple::get( $url ) ;
$rowdata .= “nn—————————-nn” ;
my $url2 = ‘http://www.jartic.or.jp/traffic/ippan/tokyo/rsm1302.html’ ;
$rowdata .= LWP::Simple::get( $url2 ) ;
#正規表現で整理していく。
#今回は、とりあえず最低限の整形だけ。
$rowdata =~ s/<TR.*?>/ /isg ;
$rowdata =~ s/</TR>/nn/isg ;
$rowdata =~ s/t/ /isg ;
$rowdata =~ s/<p.*?>//isg ;
$rowdata =~ s/<TD.*?>//isg ;
$rowdata =~ s/</TD>//isg ;
$rowdata =~ s/ +/ /isg ;
$rowdata =~ s/<.*?>/ /isg ;
$rowdata =~ s/^ +//isg ;
$rowdata =~ s/ +n/n/isg ;
$rowdata =~ s/n +/n/isg ;
$rowdata =~ s/n{3,}/n/isg ;
#まず、pop3にログインだけし、SMTPを使えるようにしておく。。
my $pop = Net::POP3->new($server) or die “Can’t connect POP3 server . n”;
my $auth_check = $pop->login($pop_user , $pop_pass) or die “Invalid login . n”;
#続いてメール作成
my $count = &EmailJP::sendmail( server => $server,# SMTPサーバ
hello => “hogehoge.ne.jp”,# HELLO
timeout => 5,# タイムアウト
return => ‘erro@hoge.com’,# エラー返送先
to => $send_address, # メール宛先
head => “Subject: $subjectn”, # メールヘッダ
body => $rowdata, # メール本文
charset => “iso-2022-jp”, # 送信文字コードは JIS
internal => “EUC-JP” # 内部文字コードは EUC );
#POP3とのセッションを閉じる
my $msg_flag = $pop->quit();

一応こういうのが来ます。

JARTICさんサンプルだから許して。

関町吉祥寺線 上り 練馬区関町交番前 ← 武蔵野市四軒寺交差点 工事 関町吉祥寺線 下り 武蔵野市四軒寺交差点 ← 練馬区関町交番前 工事 吉祥寺通り 内回 武蔵野市四軒寺交差点 ← 練馬区関町交番前 工事 吉祥寺通り 外回 練馬区関町交番前 ← 武蔵野市四軒寺交差点 工事 国道1号 下り 大田区矢口2丁目付近 ←   工事 第2京浜 下り 大田区矢口2丁目付近 ←   工事 国道4号 上り 足立区千住大橋北詰付近 ←   工事 国道4号日光街道 上り 足立区千住大橋北詰付近 ←   工事 国道6号 上り 葛飾区白鳥2 ← 葛飾区白鳥 工事 国道6号 下り 葛飾区白鳥2 ← 葛飾区白鳥1丁目 工事

つーかめちゃくちゃ化けてるよー。

後日修正せねば。

そして、普通に渋滞情報のメールサービスとかありそうで、何か怖くて検索できない(‘A`)ショウジンセネバ

お悩みの方へ。一回のご相談で解決することもあります
ラウンドナップ・コンサルティングへのお問合せ方法 お電話でのご相談もお気軽に。[048-234-3361](10〜16 土日祝日除)全国対応 24時間受付 お問合せメールフォーム