Lingr
音速の遅い話ですが、伺かのLingrの部屋が出来たということで見てきました。
うん、名前入れずに見れるのはよいですね、匿名万歳。
で、どこぞでも書かれていましたがちょっとばかし重い。
というわけで、なでしこでちゃちゃっとローカルアプリに。もうすでにどこかにありそうですが。
見る専、リストボックスなので長いメッセージがスクロールしないと見られないなどの不便な点もありますが、まあそのあたりは気が向いたときにでも拡張する方向で。
##Lingrクライアント
#-----------------------------------------------------------------------
#設定
#LingrのAPIキー(各自取得のこと)
!APIキーは「」
#新着時にならすWAVファイル(OutlookExpressの着信音)
!音声ファイルは「C:\Windows\Media\Windows XP Notify.wav」
#見たい部屋のID(これは伺か部屋)
!ルームIDは「jyW4aiX5YOC」
#設定ここまで
#-----------------------------------------------------------------------母艦のタイトルは「Lingrクライアント」
ログとはリスト
そのレイアウトは「全体」
1000でログの横スクロール幅設定
Aとはタイマー
終了ボタンとはボタン
そのレイアウトは「上」
そのクリックした時は
Aを停止
#退室
「」と「session={セッション}&ticket={チケット}」を「http://www.lingr.com/api/room/exit」へHTTPポスト
セッションのLINGRセッション破棄
終わる
母艦の閉じる時は
終了ボタンのクリックした時#入室
「」と「session={セッション}&id={ルームID}」を「http://www.lingr.com/api/room/enter」へHTTPポスト
リザルトはそれ
リザルトから改行&改行まで切り取る
リザルトから「response/ticket」の階層タグ切り出ししてタグ削除
チケットはそれ
リザルトから「response/max_observe_time」の階層タグ切り出ししてタグ削除
最大監視時間はINT(それ)
リザルトから「response/room/counter」の階層タグ切り出ししてタグ削除
カウンタはそれもし最大監視時間が0ならば
終わる
Aの間隔は最大監視時間
Aの時満ちた時は〜
自身→停止
エラー監視
#「」を「http://www.lingr.com/api/room/observe/?session={セッション}&ticket={チケット}&counter={カウンタ}」へHTTPゲット
「」を「http://www.lingr.com/api/room/get_messages/?session={セッション}&ticket={チケット}&counter={カウンタ}」へHTTPゲット
エラーならば
自身→開始
戻る
それを「utf8」から「sjis」へ文字コード変換
リザルトはそれ
リザルトから改行&改行まで切り取る
リザルトから「response/counter」の階層タグ切り出ししてタグ削除
カウンタはそれ
リザルトから「response/messages」の階層タグ切り出し
全メッセージはそれ
もし全メッセージが空でなければ
1の間
全メッセージの「」から「 」まで範囲内切り取る
もしそれが「」ならば
抜ける
メッセージはそれ
メッセージから「type」のタグ切り出ししてタグ削除
もしそれが「user」ならば
メッセージから「nickname」のタグ切り出ししてタグ削除
HTMLエンティティ復号
ニックネームはそれ
メッセージから「text」のタグ切り出ししてタグ削除
HTMLエンティティ復号
テキストはそれ
テキストで1から「{\10}」をバイト検索
もしそれが0でなければ
「 」をニックネームのバイト数+3だけリフレイン
テキストの「{\10}」を「{\10}」&それに置換
テキストはそれ
ログのアイテムはログのアイテム&ニックネーム&「 - 」&テキスト
ログにメッセージ送信($0197,(ログのアイテムの要素数)-1,0)
音声ファイルをWAV再生
自身→開始
カウンタ=「-20」
Aの時満ちた時●LINGRセッション取得(キーで)
「」と「api_key={キー}」を「http://www.lingr.com/api/session/create」へHTTPポスト
リザルトはそれ
リザルトから改行&改行まで切り取る
リザルトから「response/session」の階層タグ切り出ししてタグ削除●LINGRセッション破棄(セッションIDの|セッションIDで)
「」と「session={セッションID}」を「http://www.lingr.com/api/session/destroy」へHTTPポスト
リザルトはそれ
リザルトから改行&改行まで切り取る
リザルトから「response/status」の階層タグ切り出ししてタグ削除