「Load Image from URL」Widget で手軽な chumby ハック!
2008-05-17-2
[Chumby][Programming]
楽しいガジェット「chumby」[2008-05-16-5]のハックについて。
chumby をハックするにあたって、
ActionScript2 (AS2) で Widget を開発するってのは、
一番最初にやるタスクとしてはちょっと敷居が高いので
(特に日本語フォントまわりとか)、もっと簡単なハックから始めます。
ちょうどタイムリーに 5/15 に chumby のサイトに追加されていた
「Load Image from URL」という Widget が使いやすそうです。
これは、事前に画像 URL を設定しておくとその画像を取って来て
表示するだけの Widget です(画像キャッシュの設定もできます)。
これを利用すればかなり手軽に chumby ハックができます。
chumby で閲覧したい画像を自分の Web サーバ経由 (単一 URL) で
配信するための CGI を作るだけ。
これなら chumby の知識がなくても取りかかれるし。
ということで、自分のブログの最近の記事に含まれる写真を
毎回ランダムで一つ選ぶ CGI を作りました。
この CGI の URL を先ほどの「Load Image from URL」に
登録すると、Chumby が毎回ランダムにブログ中の画像を表示してくれます。
URL: http://chalow.net/misc/pic1.cgi
コード:
CGI と同じディレクトリにある RSS ファイル (cl.rdf) を読み込んで、
CDATA 領域にある img タグの src 属性の画像 URL を全部取ってきて、
そこからランダムに一つ選んでリダイレクトしているだけです。
src の URL に制限をもうけているのは、アマゾンの画像とかを
無視したいからです。なお、ggpht.com は
Picasa ウェブ アルバム[2008-04-07-1]の写真置場です。
chumby をハックするにあたって、
ActionScript2 (AS2) で Widget を開発するってのは、
一番最初にやるタスクとしてはちょっと敷居が高いので
(特に日本語フォントまわりとか)、もっと簡単なハックから始めます。
ちょうどタイムリーに 5/15 に chumby のサイトに追加されていた
「Load Image from URL」という Widget が使いやすそうです。
これは、事前に画像 URL を設定しておくとその画像を取って来て
表示するだけの 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 が毎回ランダムにブログ中の画像を表示してくれます。
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]の写真置場です。