2007-01-14 [長年日記]
■やっつけISBN13桁対応
えー、
なんてエントリを書いてみたものの、いざふたを開けてみれば旧ISBN表記そのまんまなASINだった。
てなわけで、ECSから取得などせずに当座は旧ISBN形式への変換で済ませてしまおう。
……むちゃくちゃ格好悪いが、
if asin.length == 13 && '9784' == asin[0, 4] && /^[0-9]+$/ =~ asin asin = asin[3, 9] sum = asin[0,1].to_i * 10 sum += asin[1,1].to_i * 9 sum += asin[2,1].to_i * 8 sum += asin[3,1].to_i * 7 sum += asin[4,1].to_i * 6 sum += asin[5,1].to_i * 5 sum += asin[6,1].to_i * 4 sum += asin[7,1].to_i * 3 sum += asin[8,1].to_i * 2 sum %= 11 if sum == 0 asin = asin + '0' elsif sum == 1 asin = asin + 'X' else asin = asin + (11 - sum).to_s end end
てな感じで、amzon.rb*1 に仕込んでしまおう。
うーむ。不細工なソースだ。
まぁいいや。
ほい。大丈夫かな?
(detail表記だと正しいASINを表示するけど、表示形式指定なしのリンクだと書いたまんまで出ちゃうんだな。まぁ、私は使わない書式だしこのまんまでもいいかしらん……)
*1 tDiary の plugin を自分用にカストマイズしたもの