amip plugin

久々にプラグインを書いてみる。とはいうものの凝ったことをしていない単純至極なもの。AMIPというWinampApolloで使えるプラグインを利用して、再生中の曲を適当なデータファイルにし、それをパースして表示するプラグイン。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

終了・停止時のテンプレートはこんなんにしてます。

てか、テンプレートの書き方を調べてたら、正規表現で条件分岐できたり、かなり強力なことがわかりました。かなり遊べそうな予感。