「とある文庫の電子目録」13桁ISBNのAmazon書影反映

 ISBNが13桁になってから、とある文庫の電子目録Amazon書影を引張って来れなくなっていたのですが(だってAmazonがURLを13桁ISBNに対応してくれないんだもん!)、13桁ISBNを10桁ASINに計算し直して書影を引張って来るよう、見よう見真似でCGIを改造してみました。

 おお〜、できた。ちなみに下記が今回足したルーティン。言語はPerlです。素人なのでスマートなプログラムではないですが、自分でこういうのを作ると楽しいです。ISBNが「979-」になるまではこれで行けるはずです。


# ISBNからASINを作成
if ($isbn >= 9780000000000) {
$asin = $isbn - 9780000000000;
($asin1,$asin2,$asin3,$asin4,$asin5,$asin6,$asin7,$asin8,$asin9,$asin10) = split(//, $asin);
$asin11 = 10*($asin1) + 9*($asin2) + 8*($asin3) + 7*($asin4) +6*($asin5) +5*($asin6) +4*($asin7) +3*($asin8) +2*($asin9);
$asin10 = 11 - ($asin11 % 11);
if ($asin10 == 11) { $asin10 = 0;}
if ($asin10 == 10) { $asin10 = X;}
$asin = $asin1.$asin2.$asin3.$asin4.$asin5.$asin6.$asin7.$asin8.$asin9.$asin10;
}
else { $asin = $isbn; }