search
LoginSignup
0

More than 5 years have passed since last update.

posted at

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

ざっくりいうと

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

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
What you can do with signing up
0