トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

BugTrack-plugin/104

ページの作成や編集にはユーザ登録が必要です。

amazonプラグインの改造版。画像取得後添付ファイル化して表示する amazon2と、画像存在確認結果をキャッシュして無駄な通信を減らしたamazon3

  • 投稿者: gyo
  • カテゴリ: 新規
  • 優先度: 低
  • 状態: 提案
  • 日時: 2004年03月20日 01時36分21秒

 内容

  amazon2 プラグイン

標準添付されているamazon プラグインの改造版。画像取得後添付ファイル化して表示します。

指定した書籍の書影をamazonから取得して表示し、amazonの書評ページへリンクをはります。

という amazonプラグインなんですが、使用しているページを表示するたびに画像を取得しにいくくせに、それを捨てちゃってて重くなりがちなので、取得した画像を添付ファイル化してしまい、2度目以降は添付ファイルを表示するように改造しました。

もしamazonのほうで画像が差し替わっていたりしても、更新したりすることはありません。画像を更新したければ、添付ファイルを削除すれば再描画時に自動的に画像ファイルを再取得します。自分で用意した画像を、同名で添付ファイルとしてアップロードして差し替えてもいいかもしれません。

  amazon3 プラグイン

ここで Kinsan さんより頂いたコメントに触発されて、勢いで作ってみました。ソースを見るとわかるんですが、ちょこっといぢると、オリジナル amazon にも amazon2 にもできるようにはなっています。でも FreeStyleWiki プラグインの仕様で、「コメントとして埋め込まれる形式になっているプラグインドキュメントを、1つのファイルに複数詰め込んでおいて、呼び出された名前か何かで切り替える」なんていう気の利いたことができないので、amazon2 とは別物としてリリースしてみます。

オリジナルのamazon プラグインが毎回実行している amazon サーバからの画像取得を初回の1度のみにし、確認結果をキャッシュに残すことで無駄な通信をなくしました。amazon2 のように画像そのものをサーバに残したりはせず、オリジナルの amazon プラグイン同様、amazon サーバの画像を参照するようなリンクを生成します。

ページが表示される速度やサーバと外部サーバの通信量は amazon より、サーバパフォーマンス的には amazon2 よりこちらの方が優れているとおもいます。

  共通の特徴

zedosho さんの amazon2 に対する修正を amazon3 にも適用して、どちらも同様な効果を出すようにしました。また、リンク画像の境界線を表示しないものがデフォルトとなるようにし、境界線を出すオプションを追加しました。今日以前の版には、ソース中に使用されない無駄な部分が多く残っているので、それぞれ独自のものだけになるように掃除しました。(2004-06-23)

div プラグインと併用することで、画像の横へ後に続くコンテンツが回り込むようなレイアウトが可能となるオプションを追加してみました。(2004-03-25)

画像を添付ファイル化してそれを表示する機能が amazon2、画像の存在確認結果をキャッシュ化して無駄な通信をなくす機能が amazon3 のメイン機能で、他にデフォルトではリンク画像の境界線をなしにして必要なら有無をオプションで選択可能にする点、リンク先を開くとき別窓にするかどうかは設定に従う動作、それから何が何でも直で書評ページにリンク張る[1]、さらに画像のレイアウトを変更できる以外は amazonプラグインと同じです。気に入ったら使ってみてください。

  amazon.co.jp のライセンスを個人の責任において遵守してください

最初に、自己責任でご使用ください。ということで。当方ではライセンス等をちゃんと確認したわけじゃないので、気になる方は amazon2 プラグインを使用しない方が無難です。万一何らかのトラブルが発生したとしても当方では責任取れませんので。Wiki のプラグインなので、商業的利用に使えるとは考えてないんですが、このプラグインが取得し保存する画像ファイルの著作権は Amazon.co.jp にありますので、そこんとこは常識的にご判断ください。

アマゾンジャパンのライセンスを遵守するため、amazon2 プラグインを継続使用される場合、Amazon.co.jp が提供しているアソシエイト・プログラム」にサインアップして登録してください。その際、規約等を忘れずにご確認ください。ちょっと調べた範囲では、アソシエイト・プログラム参加後に提供されるリンク作成機能の「個別商品リンク」から、リンクを作成したときに表示される記述に、自サイトに画像をダウンロードして利用するように書いてあります。この記述をもって、このプラグインが存在できる根拠と考えます。

簡単に考えて作ったのに、面倒なことになってしまいましたよ。。。amazon3 については、オリジナル amazon プラグインと動作上は同じなので、ライセンス等はそちらに従ってください。といって逃げる。。。

  ダウンロードとインストール

