半年ほど前にやったのはAmazonのRestレスポンス変更に対応するための小変更だったけど、今回はもう少しまともに変更。
追加した機能は、
・Restで取得したオブジェクトをきちんとログに残す(^^;。
ログはこちら→log
・取得したオブジェクトをperlのDB_Fileを使ってBerkeleyDBにキャッシュとして格納する。
キャッシュしたDBはこちらのディレクトリ→cache/
・取得した日時をDBに格納し、表示にも【データ取得日】として明示する。
・同じくMediumサイズの商品イメージデータをキャッシュとして格納する。
キャッシュした画像こちらのディレクトリ→image/
#サイズが0のイメージデータの場合は、Amazonに登録されていないことを示します。
・キャッシュに格納されたデータ(DB)がある場合には、Amazonへのリクエストを出さない。
#log内に"Cache-hit"の行があるところがそれ。
というところ。
元からある機能は、
・Blog記事中に<MTRest asin="4761263334">と書くだけで、[図1]のように表示してくれる。
・Blog記事中に上記表示がStaticに埋め込まれるので、検索対象になる。
・Amazonにイメージデータが無いまたは気に入らない場合などに、
<MTRest asin="4761263334" img="http://hoop.euqset.org/archives/cache/image/4761263334-Large.jpg">などとURLを
指定することで、[図2]のように別のイメージデータをリンクして表示させることができる。
などです。
----------------------------------
[図1]<MTRest asin="4761263334">の出力
[図2]<MTRest asin="4761263334" img="http://hoop.euqset.org/archives/cache/image/4761263334-Large.jpg">の出力
----------------------------------
新しい版はmtrest.pl.20071013と言う名前で置いてますので、mtrest.plとrenameした後に、
<BlogRoot>/blog/plugins/mtrest.plと言う感じで置いてください。
尚、MT用のregex.pl、processtags.plおよびEnclosures.plが前提(だったはず(^^;)です。
ちなみに、なぜこのような改造をしたかというと、
・改造前のバージョンでは、毎回rebuildの度ごとにAmazonへのREST requestを出していたので
負荷が高い上に、再構築が遅くなっていた。
・Amazonでは、古い商品に関しての情報が突然消えることがある。
・消えてしまうと、再構築の際にページのあちこちに空白が生まれ、
何に付いて書いていたかわからなくなる。
などのやらしい点があったからです。
現バージョンでは、キャッシュした商品情報はそのまま利用しますが、
商品の画像データに関してはキャッシュしているだけで、Blog記事中からリンクはさせていません。
��キャッシュにリンクするような改造は、それほどめんどくさくは無いと思っています。
��ただし、画像の権利がどうなのかが問題...。
もし、使ってくれる人がいたら、コメントなどどうぞ。
��まぁ、いろいろ良いツールがあるので、いないかなぁ(^^;
Enclosures.plは前提じゃないような気がしてきた(^^;
返信削除