greasemonkey script その1

やんごとなき理由(睡眠時間超過)のためにあまり勉強が進まないRubyであるが、ちょこちょこっとはやったので、メソッドって何。くらいのイメージは何となく薄ぼんやりと朧気ながら雰囲気的なものは掴めたような掴めないようなそんな気がしないでもないとは言い切れなくもない。

以前から小耳に挟んで(何そのステキな着眼点)と思ってとりあえずどっかのamazonリレー図書館蔵書検索スクリプトを入れてみたものの、なぜか動作せず(何じゃいな!)と思いつつ放置していた、Firefoxアドオンのgreasemonkeyであるが、何となく今日、また検索してみたところ使える奴が見つかってしまった。

http://www.drk7.jp/MT/archives/001213.html
http://www.drk7.jp/MT/drk/images/070431/gremon01.jpg

おおぉう、ぐれいと。こいつは素敵だぜ。ようし、と九大図書館バージョンを作ってやろうと目論む。
以前は中身のjavascriptを見てもさっっっぱり意味がわからなかったのだが、今の俺は何と言ってもメソッドのイメージが何となく薄ぼんやりと朧気ながら雰囲気的なものは掴めたような掴めないようなそんな気がしないでもないとは言い切れなくもないくらいであるから、何となくながら処理を追う気になれるのである。javascript自体はこれっぽっちもわかんないけど、なぁに、参照先をちょちょいと弄ればいいんじゃろ。

しかし楽勝でつまづく。九大の蔵書検索システムのOPACで普通に検索しても、cgiが返す検索結果ページのURLが検索クエリを含んでいなかったのでまず困る。図書のISBNコードから検索結果ページを指定する必要がある。試行錯誤して蔵書検索したり、Googleで情報を探したりしていると

http://keijisaito.info/arc/search/cs_opac_univ.htm

ここが引っ掛かる。ほほう、じゃあ詳細検索でISBNを指定する方法さえわかれば何とかなりそうだ、と検索ページのソースを見たりして試行錯誤。何とかISBNコードで検索結果を返すページURLを特定する。じゃあ後は、最初のページのスクリプトさいたま市図書館を九大図書館に置き換えれば良いだけじゃないかHAHAHAといじる。すると「さいたま市図書館」などの日本語が全部化けている。javascriptUTF-16文字コードで書かんといかんらしい。文字コードのコンバータを探して落としてみるも、何やら使い方が良くわからない。ええい、めんどくさい、たった数文字だ。と文字コードで検索して、

(注:重いページ)
http://www.asahi-net.or.jp/~va6t-sby/unicode/Unicode_4E00.html

を参照しながら「九」「州」・・・と一文字ずつ文字コードを置換。(何やってんだろう、俺)と思わずにはいられないが、ここまで来てやめるのもムカッ腹なので続行。文字エンコードなんて大嫌い。よし、とスクリプトを読んでいると、「蔵書あり」「蔵書なし」の判定をしているところがどうも良くわからない・・・。眺めたり調べたりしてresponse.responseTextなるものをmatchメソッドで判定しているらしいと当たりをつける。しかしresponseTextって何。小一時間調べても、javascriptをマジメに勉強する気がないのでよくわからん。諦めて、さいたま市川口市その他もろもろのスクリプトと検索結果ページを眺めて、どうやら普通に検索結果ページのソースがサーバから返って来るみたいやな、と考える。それじゃあ、九大図書館の検索結果ページのソースを表示させて詳細へのリンク部分とのmatchを判定するようにすればええわけやな、これで出来上がるんじゃないかいな!と、喜び勇んで九大図書館のサイトで検索。「現在検索できません」メンテナンス時間に突入したらしい。寝るぽ。