極力何もしないでも他に影響を与えずにインストールしてもらいたいので、amazon2 もamazon3 と一緒に入っています。嫌かもしれませんが我慢してくださいね。これをダウンロード後、解凍してできた amazon ディレクトリを plugin ディレクトリに上書きでコピーするか、解凍してできた amazon ディレクトリの中にあるファイルを plugin/amazon ディレクトリにコピー(Install.pm のみ上書き)してください。その後、プラグイン管理画面で「amazon」を有効にします。

  使い方

amazon2 を例にしてますが、amazon3 も全く同じ書き方をします。

{{amazon2 asin}}
{{amazon2 asin,[left|right]}}
本の説明とかインラインプラグインとかを書くと画像の横に配置される
{{div style,clear:both,}}
{{amazon3 asin,[left|right][,border]}}

asin は本であれば ISBN コードです。たぶん本以外のものも取り扱うことができますが確認してないので、だめなら諦めてください。念のため事前に amazon.co.jp で確認してください。

引数に「right」か「left」(省略可)を設定することで、画像の横へ後に続くコンテンツが回り込むようなレイアウトが可能となるオプションを追加してみました。単独で回り込みを止める手段がなかったので、このオプションでレイアウトを変えたい場合は、div プラグインをインストールして有効にしてから、回り込みを止めたい箇所に次のように記述してください。

{{div style,clear:both,}}

引数に「border」(省略可)を指定すると、リンク画像の周囲に境界線を表示させます。最近こんなリンクはめったに見かけないので、境界線なしをデフォルトにしました。

全てのオプションを指定しても問題なく動作しますが、right と left は最後に指定された方が有効になります。右寄せか左寄せのどちらかを指定するようにしてください。

  amazon3 のみカスタマイズ?可

35行目の「1」を「0」に書き換えることで、画像が存在しているという前提で amazon サーバへの画像確認をさせないようにできます。

	$self->{check} = 1;

本当に画像が存在しない場合、1x1 ピクセルの透明画像にリンクが張られてしまい、実用にならないつーか意味あんのか微妙なとこですが。これの対処法として、log ディレクトリに amazon3.cache というキャッシュファイルが(webサーバのオーナーアカウントの持ち物として自動)生成されるので、これの「ASINコード=1」の部分を「ASINコード=0」に編集してやることで、書影画像がなくて 1x1 になってしまった画像を「画像なし」画像にしてやることができます。

  動作サンプル

