ktrWiki - Audioscrobbler Musical Profile
いろんなプレイヤに対応したプラグインにより、いま聴いている音楽情報をアグリゲートしたり、また、音楽的つながりによるちょっとした SNS 的機能を提供してもいる Audioscrobbler というサービスがあります。当該サービスは、プラグインが送った情報を例えば "Audioscrobbler :: User :: kentaro" という感じで表示したり、はたまた、最近聴いた曲を RSS で提供してくれたりもするってな感じで、なかなか面白いです。
ところで昨日のこと、IRC チャンネル「#順列都市」にてジュンさんより「ktrWiki に Audioscrobbler の RSS を表示させられたらいいね」との要望があったので、ちと対応してみようと思いつついろいろ面倒なので、そういえば! と思いつき、ごろたん に、彼が作成した Hiki 用の Audioscrobbler プラグインのソースをみせてもらい、それをちと改造して対応してみました。
まぁ、だからなんなんだ的なアレではありますが、プラグインを導入して、ちょっとした記述を加えるだけでこういうページが作れるって、けっこう面白いものです。プラグインのソースは GPL で配布されているものなので、ここで晒しても OK でしょう、とゆわけで晒し。
このプラグインは、Audioscrobbler の RSS をパースするのに 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 には標準では添付されてないらしい…。まぁ、そこんとこ、御了承下さい。
なんか激しく事実誤認してたので、削除いんぐ…。詳細についてはコメント欄をご覧下さい。