TOUCOWS.COM にはさまざまなプログラムがところ狭しとならべられており、Window Maker 用のテーマ集も、もちろんあります。UNIX Themes (http://themes.netfx-2000.net/wmaker/) で Winodw Makaer のテーマをさがすのですが、このサイトでは、スクリーンショットの一覧がないので、スクリーンショットを見るためには、いちいち項目をクリックしていかなければなりません。そこで、オフラインでゆっくり眺められるスクリーンショットの一覧を作ろうと思いたちました。
そのために、このサイトの構成をしらべてみましたら、テーマは、次の25のカテゴリーに分類されていました。
animals anime artistic cartoons children computers fantasy holiday military miscellaneous movies music music2 nature people places products religious school scifi space sports television vehicles videogames
そして各カテゴリーは animals.html, anime.html, ... というようにインデックスファイルがついており、そこからプレビュー、ダウンロードができるようになっています。私は、まず以下のようなリストを作り、これを link.txt として保存しました。
http://themes.netfx-2000.net/wmaker/animals.html http://themes.netfx-2000.net/wmaker/anime.html http://themes.netfx-2000.net/wmaker/artistic.html http://themes.netfx-2000.net/wmaker/cartoons.html http://themes.netfx-2000.net/wmaker/children.html http://themes.netfx-2000.net/wmaker/computers.html http://themes.netfx-2000.net/wmaker/fantasy.html http://themes.netfx-2000.net/wmaker/holiday.html http://themes.netfx-2000.net/wmaker/military.html http://themes.netfx-2000.net/wmaker/miscellaneous.html http://themes.netfx-2000.net/wmaker/movies.html http://themes.netfx-2000.net/wmaker/music.html http://themes.netfx-2000.net/wmaker/music2.html http://themes.netfx-2000.net/wmaker/nature.html http://themes.netfx-2000.net/wmaker/people.html http://themes.netfx-2000.net/wmaker/places.html http://themes.netfx-2000.net/wmaker/products.html http://themes.netfx-2000.net/wmaker/religious.html http://themes.netfx-2000.net/wmaker/school.html http://themes.netfx-2000.net/wmaker/scifi.html http://themes.netfx-2000.net/wmaker/space.html http://themes.netfx-2000.net/wmaker/sports.html http://themes.netfx-2000.net/wmaker/television.html http://themes.netfx-2000.net/wmaker/vehicles.html http://themes.netfx-2000.net/wmaker/videogames.html
そして link.txt を次のように wget に読みこませます。
wget -i link.txtすると片っ端からファイルを取ってきては、保存してくれます。
次に、各 html ファイルをしらべてみると、スクリーンショット画像が "../wmaker/preview/55535.html" などのように指定されたプリビューファイルの中にあることがわかります。それで、まず、プリビューファイルの URL 一覧 list_new を得るプログラム findnew.c を書きました。ここで工夫したのは、アップデートの際に、すでにダウンロードしたファイルを再読み込まないため、list_old を参照するようにしたことです。list_old.txt は findadd で自動的に作るようにしました。
スクリーンショット画像を得るプログラムは次のように、小さなプログラムをつなぎ合わせて構成しました。各カテゴリーでスクリーンショット画像を得るにはこれらをシェルスクリプトでつなぎ合わせるようにします。また、各カテゴリーのために、あらかじめディレクトリーをつくっておく必要があります。
プログラム名 | 入力ファイル | 出力ファイル | 出力ファイルの形式 |
findall.c | xxxxxx.html | list_all | index ファイルにあるプリビューファイルの一覧 |
findnew.c | list_all, list_old | list_new | まだダウンロードされていないプリビューファイルへのリンク |
wget -i | list_new | *.html | プリビューファイルのダウンロード |
findadd.c | list_htm, list_jpg | list_add, list_old | スクリーンショット画像へのリンク |
wget -i | list_add | *.jpg | スクリーンショット画像のダウンロード |
さて、本題の画像表示プログラム themeindex.c ですが、画像をクリックすると、実際の tar.gz ファイルがダウンロードされるようにしてあります。最初は1ファイルでそのカテゴリーのすべての画像を表示するようにしたのですが、百個以上もある画像を一度にブラウザで表示するにはあまりに重いので、1画面に6画像とし、ページをすすめたり戻ったりできるようにしました。Home をクリックすると出てくるのは、全カテゴリーのインデックス画面です。この HTML ファイルも「おまけ」でつけておきます。オフラインでゆっくり画像を選び、オンラインにしてクリック・アンド・ダウンロードは快適です。