またしても遅遅なうちのサーバにて、サンプル例を絶賛後悔中。amazon2 はこちら。。amazon3 はこちら。もうなんと言ってもこのサーバ自体が遅いので、wiki.cgi 経由だから画像表示も更に遅いんです。それなりなサーバだと amazon プラグインより早く表示されるのですが。うちでは2回目以降の amazon3 が一番早く表示されるようです。

 コメント

  • Amazonのライセンスだいじょうぶかなぁって思うんですが、いかがでしょう? - 紅猫 (2004年03月20日 02時32分39秒)
  • 少なくともWebサービスではアウト(情報の24時間以上のキャッシュは不可)に見えます - 紅猫 (2004年03月20日 02時33分19秒)
  • アソシエイトではいかなるコンテンツも再頒布できない、となってますね - 紅猫 (2004年03月20日 02時35分40秒)
  • 気にしているのは書影イメージです。 - 紅猫 (2004年03月20日 02時39分15秒)
  • 上記のどちらにも該当しない場合は規約がすぐには見つかりませんでしたが・・・ - 紅猫 (2004年03月20日 02時39分46秒)
  • 言葉が足りないかも。書影イメージを自分のサイト側に保存している点がライセンス違反にならないかなということでした。 - 紅猫 (2004年03月20日 02時40分46秒)
  • どうもアソシエイト・プログラムに参加しないと、画像を自分のサイトに置くような話は書いてないですね。 - gyo (2004年03月20日 10時35分47秒)
  • ライセンスについて追記してみました。ご指摘ありがとうございます。 - gyo (2004年03月20日 11時27分55秒)
  • 書き直して責任逃れすることにしました。。。いろいろ面倒だったんですねぇ - gyo (2004年03月20日 14時09分44秒)
  • div プラグインと併用することで、画像の横へ後に続くコンテンツが回り込むようなレイアウトが可能となるオプションを追加してみました。添付ファイルを更新しています。 - gyo (2004年03月25日 11時18分24秒)
  • スタイルの指定とかよく解ってません。他にいい方法があったら教えてください。 - gyo (2004年03月25日 11時28分13秒)
  • amazonプラグインは、画像ファイルをamazonのサイトから取ってくるようになっていますので、自サイト内にキャッシュする意義が見えないのですが、私の理解不足でしょうか。 - Kinsan (2004年03月26日 15時28分56秒)
  • 説明文の最初の方にも書いたんですが、プラグインが毎回画像の存在を確認するために amazon へデータを取得しにいっているので、その処理が無駄だと思って作ったのです。が、添付ファイルをダウンロードさせる処理を考えると確かにたいした意味はないのかもしれませんね - gyo (2004年03月26日 16時06分39秒)
  • 理解しました。キャッシュはせずに、2回目以降は存在の確認を止めてしまうのが良さそうですね。それと、perlの機能の制限やサーバー負荷の制限などのサイトの制限のためにamazonへのサーバーからのアクセスが出来ないまたはしたくない場合もあるでしょうから、最初からamazonへのアクセスをしないという選択肢もあるとうれしい人がいそうですね。 - Kinsan (2004年03月26日 20時36分14秒)
  • Kinsan さんの提案を受けて、amazon3 つーのを作ってみました。新規で立てる程のもんでもないので、ページを書き換えてここで公開させてもらいます。amazon3.zip(389) が今回のアップ分で、これに amazon2 も入ってます。 - gyo (2004年04月20日 00時43分53秒)
  • FSWiki3.5.4 でのトップページ名自由化に対応させたものを同じ名前でアップしました。それ以外変更してないのですが、3.5.4 使うのなら上書きでアップデートしてくださいね。 - gyo (2004年05月12日 20時54分29秒)
  • CVS版で洋書の書影表示対応されていたので、パクってみました。amazon3_20040614.zip(386)です。 - gyo (2004年06月14日 11時22分44秒)
  • Amazon2プラグインですが、洋CD、和CDの画像に対応できるようにロジックを変更しました。amazon2_20040622.lzh(386)です。〜.01.〜または〜.09.〜のURLでの画像取得に失敗すると、それぞれ〜.09.〜、〜.01.〜で再度画像を取得しに行くロジックにしました。また、画像の枠をつけないようにソース先頭で指定できるようにしました。あと、アフェリエイト用にリンクURLを/ref=nosim指定するようにしました。 - zedosho (2004年06月22日 07時54分22秒)
  • 改良ありがとうございます。FrontPage の判断部分が 3.5.4 での修正前のものになっていたので、こちらで直して差し替えちゃいました。あしからず - gyo (2004年06月22日 14時37分39秒)
  • 折角なので、そのうち amazon3 にも反映させて更新しようと思います。お待ちください - gyo (2004年06月22日 14時39分01秒)
  • すみません、うっかりしてました。対応ありがとうございます。 - zedosho (2004年06月22日 15時52分53秒)
  • zedosho さんの修正を amazon3 にも適用し、画像のボーダーラインなしをデフォルトにしました。amazon3_20040623.zip(449) です。 - gyo (2004年06月23日 18時28分26秒)
  • Amazon3.pmで2004.06.22のzedoshoさんの修正で画像のサイズが小さすぎる場合、もう一方の画像を取得とありますが、最初にできた$image_urlで示される画像が小さすぎる場合、このロジックだと初回のみ大きいほうの画像を取得し、以後は小さいほうの画像しか表示されないのではないでしょうか。2004/7/13 10:30現在 ASIN:B0000APYMZで確認できると思います。 - TAKE^2 (2004年07月13日 10時28分56秒)
  • ホントですねぇ。とりあえず対策してみたので、Amazon3_20040713.pm(413) を amazon3.pm と差し替えて時間のある時にでも確認してみて下さい。若干 amazon3 のキャッシュの仕様を変更したので、差し替えたらキャッシュを削除してから確認して下さい。 - gyo (2004年07月13日 11時26分16秒)
  • すばやい対応ありがとうございます。早速試してみたところ問題ないようです。ありがとうございました。 - TAKE^2 (2004年07月13日 12時28分31秒)
  • どうしても画像が表示されません。amazon1と3は四角の中にno imageの文字、amazon2では赤い×マークがつきます。クリックすればちゃんとIDつきのページにいけるのですが・・なにか原因として考えられることはありますでしょうか? - trio (2004年10月02日 12時13分53秒)
  • 他の方のwikiでは表示されている画像です。 - trio (2004年10月02日 12時14分46秒)
  • ISBNで指定した方は、画像を表示してくれるのですが。ASINで指定した方は、09でないといけないところを01として表示してくれません。何が原因なのでしょうか? - 薫 (2004年11月07日 16時41分57秒)
  • すいません、キャッシュの修正の仕方を間違えてました。お騒がせしてすいません(→o←;;; - 薫 (2004年11月07日 16時47分28秒)
お名前: コメント:
  • [1]amazon プラグインが生成する URL だと、2004-03-16 時点での amazon は「同じテーマの商品を探す」ページを見せてくれて、書評ページにならないのです
Amazon3_20040713.pm amazon2.zip amazon2_20040622.lzh amazon3.zip amazon3_20040614.zip amazon3_20040623.zip amazon_20040614.zip

最終更新時間:2008年01月27日 07時58分42秒