休み4日目

 昨年の4月からhontoでの本の購入はポイントがほとんど付かなくなったのでヨドバシカメラをもっぱら使っています。だいたいのコミックが発売日前日に発送されてメール便指定で2日かかって到着するので、発売日発送のhontoより確実に早く手に入るところなどありがたく使わせてもらっています。
 しかし不満がないわけではなくて、やっぱり書籍の専門店でないので特に新刊の扱いに難があるというか確定が遅いです。アマゾンなんかでは出るという情報だけで商品ページが作成されてだいぶ前から予約可能な状態になるのですが、ヨドバシカメラは結構遅め。自分の場合新刊リストが出揃ったところで注文も入れておきたいのですがヨドバシカメラでは予約できないものも多いです。そのため、日々ヨドバシカメラのページから新刊を検索して予約可能になっているか確認していました。検索していて気づいたのですが、だいたい夜の9時頃に情報が更新されて、作者名で検索するよりは書籍名で検索するほうがヒットする確率が高いようです。
 とまあ、購入予定リストを開いて、書名をヨドバシカメラで検索して、予約可能状態になっていたら予約して、リストから消す。という作業を毎晩するわけです。もうちょっとスマートにできないもかと考えて、まずは購入予定リストからヨドバシカメラの検索URLを作成するperlスクリプトを作ってみました。

#!/usr/bin/perl
use strict;
use warnings;

while (<>) {
    /^.*?(.+).*?$/;
    print "http://www.yodobashi.com/category/81001/?sorttyp=RELEASE_DATE_DESC&word=$1\n";
}

 これで

8/4 尾田栄一郎ONE PIECE」86巻
8/4 四谷啓太郎悪魔のメムメムちゃん」3巻
8/9 諫山創進撃の巨人」23巻

というような新刊スケジュールリストから

http://www.yodobashi.com/category/81001/?sorttyp=RELEASE_DATE_DESC&word=ONE PIECE
http://www.yodobashi.com/category/81001/?sorttyp=RELEASE_DATE_DESC&word=悪魔のメムメムちゃん
http://www.yodobashi.com/category/81001/?sorttyp=RELEASE_DATE_DESC&word=進撃の巨人

という具合に書籍カテゴリーの新しい順検索のURLリストが表示されます。このリストをFirefoxで開くのですが、Multi-Link Paste and Goというアドオンがありまして、クリップボードに含まれる各URLを新しいタブとして開くものです。上記スクリプトの結果をコピーしてFirefox上でshift+command+vで貼り付けるとリンクの数だけタブを開いてくれます。あとはその状態をブックマークして次からはブックマークで一気に検索できるようになりました。
 アドオンを使わなくてもFirefoxコマンドラインで-new-tabオプションなどで複数URLをつなげれば新しいタブを開いて起動できるようなんですけど、URLに含まれる文字を考慮する必要があるのと複数で長くなるとシェルの最大文字はどうなのかと配慮がいろいろと必要なのでMulti-Link Paste and Goを使うのがスマートと判断しました。
 この方法の考えられる問題点としてはタブで一気にヨドバシカメラにアクセスするのでヨドバシカメラ側の負荷が高くなることですが、これはまあ今時のFirefoxがよきに計らってくれるでしょう。あと書名にURLに使えないようなメタ文字が含まれる場合とか考慮していませんけど、だいたいMulti-Link Paste and Goがちゃんと対処してくれているようです。他の問題点は今後使って都度対応しようと思います。

追記

 アドオンのMulti-Link Paste and GoがFirefox Quantumに対応していないため代わりにMultiple Paste and Go Buttonを使用することにしました。ただこのアドオンでは上記のように生の日本語が含まれているとうまく動作しないため、

use URI::Escape;

を追加した上でuri_escape関数で出力するようにしています。