« Text::Sukerokuについて | メイン | mt-sukeroku2 β2公開 »

mt-sukeroku2 おまけ機能

拙作AAA(Amazon Associate Assistant)などで実現していたJavaScriptによる非同期のAmazon.co.jpへの詳細情報リンクを生成するCGIをおまけとしてβ2より添付します。

なお、レンダリング結果自体はASIN:xxxx:detail記法の結果と同じです・・・というか、同じ処理を流用しています。

[asin:4097275119:async]

と記述すると、このように展開されます。

実際の中身はこのようになっています。

<script src="/blog/asin_js.cgi?asin=4097275119">
</script>

あくまでも処理発生の非同期化をしているため、アクセス数が多いとその都度Amazon Web Servicesをつかうことになり、サーバ負荷増大に繋がります。

File::FileCacheモジュールが使用可能なサーバではAmazonへの問い合わせを一定時間プールできるのでその辺も活用していただきたいと思います†1

尚、非同期なので、発売前→発売後→品切れ→再入荷などのタイミングで表示内容が随時(ほぼ)リアルタイムに変わります。これが一番便利なところかもしれませんね。

async記法の出力内容自体は(現在)Text::Sukeroku::Kiseruに指定する形になります。

sub amazon_async_tmpl{
  return << "END_OF_TMPL";
<script src="/blog/asin_js.cgi?asin=<TMPL_VAR NAME="Asin">">
</script>
END_OF_TMPL
}

拙作のCGIよりももっと高機能・ハイクオリティの外部サービスをお使いの場合はこの辺を書き換えていただいたらよいかと。

あと、出力時のエンコーディングも指定できます。

asin_js.cgi?asin=ASINコード&enc=文字コード

文字コードは以下のものを指定できます(指定するのは左側の文字列です)

sjis
Shift_JIS
jis
JIS(ISO-2022-JP)
euc
EUC-JP
utf8
UTF-8

EUC-JPで出力されているサイトの場合、次のようなカタチとなります。

sub amazon_async_tmpl{
  return << "END_OF_TMPL";
<script src="/blog/asin_js.cgi?asin=<TMPL_VAR NAME="Asin">&enc=euc">
</script>
END_OF_TMPL
}

ちなみにリファラのチェックなど厳格なことはやってません。

外からアクセスされてもアソシエイトIDは自分のものなので、勝手にやってちょーだいというスタンスでよいかと思います(笑)

  • †1: このサーバ自体はFile::FileCache入ってないのです…。負荷が結構かかりますです orz

トラックバック

このエントリーのトラックバックURL:
http://hsj.jp/blog/mt-tb.cgi/1225

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2005年06月25日 20:47に投稿されたエントリーのページです。

ひとつ前の投稿は「Text::Sukerokuについて」です。

次の投稿は「mt-sukeroku2 β2公開」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type