2005年04月15日 金曜日

mkdiary用のAmazon書影表示のためのスクリプト

うちの日記用にAmazon書影表示のためのスクリプトを表示させるフィルタを書いてみた。ざっくりSOAP4Rの例題通り。
内容は[ASIN:0123456789]というパターンがあると、AmazonのASIN検索を行って、書影イメージと著者名(ある場合のみ)と書名に置き換えてくれるというものです。(フィルタ動作するところまでしか試してないけど。)たとえばこんな感じ。
[asin:4906391702]
という文字列を

<div class="amazon">
  <a href="http://www.amazon.co.jp/exec/obidos/ASIN/4906391702/ref=nosim/XXXXXXXXXX-XX/">
    <img src="http://images-jp.amazon.com/images/P/4906391702.09.MZZZZZZZ.jpg" alt="やさしいEmacs‐Lisp講座" title="やさしいEmacs‐Lisp講座">
  </a><br>
  広瀬 雄二 / <a href="http://www.amazon.co.jp/exec/obidos/ASIN/4906391702/ref=nosim/XXXXXXXXXX-XX">やさしいEmacs‐Lisp講座</a>
</div>

と変換する。絵を右に寄せたり、字を変えたりって言うのはclass指定したのでCSSでなんとかなるかなと思っている。(ソースいじってもいいですけど。)
依存するrubyパッケージは、SOAPを用いて通信を行う(クエリーを出す)のでSOAP4Rパッケージと、通信自身がUTF-8で行われるのでuconvパッケージに依存。1.8.1までKconvでUnicode関連の処理ができないこととこのページを書いているサーバにインストールされているnkfが古いので、こういうことになっています。そのうち書き換えるか…多分ruby-1.8系ならSOAP4RだけインストールすればOK。ruby-1.6系にインストールするのは値と大変。僕はもう使ってないので自分で調べてください。
uconvとkconvを併用している理由は、rubyのiconvパッケージのインストールに失敗していることと、うちの日記はISO 2022-JPであるためuconvとkconvを併用せざる得ないため。(SOAP4Rを使ったやりとりはUTF-8だし)しています。なんか大いなる無駄な気がしますが、nkfのラッパーのkconvとかnkfだとUTF-8が使えないし、uconvはEUC−JPとCP932(WindowsのShift-JIS亜種)とUCS-4とUTF-16とUTF-8しか使えない。微妙にEUC-JPしかかぶらないし…
使用上の注意ですが、これを使うにはAmazonのアソシエイト会員(たぶん必須じゃない)とデベロッパー登録をする必要があるので、注意してください。

宮川 達彦, 伊藤 直也 / Blog Hacks

オライリーの大好評(?)なシリーズ本「Hack」シリーズの1冊。最近日記という時間を軸にした記述方式とblogという記事を軸にした記述方式と2本立てというのもいいかもしれないと思い始めていて、いろいろ調査中。多分自分がいじれそうな隙間があるものを選択することになりそう。
内容のレベルはblogや日記ツールを使い出した人から、ツールを作り出す入り口にいる人までか? 多分自分でツールを書こうという酔狂な人にはおそらくこの本は役立たない。(Hackシリーズ全部がそうなのだが…) Know-Howだけじゃなくて、もうひとつ向こう側を知りたいことがよくあるのだが、この手の本が多くなってしまったなあ。