2008-06-18
「Amazon.co.jpのURLを整形お手伝いさん。」を公開した件
JavaScriptのブックマークレットでいいじゃん、という気持ちがしないでもないのですけれども、複数行のURLを一変に変換できるあたりが長所といえば長所かもしれません。
使い方
上記に、例えば下記のようなAmazon.co.jpのURLをぺたりと貼り付けてください。複数行あっても大丈夫です。一応文字数制限かけてあるので、あまり大量に貼り付けると処理できない場合があります。人様からお借りしているサーバーなのでご理解いただければ幸いです。
http://www.amazon.co.jp/gp/product/0471247448/ref=s9psip_c3_at2-rfc_p?pf_rd_m=AN1VRQENFRJN5&pf_rd_s=center-2&pf_rd_r=1S4XCD4HX3SCWPMZE5Y8&pf_rd_t=101&pf_rd_p=94832606&pf_rd_i=489986 http://www.amazon.co.jp/gp/product/B0000CD86X/ref=s9qpick_c3_img1-rfc_p?pf_rd_m=AN1VRQENFRJN5&pf_rd_s=center-3&pf_rd_r=1S4XCD4HX3SCWPMZE5Y8&pf_rd_t=101&pf_rd_p=74576406&pf_rd_i=489986 http://www.amazon.co.jp/gp/product/B001AMBC5E/ref=s9top_c5_img1-rfc_p?pf_rd_m=AN1VRQENFRJN5&pf_rd_s=center-5&pf_rd_r=1S4XCD4HX3SCWPMZE5Y8&pf_rd_t=101&pf_rd_p=83925906&pf_rd_i=489986 http://www.amazon.co.jp/gp/product/B0014J59FC/ref=s9newrf_c6_img1-rfc_p?pf_rd_m=AN1VRQENFRJN5&pf_rd_s=center-6&pf_rd_r=1S4XCD4HX3SCWPMZE5Y8&pf_rd_t=101&pf_rd_p=70117306&pf_rd_i=489986 http://www.amazon.co.jp/exec/obidos/ASIN/4774117986/hrkt0115311-22/ref=nosim/
cgiの反応は4種類
- 文字数制限を越えて処理できないとお返事すること
- 逆に、何も入力されてないですよとお返事すること
- アソシエイトID(EX hrkt0115311-22)を入力されたら対応した形式のURLに整形すること
- アソシエイトID欄が空欄の場合は、おそらく最短のURLに整形すること
アソシエイトIDが入力された場合 http://www.amazon.co.jp/exec/obidos/ASIN/0471247448/hrkt0115311-22/ref=nosim/ http://www.amazon.co.jp/exec/obidos/ASIN/B0000CD86X/hrkt0115311-22/ref=nosim/ http://www.amazon.co.jp/exec/obidos/ASIN/B001AMBC5E/hrkt0115311-22/ref=nosim/ http://www.amazon.co.jp/exec/obidos/ASIN/B0014J59FC/hrkt0115311-22/ref=nosim/ http://www.amazon.co.jp/exec/obidos/ASIN/4774117986/hrkt0115311-22/ref=nosim/ アソシエイトID欄が空欄の場合 http://amazon.co.jp/dp/0471247448 http://amazon.co.jp/dp/B0000CD86X http://amazon.co.jp/dp/B001AMBC5E http://amazon.co.jp/dp/B0014J59FC http://amazon.co.jp/dp/4774117986
ソースコード
無保証です。
#!/usr/local/bin/ruby require "cgi" cgi = CGI.new puts "Content-type: text/html\n\n" puts "<center>" #最大文字数の設定 maxlen = 1400 str1 = cgi.params["a1"][0] asin_url = cgi.params["a2"][0] #入力データの格納と処理 if str1 != "" and str1.size <= maxlen and asin_url != "" and asin_url.size <= maxlen puts %Q|<textarea readonly="readonly" rows="25" style="font-size: 9pt;width: 600px">| asin_url.each do |line| asin = line.slice(/[0-9A-Z]{10,13}/) puts "http://www.amazon.co.jp/exec/obidos/ASIN/#{asin}/#{str1}/ref=nosim/" end puts "</textarea><br/>" puts "上段のHTMLが、下段です。</center>" elsif str1.size <= maxlen and asin_url != "" and asin_url.size <= maxlen puts %Q|<textarea readonly="readonly" rows="25" style="font-size: 9pt;width: 600px">| asin_url.each do |line| asin = line.slice(/[0-9A-Z]{10,13}/) puts "http://amazon.co.jp/dp/#{asin}" end puts "</textarea><br/>" elsif str1.size > maxlen or asin_url.size > maxlen puts "<center>すみません。入力文字数が、最大文字数を越えています。<br/>処理できませんでした。</center>" else puts "<center>入力情報が確認できません</center>" end