MANA-DOT

PIXEL ART, PROGRAMING, ETC.

hubotにIRCのなると(オペレータ権限)配布をやらせる

hubot

IRCBotに新しく入ってきた人になると(オペレータ権限)を配布させることはよくやると思います。 それをHubot+hubot-ircにやらせてみたのでメモ。

以下のスクリプトで実現できます。

module.exports = (robot) ->
  robot.enter (msg) ->
    robot.adapter.bot.send 'MODE', msg.envelope.room, '+o', msg.envelope.user.name

View in github

以下要点箇条書き。

  • robot.enterで人が入ってきた時のイベントをとれる。
  • hubot-ircnode-ircをhubotにマップさせる程度の機能しか提供してくれない。
  • adapter.botがnode-ircのクライアントインスタンスなので、こいつ経由で色々メソッドを呼び出せる。
  • sendは直接コマンドを発行するメソッドなので、なると配布の場合上記のようにすればOK。

他にadapter.botを使う例として、以下のようにしてユーザーのrealnameを取得出来ます。

module.exports = (robot) ->
 robot.hear /whoami/, (bot)->
    robot.adapter.bot.whois bot.envelope.user.name, (res)->
      realname = res.realname.replace /@.*$/, ''
      robot.adapter.notice bot.envelope, realname