Skypeのチャットに自動応答するJavaScript
前回の続き。
今回もSkype4COMを使って、SkypeをCOMコンポーネントとしてJavaScriptから操作する。Skype4COMのインストールとかは前回やった通りなので省略。
チャットに自動応答
前回は、スクリプトが実行されたタイミングでSkypeのチャットに投稿するようなものを作った。今回は応答、つまり、チャットのメッセージを受信して、それに反応して返事をするようなのをやりたい。
つまりはbotみたいなもの。IRCとかではいくらでもあるけど、Skypeのチャットでこれをやってみたい。JavaScriptで書いてみたい。
簡単に作ってみた
まずは簡単なものを作ってみた。
var skype = new ActiveXObject('Skype4COM.Skype'); WScript.ConnectObject(skype, 'Skype_'); skype.Attach(); while(true){ WScript.Sleep(1000); } function Skype_MessageStatus(msg, status){ if(status == skype.Convert.TextToChatMessageStatus('RECEIVED')){ var user = msg.FromDisplayName; var body = msg.Body; var chat = msg.Chat; chat.SendMessage(user + '\n' + body); } }
上記のコードをとりあえず「repeat.js」って名前で保存して、コマンドプロンプトから実行する。あ、実行する前に、Skypeを起動してログイン状態にしておくのを忘れずに。
cscript repeat.js
無限ループさせて待機し、チャットメッセージを受信したら同じ内容をすぐに返信するスクリプト。終了するにはCtrl + C。
コマンドプロンプトからcscriptを使って動かすのがミソ。普通にjsファイルをダブルクリックしちゃうと、wscriptで動いてしまって、終了させるのが面倒になる(タスクマネージャで終了させるとか)。