LoginSignup
5
5

More than 5 years have passed since last update.

Hubot | HubotのScriptを自作する - デスマコロシアムのURLを返却するScript

Last updated at Posted at 2014-08-06

Hubot | HubotのScriptを自作する - デスマコロシアムのURLを返却するScript

概要

HubotのScriptを自作します。

デスマコロシアムのURLを出力してみたいと思います。
※デスマコロシアムは私がCodeIQで出題している問題です

HubotのScript作成に関する公式資料はこちら。

Scriptは JavaScript か CoffeeScript で書いて
%your_bot%/scripts 配下に保存すれば利用できます。

hear と respond

Hubot は入力文字列に反応してレスポンスを返しますが、
hear は宛先を問わずレスポンスし、
respond はHubot宛のメッセージのみにレスポンスします。

自作スクリプト

・ hubot deathmaN で第N回デスマコロシアム問題へのURLを出力。
・ hubot deathma? で最新のデスマコロシアム問題へのURLを出力。
・ 山川 に対して 豊(稲中参照) を出力。
・ ファイル名は deathma.coffee

module.exports = (robot) ->
  deathmas = [
    "https://codeiq.jp/ace/tbpgr/q791",
    "https://codeiq.jp/ace/tbpgr_colosseum_manager/q835",
    "https://codeiq.jp/ace/tbpgr_colosseum_manager/q872",
    "https://codeiq.jp/ace/tbpgr_colosseum_manager/q915",
    "https://codeiq.jp/ace/tbpgr_colosseum_manager/q969"
  ]

  robot.respond /deathma(\d+)/i, (msg) ->
    deathma_no = parseInt(msg.match[1]) - 1
    if deathma_no >= deathmas.length
      return msg.send "no deathma"
    msg.send deathmas[deathma_no]

  robot.respond /deathma\?/i, (msg) ->
    msg.send deathmas[deathmas.length - 1]

  robot.hear /^山川$/i, (msg) ->
    msg.send "豊(稲中参照)"

Shell Adapter で自作した Script を試す

$ bin/hubot
Hubot> 山川
Hubot> 豊(稲中参照)
Hubot> hubot deathma1
Hubot> https://codeiq.jp/ace/tbpgr/q791
Hubot> hubot deathma2
Hubot> https://codeiq.jp/ace/tbpgr_colosseum_manager/q835
Hubot> hubot deathma3
Hubot> https://codeiq.jp/ace/tbpgr_colosseum_manager/q872
Hubot> hubot deathma4
Hubot> https://codeiq.jp/ace/tbpgr_colosseum_manager/q915
Hubot> hubot deathma5
Hubot> https://codeiq.jp/ace/tbpgr_colosseum_manager/q969
Hubot> hubot deathma6
Hubot> no deathma
Hubot>
Hubot> hubot deathma?
Hubot> https://codeiq.jp/ace/tbpgr_colosseum_manager/q969

参照

-- URL
第1回デスマコロシアム https://codeiq.jp/ace/tbpgr/q791
第2回デスマコロシアム https://codeiq.jp/ace/tbpgr_colosseum_manager/q835
第3回デスマコロシアム https://codeiq.jp/ace/tbpgr_colosseum_manager/q872
第4回デスマコロシアム https://codeiq.jp/ace/tbpgr_colosseum_manager/q915
第5回デスマコロシアム https://codeiq.jp/ace/tbpgr_colosseum_manager/q969
デスマコロシアムまとめ記事 http://d.hatena.ne.jp/tbpg/20140517/1400291776
5
5
2

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
5
5