日記/2009-7-30
GoogleImage プラグイン
「電気グルーヴと電人ザボーガーと完全変形」のページに、ピエール瀧が電人ザボーガーになってる画像を表示するために、当初はYahooImageSearch プラグインを使っていたのですが、なぜかあっという間に表示されなくなってしまいました。
そこで、Yahooの代わりにGoogleの同じようなAPI(Google AJAX Search APIの画像検索のAPI)を使って画像検索の結果を表示する、FreeStyleWiki用のプラグインを作ってみました。
インストールは以下の手順で進めてください。
JSON::Syckのインストール
このプラグインでは、JSONからPerlのデータ構造への変換にJSON::Syckを使っていますので、これをインストールします。このモジュールのインストールにはコンパイルを伴うのですが、本サイトが運用されているさくらインターネットのサーバーの場合、AmazonSearch プラグインのProduct Advertising API対応のページでも紹介した、こちらのページに書かれているとおりの手順で準備を整えれば、後は簡単。
CPANシェルから、
cpan[1]> install JSON::Syck
とやればOK。
Encode::JavaScript::UCSのインストール
同じように、モジュールEncode::JavaScript::UCSをインストールします。
cpan[1]> install Encode::JavaScript::UCS
でOK。
こちらはPurePerlのモジュールなので、lib以下にコピーしてインストールしてもOKだと思います。
インストールしたモジュールのパスの追加
上記でインストールしたモジュールがFreeStyleWikiのプラグインから使えるように、一般ユーザー環境でのCPANモジュールのパスを、FreeStyleWikiのwiki.cgiに追加します。
wiki.cgiの22行目辺りの以下の行に、
use lib './lib';
一般ユーザー環境でCPANモジュールをインストールしたパスを追加します。
use lib qw(./lib /home/xxxxxxxxx/local/lib/perl5/);
GoogleImage プラグインのインストール
以下のファイルをダウンロードし、plugin以下にインストールします。
- googleimage.zip(231)
以上でインストール作業は完了です。
使い方
以下のような書式で、検索結果としての画像を表示できます。
{{googleimage 電気グルーヴ}}Google画像検索で「電気グルーヴ」を検索
また、以下のようにパラメータを追加することで、元画像へのリンクであるサムネイル画像を複数表示することもできます。
{{googleimage 電気グルーヴ,tb,8}}
「電気グルーヴ」は検索語。
「tb」でサムネイル画像表示を指示しています。
「8」は画像表示数を示しています。8が最大でそれより大きい値を設定しても8つの画像しか表示されません。
補足
- プラグインの出力全体を <div class="googleimage">〜</div> でくるんであります。本サイトの場合、他サイトからの引用であることを示すため、以下のようなCSSを指定して、背景を灰色にしています。
div.googleimage { position:relative; left:0.5em; padding-left:0.5em; margin-right:1em; background-color:#333333 } div.googleimage img{ border-style:none; }
参照情報
- local::libを使った非rootでのCPAN環境構築 - hide-k.net#blog
- さくらインターネットのサーバーへのPerlモジュールのインストール方法の紹介。ありがとうございます。
- Google AJAX Search APIをperlから使う - KUMA-TYPE
- コードというか、JSON::Syckを使うというアイデアをいただきました。ありがとうございます。
- Net::Twitterで得られた文字列中の \uXXXX で困った - 結城浩のはてな日記
- Google AJAX Search APIからの戻り値の中に「\\uXXXX」という文字列があって困ってたのですがこの記事を読んで解決。ありがとうございます。