1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

litaになりすましてコメントをする

Posted at

ざっくりいうと

litaになりしましてコメントをするhandlerを作成します。
slackを想定しています。

順番

handlerのテンプレートを作成

puppetという名前でハンドラーを作成します。

# handlersというディレクトリを作成(やらなくてもいい)
$ mkdir handlers
$ cd handlers

# テンプレートを作成
$ lita handler puppet => lita-puppetというディレクトリとその配下にファイルが作成されます

# .gemspecを修正
$ vim lita-pappet/lita-pappet.gemspec
=> TODOになっているところなどを適当に変更してください。

handlerの処理を書いていく

puppet <部屋の名前> <メッセージ>と打つと指定した部屋にメッセージがとぶイメージです。

lita-puppet.rb
module Lita
  module Handlers
    class Puppet < Handler
      # ルーティングを作成
      route(
        /^puppet\s+(.{1,})\s+(.{1,})$/, # 一個目のカッコで部屋をキャプチャ、二つ目のカッコでメッセージをキャプチャ
        :puppet,                        # この対象に当てはまったものはpuppetメソッド(下)を呼ぶ
        help: { "puppet <room_name> <message>" => "messageをroomにパペットマペット" }
      )


      def puppet(response)
        # 部屋とメッセージを取得
        room_name = response.matches[0][0]
        message = response.matches[0][1]

        # 部屋とメッセージのオブジェクトを取得
        room = Lita::Room.find_by_name("#{room_name}")
        target_room = Lita::Source.new(room: room)

        # robotヘルパーに2つ引数を与えてメッセージ送信
        robot.send_message(target_room, message)
      end

      Lita.register_handler(self)
    end
  end
end

出来上がりイメージ

投稿
1

自分に反映(ダイレクトメッセージでbotに話しかける)
2

実際にdevelopに反映される
3

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?