#!/usr/local/bin/ruby -Ku
# require Ruby 1.8.x
require 'cgi'
require 'open-uri'
require 'rexml/document'
## Get CGI parameter
$cgi=CGI.new
amazon_asin=$cgi.params['asin'][0]
#amazon_access_key=$cgi.params['access_key'][0]
amazon_access_key='あなたのアクセスキー'
amazon_associate_id=$cgi.params['associate_id'][0]
hdr={'type'=>'text/html',
'charset'=>'UTF-8'
}
print $cgi.header(hdr)
if amazon_asin == nil or amazon_asin == '' or amazon_associate_id == nil or amazon_associate_id == ''
puts "Error: amazon_asin='#{amazon_asin}' amazon_associate_id='#{amazon_associate_id}'"
end
## Get XML from Amazon
xml = ''
open("http://webservices.amazon.co.jp/onca/xml?Service=AWSECommerceService&Operation=ItemLookup&AWSAccessKeyId=#{amazon_access_key}&AssociateTag=#{amazon_associate_id}&ItemId=#{amazon_asin}&ResponseGroup=Images,ItemAttributes,Reviews"){|f|
xml += f.read()
}
#sleep(1) #wait 1 seconds for AWS license 4.1.2
## parse XML
doc = REXML::Document.new(xml)
ve = Hash.new(nil) #variable and elements
ve = {
'title'=>'/ItemLookupResponse/Items/Item/ItemAttributes/Title',
'author'=>'/ItemLookupResponse/Items/Item/ItemAttributes/Author',
'publisher'=>'/ItemLookupResponse/Items/Item/ItemAttributes/Publisher',
'pubdate'=>'/ItemLookupResponse/Items/Item/ItemAttributes/PublicationDate',
'reldate'=>'/ItemLookupResponse/Items/Item/ItemAttributes/ReleaseDate',
'img_url'=>'/ItemLookupResponse/Items/Item/SmallImage/URL',
'img_w'=>'/ItemLookupResponse/Items/Item/SmallImage/Width',
'img_h'=>'/ItemLookupResponse/Items/Item/SmallImage/Height',
'review'=>'/ItemLookupResponse/Items/Item/CustomerReviews/Review/Summary',
'rating'=>'/ItemLookupResponse/Items/Item/CustomerReviews/AverageRating',
}
ax = Hash.new("") #amazon xml element
ve.each{|k,v|
obj = doc.elements[v]
if obj != nil
ax[k] = "#{obj.text}"
else
ax[k] = ""
end
STDERR.puts(%Q@ax[#{k}] = #{ax[k]}@)
}
if ax['pubdate'] != ''
ax['date'] = "(#{ax['pubdate'][0,7]})"
elsif ax['reldate'] != ''
ax['date'] = "(#{ax['reldate'][0,7]})"
else
ax['date'] = ''
end
if ax['review'] != ""
ax['review'] = "
「#{ax['review']}」"
else
ax['review'] = ''
end
## generate HTML
a2s_table=%Q@
| #{ax['title']} | |
| #{ax['author']} #{ax['publisher']} #{ax['date']}#{ax['review']} |
ASIN: #{amazon_asin}
#{a2s_table}
「テーブル」「テキストのみ」をクリックすると、全選択できます。
| # end of file