« 積ん読 | Main | Amazon ECS:おまけ »

Amazon ECS

本棚.orgを使ってみて、ISBNを入れただけでびょんびょん本の表紙が並ぶのを見て、感心。

ここで、本の感想を書くときは、いちいち手でAmazonのサイトからにアクセスして、画像のURLを調べてる。結構面倒。ココログも、この手のPlug-inを入れてくれたらいいのに・・・って、プロなんだからそのぐらいのフロントエンド書いちゃえばいいのだ

・・・とつぶやいてたら、nacが

「どーせなら、ASINをうまーく使えるようにクイックハックしてください」

なるほど

というわけで、いじってみる。tDiaryのAmazonプラグインをダウンロードして眺めてみると・・・なるほど。ちょちょいといじってみる。昼休みの間に画像のURLが取れるとこまではいったw

というわけで、整理してこんな感じ

#!/usr/bin/env ruby

require 'open-uri'
require 'timeout'
require 'rexml/document'
require 'getopts'

@amazon_access_key_id = '1Z2WBVE13037BDJ4YRG2'
@amazon_require_version = '2005-10-13'
@amazon_ecs_url = 'http://webservices.amazon.co.jp/onca/xml'

getopts("ml")

@img_size = $OPT_l ? "Large" : "Medium"
@img_style = 'margin:5px;float:left;'

def amazon_call_ecs(asin)
  url =  @amazon_ecs_url.dup
  url << "?Service=AWSECommerceService"
  url << "&AWSAccessKeyId=#{@amazon_access_key_id}"
  url << "&Operation=ItemLookup"
  url << "&ItemId=#{asin}"
  url << "&ResponseGroup=Medium"
  url << "&Version=#{@amazon_require_version}"

  timeout(10) do
    open(url) {|f| f.read}
  end
end

def amazon_get(asin)
  asin.strip!
  begin
    xml =  amazon_call_ecs( asin )
    doc = REXML::Document::new( xml ).root
    item = doc.elements.to_a( '*/Item' )[0]
  rescue
    print "ERR!"
  end
end

def mk_html(item)
  url = item.elements["DetailPageURL"].text
  img = item.elements[@img_size+"Image"]
  src = img.elements["URL"].text
  height = img.elements["Height"].text
  width = img.elements["Width"].text

  html =  %|<a href="#{url}" >|
  html += %|<img src="#{src}" height="#{height}" |
  html += %|width="#{width}" style="#{@img_style}" /></a>|
end

print mk_html(amazon_get(ARGV[0]))

実行すると、こんな感じ

/t$ asin.rb 4757141297
<a href="http://www.amazon.co.jp/exec/obidos/redirect?tag=ws%26link_code=xm2%26c
amp=2025%26creative=165953%26path=http://www.amazon.co.jp/gp/redirect.html%253fA
SIN=4757141297%2526tag=ws%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526locati
on=/o/ASIN/4757141297%25253FSubscriptionId=1Z2WBVE13037BDJ4YRG2" ><img src="http
://images.amazon.com/images/P/4757141297.01._SCMZZZZZZZ_.jpg" height="160" width
="111" style="margin:5px;float:left;" /></a>
/t$

うーん、便利じゃないか

|
|

« 積ん読 | Main | Amazon ECS:おまけ »

パソコン・インターネット」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/47905/8886658

Listed below are links to weblogs that reference Amazon ECS:

« 積ん読 | Main | Amazon ECS:おまけ »