2006年10月のエントリー



2006 . 10 . 31

「livedoor 番組表」の不具合

しばらく前に、この サイトで公開・配布している、Rainmeter用のスキンで「livedoor 番組表」を表示する「ktv-07__livedoor」について、利用者の方より不具合報告をいただきました。




2006 . 10 . 21

Rainmeterスキン「A1」 V1.6 アップデート

■ 変更点

今回のバージョンでは、スクリプト側でRainmeterが起動しているか確認し、起動している時にのみコマンドを送信するようにしました。



2006 . 10 . 12

A1についての補足

■既知の問題

現状では動作に不安定な面が見られます。確認している不具合についていくつかまとめてみます。

1) エラーによる強制終了
それは、アプリケーションエラーとランタイムエラーといったかたちで発生することが多く、どちらもINIの読み込みに失敗しているものと思われます。
それがRainmeter側の問題の場合とAMIP側の問題の場合とがあり、前者の場合、AMIPがINIを出力するタイミングとRainmeterがリフレッシュされるタイミングが衝突した際、Rainmeterのアプリケーションエラーにつながるようで、後者の場合、何らかの理由でAMIPが誤作動して不適切な(空の)INIを出力した上で、それをRainmeterが読み込んでしまいエラーになるのでなないかと考えられます。
ただ、、これらの現象は決まった条件で一様に起こる現象ではないため、はっきりとした原因はつかめていないのが現状です。
対処療法的ではありますが、前者のケースの対策として、Rainmeterのリフレッシュコマンドをスクリプト経由で行い、AMIPの出力が完了するまでコマンド送信を500ミリ秒の遅らせるようにしてみました。
結果、アプリケーションエラーというかたちで発生するエラーは少なくなったと思います。

2) A1はAMIPに装備された文字列処理に関するさまざまな関数を使用して出力させていますが、これらの組み合わせとある特定の文字が誤動作を引き起こすようです。現在確認しているのは、タイトルに「ポ」、「竹」という文字が含まれている場合、一部が正常に出力されません。

3) 画像の自動保存機能にリネーム用の文字列を送る際、AMIP側であらかじめファイル名に使えない文字を空白に変換処理しています。しかし、上の 2) の例のようなことが原因でそのような文字が出力されてしまうことがあります。その場合、保存機能は働きません(というか、働かなくした)。

4) 画像取得サイトの3番目にGoogleImagesがセットされていますが、Googleは画像のあるサイトをリンクしているだけで、実際のダウンロード元は個々のサイトになります。サイトによってはすでにファイルが存在していないケースもあり、取得できない場合があります。こういったかたちで画像取得に失敗すると、取得の際に表示されるメーターは止まったままになります。
また、 GoogleImagesからの画像取得では、あえてJPG画像に限定せず、縦横が同じサイズの画像であればすべてその対象にするようにしていますが、稀に拡張子がなかったり間違っていたりすることがあります。それでもダウンロードはしますが、最終的には表示できません。

2006 . 10 . 10

Rainmeterスキン「A1」 V1.5 アップデート

仕様を大幅に変更しました。

合わせてページの方も更新しましたので、すでに旧バージョンを使用されている方も、改めて目を通されてほしいと思います。

■追加機能
1) 3つのサイトをリレー方式で巡回して画像を取得する
2) 取得した画像をリネームして自動的に保存フォルダに保存
3) Webサイトから画像取得する前に保存フォルダを検索し、目的の画像があればその画像を使用し、Webからのダウンロードは行わない。
4) WINAMPの状態に追従してスキンの形状を変化

■変更点
1) AMIPのプリセット機能の使用を止め、直にテンプレートを書き換えて使用するようにした
2) AmazonとGoogleMusicSearchから取得する画像をサムネイルサイズから標準サイズにした
3) 再生および曲の更新時に行われるRefreshコマンドの送信を外部スクリプト経由で行うことにした

2006 . 10 . 01

Amazon Webサービス

先日公開したA1「アルバムジャケットを表示するスキン」で、画像の取得元としてAmazon.co.jpを利用しています。
画像の取得方法は、単に一般のWebページにアクセスしHTMLからパースして画像のURLを抜くというものです。


しかし、AmazonにはAWS「Amazon Webサービス」という便利なものがあります。利用者のリクエストに対しXMLを出力してくれるサービスです。


http://webservices.amazon.co.jp/onca/xml?
Service=AWSECommerceService&
SubscriptionId=1AR30AGGGMJRGP5EJ302&ItemPage=1&
Operation=ItemSearch&SearchIndex=Music&ResponseGroup=Images&
Keywords=Red+Hot+Chili+Peppers+-+Stadium+Arcadium

(↑URLは改行してますが本来は一行です)


例えば上のように、Keywords=に続けてアーティスト名とアルバム名をクリエとして追加させてリクエストすれば、その情報ページを出力してくれます。この例では画像情報に焦点を絞ってリクエストしているので、他の余計な情報が含まれず、HTMLからパースするより非常に容易です。また、HTMLと違いレイアウトの変更によって取得に失敗するといった心配もありません。


そんな訳で、こういうスキンでの利用には断然このサービスを利用した方が有利ですので、早速こちらから画像の取得を行ってみようと試してみました・・・が、結局断念。


理由は文字コードによるものです。
AWSのリクエストの入力はUTF-8のみになっていますが、RainmeterはUnicodeを含む文字を表示することはできません。(WebParserでパースすることはできるが)なので、英数字のみの使用であればほとんど実害はないかもしれませんが、日本語を含む文字をRainmeterで表示できる状態でAWSにリクエストすれば、文字化けで「該当データなし」になり、逆にリクエストできるかたちにしてやれば、今度はRainmeter側で文字化けが起こるということになってしまい、これでは元も子もない。


(そこでID3v2は表示用にJIS、ID3v1にリクエスト用にUnicodeにしたらどうだろ、としばし妄想するもアホらしくなってやめる・・・いちいちそんな面倒くさいタグ私は付けたくありません。)



Rainlendarは最近のバージョンでUnicodeに対応しましたし、WINAMPも最近のバージョンでUnicodeのファイル名やタグを表示できるようになったようで、Rainmeterも次バージョンでUnicodeに対応してもらいたいものです。