先日逢った友人に 「Skype 入れようよ〜」 と言われたので、ちょっと前に入れたきりだった Skype を復活させた・・・けど友人はオフラインだったようで、Skype API でちょっと遊んでみることにしました。
chat bot で人工無脳ってのは安直過ぎるので、気象情報 bot を作ってみました。『○○の天気は?』 と尋ねると、livedoor Weather Hacks (weather.livedoor.com) から明日の気象情報を取ってきます。他のことを訊くと・・・

二〜三日ほど常駐させとくので、遊んで見たい方はどうぞ → skype:otenkibot?chat
※ 初回コンタクト時は、反応がちと鈍いかも。返事がない場合は、も一度問いかけてみてください。あと otenkibot に call しても、お天気お姉さんは出ませんよ!
以下、ちょい技術情報。RAA にも RubyForge にも目ぼしい情報がなかったんだけど、Skype Forum にヒント (forum.skype.com) がありました。ActiveS (share.skype.com) を通して WIN32OLE で COM オブジェクトを作れば、Ruby からも Skype API が利用できるようです。読んでて良かった るびまの連載 (rubyist.net)。
あと文字コードがバラバラなので大変。Ruby 内部では EUC-JP を使用し、Skype とは SHIFT_JIS、livedoor Weather Hacks とは UTF-8 でやりとり。
otenkibot のソース → otenkibot.rb
Ruby で Windows の Event 待ちの時ってどうスクリプト書けばいいのかしら。下のコードだと、CPU 使用率 99% になっちゃうんだよなぁ。
while -1 WIN32OLE_EVENT.message_loop end