読者です 読者をやめる 読者になる 読者になる

App::Tacochan - 様々なサーバのバッチ処理の結果等を Skype のチャットに通知するサーバ

YappoLogs: App::Ikachan - 様々なサーバのバッチ処理の結果等を IRC のチャンネルに通知するサーバ より
リポジトリはこちら akiym/p5-App-Tacochan - GitHub
HTTPで叩けるSkypeみたいなものです。ikachanをコピペして作ったのですが、ikachanとは使い勝手が違うかもしれません。
使い方は非常に簡単で、

% tacochan
starting httpd: http://127.0.0.1:4969/ at bin/tacochan line 182.

だけです。(Skypeが立ち上がっている必要があります)
デフォルトではhttp://localhost:4969/にhttp serverが立ち上がります。(ikachanはhttp://localhost:4979ですね)
オプションも非常に少なくてシンプルです。

% tacochan -o http_host -p http_port

APIの仕様がikachanと少し違っていて、/notice、/privmsgがありません。その代わりに/sendでメッセージを送ることができます。
詳しい内容はサーバーにブラウザでアクセスしたときに表示されるのでそれを見てください。
また、HTTPでAPIを叩くときにcurlを使ってもいいのですが、tacochan-clientというものを用意したのでそれを使えば簡単です。

#chatにjoinする

% tacochan_client join #chat

この#chatというのは、"#t.akiym/$echo123;8d95e60b1199a802"のような文字列のことです。これはecho123さんと1対1でチャットをするときのidですね。
普段、Skypeを使っていても見ることはないと思います。なので、echo123とチャットをしたいときには次のようにすると便利です。

% tacochan_client join echo123
join success chat: #t.akiym/$echo123;8d95e60b1199a802

ユーザー名を#chatの代わりに入れてあげます。こうしてあげることで自動的にidが作られます。
これはカンマで区切ることで複数入れることができます。

% tacochan_client join echo123,foo,bar
join success chat: #t.akiym/$d0656290604bd99b

このようにすれば、グループチャットができますね。(グループチャットだとidが少し違うのがわかると思います)

#chatにメッセージをsendする

% tacochan_client send #chat your_message

#chatは先ほどのidです。

% tacochan_client send #t.akiym/$echo123;8d95e60b1199a802 hello.

idをいちいちコピペしてくるのは面倒なので、ユーザー名を入れることもできます。

% tacochan_client send echo123 hello.

ここで注意して欲しいのは、複数のユーザーを指定するとsendするたびに新しいチャットが作られてしまうことです。ちなみに/joinも同じで、複数のユーザーを指定して、何回もjoinするとたくさんチャットができてしまいます。
複数のユーザーにメッセージを送りたい場合は、#chatを指定してください。

#chatからleaveする

% tacochan_client leave #chat

leaveしてしまうとほとんどの場合re-joinできなくなるので、leaveは使わないほうがいいです。また、#chatの代わりにユーザー名を入れることはできません。


以上です。とてもシンプルですね!