[vimperator]multi_requester.js で天気予報をみる!(extractLink) - suVeneのアレ

[vimperator]multi_requester.js で天気予報をみる!(extractLink)

multi_requester.js で天気予報とか見たいなーとか考えてて、

Yahoo!天気情報 はてなブックマーク数

とかで郵便番号か住所で検索すればよさそうだと考えたのだけど、これって検索してもいきなり1箇所が特定されるわけではなくて、1クッション挟む状態になる。

検索検索

こーやって検索すると。

結果

こーなる。

ちなみに、実際の「ピンポイント天気」なる目的ページは郵便番号とかで置換可能かと思いきや、地域・地区などが URL の途中で入ってきて、どっかに変換データかロジックでもない限り検索してみないとわからない。

なので、SITEINFO に extractLink いう属性を追加して、そこに XPath を与えることで、リクエスト結果を元に再度リクエストする仕組みを作った。実際の定義はこんな感じ。

name:           'weather-yahoo',
description:    'Yahoo!天気情報',
url:            'http://search.weather.yahoo.co.jp/bin/search?pref=all&p=%s',
xpath:          'id("cat-pass") | id("yjw_pinpoint_today") | id("yjw_pinpoint_tomorrow") | id("yjw_week")',
srcEncode:      'EUC-JP',
extractLink:    '//table[@class="yjw_table3"]/descendant::a[1]'

これで一旦検索した後で、extractLink からのリンクを辿り、取得した結果を xpath で引っ張るという仕組みになる。Plagger の TruePermalink 的なものか、Autopagerize の nextLink みたいなものか。

これで、以下のように郵便番号とか市区町村名で検索すると

20081201_4.jpg

こんな感じで結果が出力される。

バッファ出力

後は、.vimperatorrc とかで

javascript <<EOM
liberator.globalVariables.multi_requester_mappings = [
[',mw', 'weather-yahoo', '', '5300001'], // keymap, subcommand, bang, args
];
EOM

みたいな感じで定義しとくと、いつでも特定の天気予報が。

しかし、ここで一つ問題が。しかも大きな!

2.0pre だと、Yahoo のページ(というか EUC-JP のページ) だと、正常に出力されるのに、それ以外のページで出力しようとしてもバッファが HTML を解釈してくれない!!! 1.2 だとうまくいくのに。なんでだろー。

つーか、実はいうと、いちいち検索してリンク取得して再取得みたいなことしなくても、直接天気のページにリンクする SITEINFO を .vimperatorrc に書いてマップしときゃ、手っ取り早いわけだが。

javascript <<EOM
liberator.globalVariables.multi_requester_siteinfo = [
{
name:           'weather-yahoo-oosaka',
description:    'weather-yahoo-oosaka',
url:            'http://weather.yahoo.co.jp/weather/jp/27/6200/27127/5300001.html',
xpath:          'id("cat-pass") | id("yjw_pinpoint_today") | id("yjw_pinpoint_tomorrow") | id("yjw_week")',
srcEncode:      'EUC-JP'
},
];
liberator.globalVariables.multi_requester_mappings = [
[',mw', 'weather-yahoo-oosaka', '', 'dummy'],
];
EOM

ま、extaractLink 追加したよってことで。

追記 2008/12/07 23:37

ver.0.4.1 で 2.0pre も対応した。Changeset 25714 – CodeRepos::Share ? Trac

Links

suVeneのあれ: [vimperator]リクエスト結果をバッファ出力(muilti_requester.js) はてなブックマーク数
CodeRepos::Share – Trac – multi_requester.js (for vimperator ver. 1.2) はてなブックマーク数
CodeRepos::Share – Trac – multi_requester.js (for vimperator ver. 2.0pre) はてなブックマーク数
アイテム – データベース: Multi Requester – wedata はてなブックマーク数

スポンサーリンク
スポンサーリンク

コメント

  1. suVene より:

    更新した > [vimperator]multi_requester.js で天気予報をみる!(extractLink) http://zeromemory.sblo.jp/article/23694574.html

  2. bsiyo より:

    fav: [vimperator]multi_requester.js で天気予報をみる!(extractLink) – suVeneのアレ : http://bit.ly/36x7n

  3. ふみすけ より:

    Browsing: [vimperator]multi_requester.js で天気予報をみる!(extractLink) – suVeneのアレ – http://bit.ly/36x7n

コメントをどうぞ

メールアドレスが公開されることはありません。