2008 . 09 . 01
2coMeter
ニコニコ動画の動画情報を表示するRainmeterスキンを制作しました。
表示する動画ページは「
ホットリスト」、「
新着投稿動画」、「
新着コメント動画」に対応しています。
こちらのスキンは、あの独特のテイスト?を生かすべく、ニコニコスタイルそのままを使用した造りになっており、独自の要素はとんどありません。
今回はサムネイル画像のダウンロードがWebParser.dllでは不可能なため、止むを得ずスクリプトを利用したものになっています。
以前、
Rainmeter Configsにおいて画像取得のサンプルコードをいろいろ作っていた頃にも、今回のように
ある理由からダウンロードに失敗するケースが少なからずあって、WebParserの限界を感じたものでした。
その
ある理由とは、URLにファイル名にできない文字列が含まれている場合のことです。
画像のファイル名が「http://www.hoge.com/image.jpg」のような場合はいいのですが、「http://www.hoge.com/image?id=123」のような場合はダウンロードに失敗します。
正確に言えばダウンロードできていても保存ができないため表示することができないのです。
WebParserにおいての画像の取得のプロセスは、内部的には「Temporary Internet Files」にダウンロードされ、その後「\Temp\Rainmeter-Cache」にそのファイルが保存されたものがRainmeterで利用可能状態になるというものです。
ここでWebParserはURLのパスの末尾を切り出して、これをファイル名として保存しようとしますが、ここで先のように「?」のようなファイル名できない文字列が含まれていたりすると、保存に失敗するわけです。
ブラウザのように適当にリネーム処理をしてくれればいいのですが・・
CGIで動的に画像のURLを生成しているページでは、大抵パラメータの先頭に「?」がつく場合が多いので、こういったページではWebParserによるダウンロードができず、そして今回のニコニコ動画もその一つということでした。
そこで今回は、WebParserで画像のURLだけ取得して、あとは、それをスクリプトに送ってスクリプトでダウンロード/保存して、それをRainmeterで表示するようなことにしました。
(本当はスクリプト使いたくないんですけどね)
スキンの起動やリフレッシュ時に、上画像のようなロゴをプリローダー風に表示する装飾を加えました。