前:Skype API Rubyラッパーのgem作った

gem install skype
https://github.com/shokai/skype-ruby

今v0.2.1になった。

主にrb-appscript廃止と、Chat APIとCall APIのラッパーを作った。

SkypeのAPIは建てまし続けた旅館のようになっていて、素直にラッパーを作ると逆に意味不明になると思ったので俺が欲しい機能を俺が欲しい形式で使えるようにしていく方針。

もちろんSkype.execにSkype APIの文字列を渡せば全機能が使えるようになっているので問題ない。


rb-appscript廃止

新しいmacbook airにrb-appscriptインストールしようとしたらCarbon関係のネイティブがビルドできなくてインストールできなかったのでやめた。
開発停止しているらしいし。
/usr/bin/osascriptに-eでapplescript渡して実行することにした。


Chat APIのラッパー

Skypeはchatを選択するときにIDで指定するんだけど、IDは同じチャットでも人によっては違うIDに見えていたり時間経過で変化してしまっていて、botを作る時に使い勝手が悪かった。

こうなった。
require 'skype'

chat = Skype.chats.find{|c| c.members.include? "shokaishokai" and c.topic =~ /testchat/ }

chat.post "hello chat!!" # 投稿

chat.messages.each do |m|
puts m
end
chatはmessageを受信イベントで受け取れるようにしようか考えている。


Call APIのラッパー

たとえば相手が通話に出た瞬間に切るのはこうやる
require 'skype'

call = Skype.call "shokaishokai"

while !call.talking?
puts call.status
sleep 1
end

call.hangup if call.talking?