観たDVDをメモしているのですが、毎回手作業でTSUTAYAサイトの該当タイトルにリンク張ったりしてたんですが、面倒だし、そろそろアマゾンのウェブサービスあたりも使ってみたいと思っていたので、楽な方法を探していました。ブックマークレットを使っている人が多いような感じでしたが、やっぱり自前で何とかしようかなと。
drifting blogさんのAmazon XSLT for MTのエントリを見ていて、方針が決まったので、早速作成。
![]()
ということで、こんなボタンをMTの管理画面に追加。
edit_entry.tmplに以下のfunctionを追加。
if (!document.selection) return;
var str = document.selection.createRange().text;
if (!str) return;
var asin = prompt(‘<MT_TRANS phrase=”Enter ASIN:”>’, ”);
var devt = ‘D25G7SO0GXQX1Y’;
var associate = ‘trivialblog-22’;
var strwrk = ‘<iframe src=http://xml.amazon.co.jp/onca/xml3?dev-t=’ + devt;
strwrk += ‘&type=lite&page=1&locale=jp&’;
strwrk += ‘f=http://mkuma.oops.jp/AmazonXSLT.xslt’;
strwrk += ‘&t=’ + associate + ‘&AsinSearch=’ + asin;
strwrk += ‘ width=350 height=100 scrolling=no frameborder=0 allowtransparency=true >’ + str + ‘</iframe>’;
if (asin != null)
document.selection.createRange().text = strwrk;
}
変数のdevtにはディベロッパーズ・トークン、associateにはアソシエイトIDを設定します。modeは、設定しなくてもいいかもしれませんが、多分私の場合DVDのリンクにしか使わないので、とりあえずdvd-jpを設定。(5/11更新:ユニークなASINコードを指定しているのでモード設定はしないことにしました。)
このfunctionをボタンに関連付けて、とりあえずMTを直接いじる作業は終了。(編集位置などは、過去のエントリを参考にしてください。)
次にテンプレートを追加。MTの「Templateの編集」画面で、インデックステンプレートを2つ新規に作成します。とりあえず、名前を「AmazonXSLT.xslt」と「amazon.css」にしておきます。
(AmazonXSLT.xslt)
<xsl:stylesheet
xmlns:xsl=”http://www.w3.org/1999/XSL/Transform”
version=”1.0″>
<xsl:output method=”html”/>
<xsl:template match=”/”>
<html>
<head>
<title>Our recommendations</title>
<link rel=”stylesheet” href=”<$MTBlogURL$>amazon.css” type=”text/css” />
</head>
<body>
<xsl:apply-templates select=”ProductInfo/Details”/>
</body>
</html>
</xsl:template>
<xsl:template match=”Details”>
<table border=”0″ width=”340″ cellpadding=”0″>
<tr>
<td rowspan=”3″ width=”100″>
<a target=”_blank”>
<xsl:attribute name=”href”>
<xsl:value-of select=”@url” />
</xsl:attribute>
<img>
<xsl:attribute name=”src”>
<xsl:value-of select=”ImageUrlSmall” />
</xsl:attribute>
<xsl:attribute name=”border”>0</xsl:attribute>
</img>
</a>
</td>
<td>
<a target=”_blank”>
<xsl:attribute name=”href”>
<xsl:value-of select=”@url” />
</xsl:attribute>
<xsl:value-of select=”ProductName”/>
</a>
</td>
</tr>
<tr>
<td>
<b>
<xsl:text>発売日: </xsl:text>
</b>
<xsl:value-of select=”ReleaseDate”/>
</td>
</tr>
<tr>
<td>
<xsl:call-template name=”OurPrice”>
<xsl:with-param name=”OurPrice” select=”substring(OurPrice, 2)”/>
<xsl:with-param name=”ListPrice” select=”substring(ListPrice, 2)”/>
</xsl:call-template>
</td>
</tr>
</table>
</xsl:template>
<xsl:template name=”OurPrice”>
<xsl:param name=”OurPrice”/>
<xsl:param name=”ListPrice”/>
<b>価格: ¥</b>
<xsl:value-of select=”$OurPrice”/>
</xsl:template>
</xsl:stylesheet>
Amazon Web ServiceのSDKに含まれていたテンプレートから余分なところをカットしただけのものなので、お好みで変更してください。(5/11更新:定価の表示部分と、不要なテンプレートをコールしている部分を削除しました。)
(amazon.css)
margin:0px 0px 0px 0px;
background:#2B2B2B;
font-family: ”Osaka”,verdana ,arial ,sans-serif;
font-size:8px;
color:#EEE;
font-weight:normal;
}
B { color:#FFF;font-size:10px;font-weight:bold;}
TD { font-size:8px;}
これもタダのスタイルシートなので、適当に。
これらを保存して再構築を実行すれば作業完了。
使い方は、アマゾンのサイトで対象となる商品のASINコードを調べておきます。下の例では24DVD BOXのASINコードは「B0000AOD5H」。
この映画はなんたらかんたら・・・。
エントリに文章を書き込んだら、タイトル部分を選択状態にしてアマゾンボタンをポチっと押します。
ダイアログが表示されて「Enter ASIN:」と表示されますので、そこにASINコードを入力。OKボタンを押すと、エントリがこのように書き換わります。
locale=jp&f=http://mkuma.oops.jp/AmazonXSLT.xslt&
t=trivialblog-22&AsinSearch=B0000AOD5H&width=350 height=100 scrolling=no frameborder=0 allowtransparency=true>24 -TWENTY FOUR -</iframe>
この映画はなんたらかんたら・・・。
これを保存すると
この映画はなんたらかんたら・・・。
こうなります。
商品画像が商品名をクリックすると、アマゾンのサイトにアソシエイトIDを引き継いで別ウィンドウに商品画面が開きます。
iframeに allowtransparency=trueが付けたほうが、勝手が良いのです。ということで、JavaScriptの部分を若干修正。


コメント
Amazonアソシエイト XSLT(簡易プログラム版)
最近、Amazonアソシエイトへのリンクが面倒になってきました。 普通にリンク作成ページまで行っていたのですが、もっと楽に出来ないものかと思いプログラムを書いてみました。 ただ、満足にWebKitを見ていないので、拾ってきた物を組み合わせて作っています。 将来的には…
24 season2
24season2 [Amazon] やっと見終わりました。前作よりは楽しめたかも。微妙に24時間にこだわりすぎてる気もしますが、タイトルどおりなのでしょうがないのでしょう。 予断ですが、↑のAmazonアソシエイトなんですが、Trivial BLOGさんを参考にしています。……
Amazonアソシエイト用ボタン
▽Trivial BLOG. – Amazon Web Serviceボタン アマゾンアソシエイトに登録を申請したので、メモっとく…
Amazon XSLT
AmazonのXSLTを使ったインタラクティブなやつ。 見かけがDrk7jpみたいなものをオリジナルで作りたかった。 サイトの記事で表示、みたいなことは出来ないけどね!! 遂に出来ました。今日5時間くらいかかったから合計8時間? 疲れました。 とても参考にさせてもらったサイ…