0

twitterの発言をskypeに投げる

研究会のskype chatで存在感がない人を忘れないために、研究会のtwitterアカウントでfollowしている人の最近の発言をランダムに投稿するようにしている

3時間ごとに投げる。


ここにコードおいてある
https://github.com/shokai/skype-chat-gateway-mac/tree/master/tools/twitter


skypeへの投稿はSkype Chat Gatewayと、WebブラウザからSkypeチャットできるやつ作ったに書いたskype-chat-gatewayを使っている。HTTPでskype chatが使えるスゴイ奴だよ

0

Skype Chat Gatewayと、WebブラウザからSkypeチャットできるやつ作った

半年ぐらい前に作って、書くのを完全に忘れてた。
Skype Botの類が簡単に作れるようになるし、スマホの重いSkypeクライアント起動しなくてもチャット読めたりしてなかなか便利です。skype-socket-gatewayは捨てましょう。

 

Mac版とLinux版がある。Mac版はchatの読み書きができるけど、Linux版はAPIがよくわからなくて書き込みしかできない。

動かし方はそれぞれREADMEに書いたので読んで欲しい
起動するとHTTPサーバーがport 8787で立ち上がる。
自分のプログラム <--(HTTP)--> Skype-Gateway <--(AppleScript)--> Skype.app
という感じで通信する。

HTTP-POSTでchatに発言できるので、bot等が作りやすい。
例えばcurlで発言する
curl -d 'hello!!' http://localhost:8787
これでchatにhello!!と投稿される。


Mac版にはLaunchAgentに登録する.plistファイルも付けておいたので、Mac起動と同時にskype-chat-gatewayも自動起動させれる。

 

ついでにMac版には “WebUI” というディレクトリが同梱されている。
Webブラウザ上でチャットが使える。

SinatraアプリがMac版skype-chat-gatewayと通信している。
スマホ版Skypeが重すぎて常時起動してられないのでちゃちゃっと作ってみた。
ChromeやSafariで開いておくとWebkit NotificationでGrowlのような通知が出るので、本格的にSkype起動して無くても良くなってくる。

Linux版はチャットが読めないのでWebUI付けてない。

0

githubのリポジトリ数が100超えた

去年のゴールデンウィークの増井研合宿でgithubの使い方を山プルギス氏に教えてもらってから18ヶ月、ついに公開リポジトリ数が100個に達した。


ぜんぜんgithub上で他人のプロジェクトに首を突っ込んだりしていなかったので、100個のうちほぼ全てが自分で開始したプロジェクトという事になる。だいたい週1つのペースでリポジトリが増えていったわけか


100個目のプロジェクトは、notify-lightだった。
これは家の電灯が点いているかどうかを明るさのセンサーで監視して、Skypeのshokai_botというアカウントが俺に通知してくれるシステム。便利である。防犯的な意味で。
60行ぐらいのRubyスクリプト1ファイルだけで実装されている。


botからSkypeのグループチャットでこういうのが来る。


センサーを使うのもSkypeへの通知も、すでに便利なツールが作ってあって全部HTTPでできる。
ruby notify-light.rb -light http://localhost:8783/ -skype http://localhost:8787/
という風に実行すればセンサーを定期的に監視してSkypeに送信できる。


■しくみ
CdSという明るさが検出できるセンサーをArduino等に適当に接続し、シリアル通信してMacやLinuxに送る。
serial-http-gatewayというプロジェクトを以前作ってあるので、これを使うとシリアルポートから受信したデータを溜めてjson形式で吐き出すHTTPサーバーが作れる。


読んだjsonにはタイムスタンプとセンサーの値(明るさが)入っているので、一定時間内の平均値を計算してノイズを消し、Skypeに通知する。

Skypeへの通知は先日作ったskype-chat-gatewayというのを使っている。
1年ぐらい前にskype-socket-gatewayというのを作ったけどwindows用だったのでもう使わなくなったし、socketよりもhttpから使えたほうが便利なのと、chat_idという概念がわかりにくいので1チャット1プロセス1portが対応するように作りなおした。
また、MacとLinuxでSkype APIを使う仕組みが違うので、それぞれ別々に実装した。

Linux版はまだちょっと微妙なんだけど、Mac版は出来がよくてWebブラウザからSkype Chatができるサーバーとかも付いているので便利です。