LingrをRubyから扱うためのライブラリ書いた
ダウンロード
お断り
ちょっとRubyっぽくないかもしれませんごめんなさい。
使い方
まずは
require "lingr.rb"
してください。
準備
l = Lingr.new(:user => "ユーザ名",:password => "パスワード")
です。
ここで、
l.debug = true
すると何をしているのかわかるようになります。
lingrから切断
l.shutdown
イベント
動的に新規発言などを即時に得るためイベント的なクラスを使って発言などを取得できます。
イベントの登録
イベントの受信登録はこのように行います。
l.events.register('イベント名','イベント登録名',lambda{|e,l| 処理 })
eにはJSONなどが入ります。
lにはlingrのオブジェクトが入ります。
また、第三引数にオブジェクトを指定すると、このように後から取得できます。
l.events.register('イベント名','イベント登録名',lambda{|e,l,s| 処理 },self)
sには第三引数で指定したオブジェクトなどが入ります。
selfなどを代入すると便利に使えるかと思います。
また、イベント登録名が重複していると登録されません。
イベントの登録解除
l.events.release('イベント名','イベント登録名')
で可能です。
主なイベント
イベント名 | 説明 | eの値 |
---|---|---|
boot_complete | 接続完了時 | 無し(nil) |
shutdown_complete | 接続終了時 | 無し(nil) |
new_message | 新規メッセージ受信時 | Lingr::Messageの配列 |
status_changed | メンバーのオンライン/オフラインが変更されたとき | Lingr::Messageの配列 |
say_complete | 発言完了時 | json |
まだたくさんありますが、普通は使わないイベントなので割愛します。
参加してるルームの取得
l.rooms
で、Roomオブジェクトが取得できます。
で取得できます。ルーム名(文字列)の配列です。
Roomオブジェクト/Memberオブジェクト/Messageオブジェクト
l.roomsの中にあるオブジェクトです。
Roomオブジェクト
メソッド名 | 説明 |
---|---|
id | ルームid |
description | ルーム概要 |
members | メンバー一覧の配列 |
messages | ログの配列(bootした後のログは反映されません) |
public? | そのルームがpublicかどうか |
name | ルーム名 |
Messageオブジェクト
メソッド名 | 説明 |
---|---|
text | メッセージ内容 |
timestamp | UTCでの発言時刻。Timeオブジェクト。 |
user | 発言者。Memberオブジェクト |
Memberオブジェクト
メソッド名 | 説明 |
---|---|
icon_url | アイコン画像のURL |
nickname | ユーザーID |
owner | そのルームのownerかどうか |
presense | オンラインならtrue(boot時) |
username | 表示名 |
発言する
l.say(ルームIDまたはRoomオブジェクト,"テキスト")
メンバーリストの取得
l.rooms[0].members
など