LimeChatからiTunesを操作するスクリプト

LimeChat 2.25から大変面白げな機能がついたのででっちあげてみた。 /it (play|stop|next|prev)で再生、一時停止、次のトラック、前のトラック。現在再生中の曲とかも取得できるので色々できそうですね。

function event::onSendingCommand (command, text, context) {
    if (command == 'IT') {
        var itunes = new ActiveXObject('ITunes.Application');

        var commands = {
            'play' : 'Play',
            'stop' : 'Pause',
            'next' : 'NextTrack',
            'prev' : 'PreviousTrack'
        };

        try { itunes[commands[text]](); } catch (e) {}

        context.handled = true;
    }
}

最初こんな風に書いたんだけどエラーが出た。なんでだ。

        var commands = {
            'play' : itunes.Play,
            'stop' : itunes.Pause,
            'next' : itunes.NextTrack,
            'prev' : itunes.PreviousTrack
        };

        try { commands[text](); } catch (e) {}