2006/02/21

 曇のち晴

[Projects::weather] ldweatherプラグイン

 みんな大好きライブドアがWebアプリケーションオタク達に仕掛けた壮大な釣り行為である livedoor Weather Web Service ですが、せっかくなので釣られる形で blosxom 用のプラグインを作ってみました。

ldweather プラグイン (2006/02/11)

インストールと設定:

  1. pluginsディレクトリに、ldweather をコピーして下さい。
  2. ldweather の19行目にある
    my $CITY = 70; # 都市番号
    を、ライブドアが提供している「全国の地点定義表」を参照して、お好みの都市番号に修正して下さい。
  3. plugins/states ディレクトリに、cache という名前のディレクトリを作成して下さい(ない場合はプラグインが自動的に作ります)。ここに、取得したXMLが保存されます。

使い方:

お天気情報の取り込み

 お天気情報は、今日のデータをまだ取得していない場合、あるいは前に今日のデータを取得してから6時間以上経過した場合、自動的に取得されます。

フレーバーにお天気情報を埋め込む

 date, story, footフレーバーに以下の変数を埋め込むことにより、その場所にお天気情報を表示します。
 date, story で使った場合はそのエントリの日付のお天気情報を、foot は常に今日のお天気情報を参照します。

$weather::telop今日の天気
$weather::linklivedoor 天気情報のURL
$weather::titleタイトル・見出し
$weather::area地方名
$weather::pref都道府県名
$weather::city1次細分区名(要は街の名前)
$weather::image天気アイコン(livedoor天気情報へのリンク付き)
$weather::description天気概況
$weather::max最高気温
$weather::min最低気温
エントリの中にお天気情報を埋め込む

 エントリの中にお天気情報を記述する場合、上記の変数を「<」~「>」で囲って記述することで、そこがその日付のお天気情報に置き換わります。

<a href="<$ldweather::link>"><$ldweather::title></a><br />
<$ldweather::image><$ldweather::telop>(<$ldweather::max>℃)<br />
<small><$ldweather::description></small>

神奈川県 横浜 - 今日の天気
曇のち晴曇のち晴(℃)
日本の南海上には前線が停滞しています。 現在、関東甲信地方は、全般に曇りとなっています。 今夜は、前線の影響で曇りとなりますが、前線が次第に南下するため...

 なお、XMLの解析は(XML::Simpleなどを使わず)普通に正規表現で済ませています。なので、XMLのフォーマットが微妙に変わっただけでガタガタになる可能性もあります。まあそれはそれで(手抜き)。
 なお文字コードの変換はしていないので、UTF-8以外で運用している方が使う場合は改造する必要があります。

 要望としては、市町村ごとのピンポイント情報へのリンクの有無を選択できたらいいかも(このプラグインみたいな使い方する程度なら不要なので)というのと、都市番号に変なデータ入れた時などのエラー時にはXMLでエラーを返した方が良い(ライブドアのトップページに飛ばされる?)という点でしょうか。
 何はともあれ、面白いサービスの公開ありがとうございました。

Posted at 00:00 | WriteBacks (1) | permalink
  愛ー!!   アイー!!
ヽ( `Д´)人( ・∀・)ノ
  |  |ヘ   |  |ヘ
   >     >