2008-03-04
_ Yahoo!路線情報から運行情報をとってくるEFT
Plagger を使った運行情報の取得には livedoor 路線案内の運行情報を利用した,LDTraffic や LDTrain があるけど,Yahoo!路線情報の運行情報からだと,EFT でひっぱってこれた.
# http://transit.yahoo.co.jp/railway/area?ac=<code>&an=<name>
author: hb@smallstyle
custom_feed_handle: http://transit\.yahoo\.co\.jp/railway
custom_feed_follow_link: /detail\?ac=\d+&line=\d+&cp=\d+
handle: http://transit\.yahoo\.co\.jp/railway/detail\?ac=\d+&line=\d+&cp=\d+
extract_xpath:
title: //h2/b/text()
body: //div[@id="info_display"]/text()
date: //div[@id="info_time"]/text()
extract_after_hook: |
my $regex = decode("utf-8","(平常通り|再開|遅れ|運転変更|見合わせ|運休)");
my @status;
while($data->{body} =~ /$regex/g){push(@status, $1);}
$data->{title} = "[$status[$#status]] $data->{title} $data->{date}";
extract_after_hook でステータスをタイトルに付け加えています.
一部列車に運転変更が出ていましたが、12:00現在、ほぼ平常通り運転しています。
上のような"運転変更"と"平常通り"のキーワードが同時にでたときに,Yahoo!路線情報では最後のキーワードがそれらしい感じ.正規表現は最初にマッチしたキーワードで評価されるため,いったんステータスにマッチするキーワードをすべて取り出してから,最後のキーワードを取り出すというまわりくどいことをしてます.
これで各エリアごとの運行情報を取得することができたので,あとは Filter::Rule で自分が利用する路線だけを対象にしておくと必要なものだけになってすっきりする.で,config.yaml の一部はこんな感じに.
global:
cache:
expires: 5 sec
plugins:
- module: Subscription::Config
config:
feed:
- http://transit.yahoo.co.jp/railway/area?ac=6&an=%93%8C%8AC
- module: Filter::EntryFullText
- module: Filter::Rule
rule:
module: Deduped
compare_body: 1
- module: Filter::Rule
rule:
expression: $args->{entry}->title =~ /(名古屋本線|東海道本線)/
cache の expires を設定しておかないと,最新情報がとってこられないことがあるみたいなので,ひとまず 5 秒後には消してしまうようにしてみました.
EFT を CodeRepos に commit しました.
[ツッコミを入れる]
- Firefox をインストールしたらまず行う設定(Firefox 2.0 版) - SmallStyle (2006-10-25)
- SmallStyle - Firefox をインストールしたらまず行う設定(Firefox 2.0 版)
- SmallStyle - Debian に Plagger をインストール
- Lightbox JS を使って画像表示をかっこよくみせてみる�� - SmallStyle (2006-01-03)
- SmallStyle - Plagger::Plugin::Filter::FetchNicoVideo でニコニコ動画(SP1) H.264 形式対応
- SmallStyle - YAML のための vim 設定メモ
- SmallStyle - Filter::EntryFullText の設定ファイルを書いてみる
- SmallStyle - Java Service Wrapper を使って NicoCache をWindows サービスとして登録する
- SmallStyle - Stylish でユーザスタイルシートの切り替えを手軽に , 仕事納め
- category プラグインを利用した タグクラウド 表示プラグイン - SmallStyle (2006-05-23)