古い記事
ランダムジャンプ
新しい記事
楽しいガジェット「chumby」[2008-05-16-5]のハックについて。

chumby

chumby をハックするにあたって、
ActionScript2 (AS2) で Widget を開発するってのは、
一番最初にやるタスクとしてはちょっと敷居が高いので
(特に日本語フォントまわりとか)、もっと簡単なハックから始めます。

ちょうどタイムリーに 5/15 に chumby のサイトに追加されていた
「Load Image from URL」という Widget が使いやすそうです。
これは、事前に画像 URL を設定しておくとその画像を取って来て
表示するだけの Widget です(画像キャッシュの設定もできます)。

Widget
Load Image from URL
Loads single jpg, gif or png from given URL.
Author: jvcleave
Version: 1.0
Added on May 15, 2008

これを利用すればかなり手軽に chumby ハックができます。
chumby で閲覧したい画像を自分の Web サーバ経由 (単一 URL) で
配信するための CGI を作るだけ。
これなら chumby の知識がなくても取りかかれるし。

ということで、自分のブログの最近の記事に含まれる写真を
毎回ランダムで一つ選ぶ CGI を作りました。
この CGI の URL を先ほどの「Load Image from URL」に
登録すると、Chumby が毎回ランダムにブログ中の画像を表示してくれます。
LIFU

URL: http://chalow.net/misc/pic1.cgi
コード:
#!/usr/bin/perl -T
use strict;
use warnings;
my @urls = ();
open(F, "cl.rdf") or die;
while (<F>) {
  next unless m{<img src="(http://(chalow.net/images/|.+?ggpht.com).+?)"};
  push @urls, $1;
}
close F;
srand;
my $url = $urls[rand(@urls)];
print qq(Location: $url\n\n);

CGI と同じディレクトリにある RSS ファイル (cl.rdf) を読み込んで、
CDATA 領域にある img タグの src 属性の画像 URL を全部取ってきて、
そこからランダムに一つ選んでリダイレクトしているだけです。
src の URL に制限をもうけているのは、アマゾンの画像とかを
無視したいからです。なお、ggpht.com は
Picasa ウェブ アルバム[2008-04-07-1]の写真置場です。