ぼんやりと考えている人

ひろしまなおき (廣島直己)
名前: ひろしまなおき (廣島直己)
住処: シリコンバレー
職業: しがないプログラマ
家族: 愛妻一人、息子一人、娘一人
道具: ハーレー二台、ギター三本
電紙: n at h7a.org

Twitter

« June 2023 »
S M T W T F S
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

以前にぼんやりと考えたこと

最近のコメント

  • ひろしま (ひらがなせいかつ …): じゅくじくんは なくした ほうが いい ですね。ぼくは…
  • たんぽぽ (ひらがなせいかつ …): きゅうに ぜんぶの ことばを ひらがなだけに する…
  • とね まさひこ… (ひらがなせいかつ …): ぼくは ものかき だが, かんじが きらいなので,…
  • とりえ (ひらがなせいかつ …): このさいとは みているだけで なんとなく ほんわか…
  • ひろしま (思い通りの日本語…): こうどな ほんを よめなければ、こうどな たんごを 学…
  • nt4 (思い通りの日本語…): ひらがなせいかつに初めて接し、興味を覚えました。そ…
  • ひろしま (ひらがなせいかつ …): やはり、がいこくに くらしていたり、がいこくとの か…
  • ぷりうりうぷ… (ひらがなせいかつ …): こんにちは。すうぇーでんに すんでいます。いとうさ…
  • Joi Ito (ひらがなせいかつ …): もと べいにち たいしの Edwin O. Reischauer さん…
  • yonay (理屈じゃないとい…): なんか、著者の主張を誤解しているような気がするよ。…

  • Powered by Pivot - 1.40.5: 'Dreadwind'
  • SPAM Poison
  • XMLフィード(RSS 1.0)
  • Atomフィード

20 May '2007 - 23:51 | 技術動向 Lingrvant Botkit

お待たせしました。Yet Another Lingr Botkit - Lingrvant 1.0.0 をリリースしました。

ソースは http://n.h7a.org/hacks/lingrvant に展開してあるので読むのはタダです。バグ報告、アドバイスがあったらください。

だいぶ前に書いた Lingresident は常駐ツールとして書いたのだけれど、他の Radar とか Notifier と共存するのがいろいろと面倒くさいので興味をとっくに失って放置してありました。ただ、その機能の一部として書いたプラグインのボット機能はそれなりに便利だったので、それだけ使う Lingrvant っていう名前のボットを常駐させていたのだけれど、先日、Private Message 機能がボットにも解放されたのを観て、それの対応をするタイミングで一から新しく書き直してみたというわけです。今度は、純粋な Lingr Bot フレームワークとして。

api_client.rb と botkit.rb があるから、それで別にいいし、それを改変して使えばいいだけなのだけれど、Lingr の API の文法ってかなりすっきりした作りになってるので、API の追加に対しても自動的に対応するような api_client.rb を書いたらどうかなと思って lingr.rb を書いてみました。

ほとんど api_client.rb をそのままコピーしておいて偉そうに Lingr::Api なんて名前にしてあるのだけれど、これは sample.lingr.rb を観ればわかるように、

lingr = Lingr::Api.new apikey
lingr.session :create, { :client_type => 'automaton' }
lingr.explore :get_hot_rooms, { :count => 2 }

みたいに、Lingr API の path の、最初の部分がメソッドで、続く部分がその第一引数になり、第二引数がパラメータをハッシュで渡すのが特徴。

api_client.rb みたいに親切じゃないけれど、これで、新しいコマンドが追加されても (たいていは) lingr.rb の変更はいらないし、どうせ http://wiki.lingr.com/dev/show/API+Reference を見ながら書くだろうし、これくらいの不親切はいいかな、と。

それから、プラグインが簡単に使える botkit.rb ということで lingrvant.rb を書いたのだけれど、使い方は sample.lingrvant.rb をみれば分かる通り :-)

ポイントは、Lingrvant::Plugin を継承したクラスがどっかで定義されてたら勝手に使えることと、Message の type に対応したメソッドが (よっぽど変な名前じゃない限りは) 勝手に対応される点など。たとえば、system:broadcast なら on_system_broadcast が呼ばれるし、bot のイベントの場合は _bot をつけて呼ばれる。たとえばボットの入室は on_system_enter_bot が呼ばれる。

あとは、observe がタイムアウトで戻って来たら on_idle が呼ばれ、occupants の変更は on_occupant が呼ばれるのが botkit.rb にはない機能。anonymous observe の監視に便利。何に使うか知らないけれど。

それから、サンプルではなくて Lingrvant Botkit で作った実用になるボットも二つ書いてみました。Nbot (展開したソースは http://n.h7a.org/hacks/nbot) と Alingrce.rb。こういうのが簡単に書けるというのが、一応の目標だったのでまずまずかな。

Nbot は Lingrvant という名前で、http://www.lingr.com/room/lingrvant に常駐してます。Alingrce は A.L.I.C.E bot で http://www.lingr.com/room/alice に常駐してます。暇な人は遊んでみてくださいな。

Trackback link:

トラックバック用URLを生成するには、JavaScriptを有効にしてください。



  
情報を記憶する

Emoticons /

酢ハムがいったいどんなハムなのかはともかく…
 

 

通知:
非公開:

注意: 使用できるタグは <b> と <i> のみです。URLやメールアドレスはそのまま記述すればリンクになります。