Kentaro Kuribayashi's blog

Software Engineering, Management, Books, and Daily Journal.

ktrWiki - Audioscrobbler Musical Profile

いろんなプレイヤに対応したプラグインにより、いま聴いている音楽情報をアグリゲートしたり、また、音楽的つながりによるちょっとした SNS 的機能を提供してもいる Audioscrobbler というサービスがあります。当該サービスは、プラグインが送った情報を例えば "Audioscrobbler :: User :: kentaro" という感じで表示したり、はたまた、最近聴いた曲を RSS提供してくれたりもするってな感じで、なかなか面白いです。

ところで昨日のこと、IRC チャンネル「#順列都市」にてジュンさんより「ktrWiki に AudioscrobblerRSS を表示させられたらいいね」との要望があったので、ちと対応してみようと思いつついろいろ面倒なので、そういえば! と思いつき、ごろたん に、彼が作成した Hiki 用の Audioscrobbler プラグインのソースをみせてもらい、それをちと改造して対応してみました。

まぁ、だからなんなんだ的なアレではありますが、プラグインを導入して、ちょっとした記述を加えるだけでこういうページが作れるって、けっこう面白いものです。プラグインのソースは GPL で配布されているものなので、ここで晒しても OK でしょう、とゆわけで晒し。

このプラグインは、AudioscrobblerRSS をパースするのに RSS Parser を用いていますので、まずはこのライブラリをパスの通ったところにインストールする必要があります。んでもって、上記のソースを audioscrobbler.rb として保存、Hiki のプラグインディレクトリにぶっこみ、キャッシュする時間を設定します。また、キャッシュしたデータを置くディレクトリを、キャッシュ・ディレクトリ下に audioscrobbler という名前であらかじめ作成しておきましょう。んでもって、曲目を表示させたいページに {{audioscrobbler("username")}}(username は、Audioscrobbler のユーザ名)と記述すれば、うまくいけば最近聴いた曲が表示されるはず。Ruby 1.8.2 + Hiki 0.6.5 で動作確認しています。多分、Ruby 1.8 以上だと問題なく動くんじゃないかなぁ。ライブラリが足りなくて動かなかったら、なんかテケトウにインストールしてください。

普通に RSS Parser 使ってエンコーディング変換すると、内部的に Iconv による Rexml のエンコーディング変換メソッドを使用するみたいなんですが、それだとなぜかエラーになっちゃうので Uconv により表示時にエンコーディング変換するようにしています。んで、その Uconv つーのは Ruby 1.8 には標準では添付されてないらしい…。まぁ、そこんとこ、御了承下さい。

なんか激しく事実誤認してたので、削除いんぐ…。詳細についてはコメント欄をご覧下さい。