久々にプラグインを書いてみる。とはいうものの凝ったことをしていない単純至極なもの。AMIPというWinampやApolloで使えるプラグインを利用して、再生中の曲を適当なデータファイルにし、それをパースして表示するプラグイン。amipというそのまんまな名前を付けてみる。
最初はJavaScript includeで作ったんですけど、後々いろいろ出来そうな気がするので、blosxomのプラグインにしてみました。
AMIP側で利用するテンプレートは、
stat=Now listening to artist=%1 title=%2 track=%3 album=%4 year=%5 comment=%6 genre=%7
で、データファイルは、
stat=Now listening to artist=Nina Gordon title=Badway track=4 album=Tonight And The Rest Of My Life year=2000 comment= genre=Rock
こうなります。プラグインはこれを適当にパースして、エンティティ変換するだけ。こんな感じになってます。
Do SomethingでID3v2が読めなくて嵌まったのは秘密。
コメントにASINコードを入れて、AWSと連携させよう。・・・そのうちね。
書き忘れてましたが、Winampだとまるで問題なく動くのですが、ApolloなどではDDEの不具合からハングしたりします。公式サイトにTopicがあり、
[Advanced mIRC Integration Plug-In] CFG_MAPPING=1
としろとの事で、これでApolloで問題なく動いてます。Apolloのプラグイン・ディレクトリにplugin.iniというファイルを作って、それに上記にように記述すればOK。
それと、FTPでのアップロードですが、「cURL使え」とかHelpには書いてありますが、コマンドラインで使えるものならなんでもOKなので、LFUとかが良いかも。ftp.exeとかでも大丈夫だとは思いますが、スクリプト書くのメンドウ・・・。
%stat
で停止や終了状態なんかを取れるかと思ったら取れなかったので、サクサク調べていたら、Play/Pause/Stop/Exitそれぞれの時にコマンドを実行することもできるようです。設定ダイアログに無く、Helpにも更新履歴のところにちょこっとかいてあるだけだったので、わかりづらかった・・・。plugin.iniを開くと、
CFG_EXITCB=""
とかあるので、DDE_STRINGとかからコピペすれば良いみたいです。
stat=Now listening to artist=%1 title=%2 track=%3 album=%4 year=%5 comment=%6 genre=%7
終了・停止時のテンプレートはこんなんにしてます。
てか、テンプレートの書き方を調べてたら、正規表現で条件分岐できたり、かなり強力なことがわかりました。かなり遊べそうな予感。