MTAmzon,aws.plなど,色々なプラグインがあるけど・・・・.
気軽にURLとか貼り付けるだけで,写真とURLを生成してくれるヤツがない.
そこで作ってみることにした.

まず,Hackから.

というわけで,既存のプラグインのソースコード読んでみることにした.
mt-isbn.pl
いいせんなんだけど,手軽さとアフィリエイト対応という面で私の要求条件を満たさない.
そこで,こいつのソースコードと,MovableTypeの技術資料を元にプラグイン製作にとりりかかる.
いっておくが.
sonsonは,Perlのソースコードなど,およそ10行程度しか書いたことがない.
Perlのソースコードは読みにくいと聞いていたが・・・・・.確かに読みにくい.

MT::Template::Context->add_global_filter(isbn => sub {

どうやら,このあたりで,自分のタグを読み込んで,その結果を返してやればいいということらしい.
んで,以前取得したAmzon Web Servicesのアカウントを利用して,商品のIDで情報をとってくればいいということか.

MT::Template::Context->add_global_filter(
amazon => sub {
my ($lines, $args, $ctx) = @_;
$lines =~ s/[amazon:(.+)]/process($1)/ge;
return $lines;
}
);

この正規表現を発見するのに・・・・・ああ.リソースが.

$str =~ s/[amazon:(.+)]/process($1)/ge;

この部分で,エントリの文中から,[amazon:<商品のURL>]を探しだす.
(.+)でヒットした部分は,$1に渡される.これがURLである.
このURLをprocessに渡し,Amazonにアクセスして,画像と,URLと,タイトルを取得し,HTMLのタグを生成する.
この生成されたHTMLタグがprocessの戻り値となる.
戻り値が文中の[amazon:<商品のURL>]と置換される.
おお!完璧だ.
以上,防備録でした.