時刻表を表示するwidget

とりあえず動くようになったので、公開。
時刻表情報を駅探から取得するサーバプログラム(Perl+各種CPANモジュール)を別途どこかで動かしておく必要があるので、お手軽とは言えないけれども。

準備:

  1. サーバプログラム(ttserver.pl)とモジュール(ScrapingEkitan.pm)を、サーバを実行するディレクトリに配置。cgi-binとかに置くのがお手軽
  2. chumbyに差すUSBメモリを準備。widget本体と、profile.xmlをルートにコピー
  3. profile.xmlの以下の行をサーバプログラムを動かすURLに修正
  4.         <widget_parameter>
              <name>serverurl</name>
              <value>http://example.com/cgi-bin/ttserver.pl>
            </widget_parameter>
  5. ScrapingEkitan.pmの以下の部分を、閲覧したい時刻表のURLに置き換える(平日、土曜、休日)。
  6. # JR鹿児島本線 博多駅 門司港方面
    our $SCRAPER_URI_WEEKDAY	= 'http://www8.ekitan.com/norikae/Time/0_54-27_1_0.html';
    our $SCRAPER_URI_SATURDAY 	= 'http://www8.ekitan.com/norikae/Time/0_54-27_1_1.html';
    our $SCRAPER_URI_HOLIDAY	= 'http://www8.ekitan.com/norikae/Time/0_54-27_1_2.html';
  7. chumbyからwidgetを起動。時刻表が表示されることを確認

ttserver.plの処理がかなり重いので、表示されるまで少し時間がかかる(こちらの環境で4,5秒)。表示できない場合は、切り分けとしてサーバプログラムのURLを直接叩いてxmlが表示されるかどうか確認するとよい。

改善したい事は色々あるけど、まずは記念すべきchumby widget第一号ということで。汎用性を上げてオフィシャルに登録できるようになると良いが、当面はこんな感じかな。

widgetのソース(ttwidget.as)。XPath4AS2を使わせていただいた。