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
参照
-
Hubot GitHubの Scriptingの説明ページ
https://github.com/github/hubot/blob/master/docs/scripting.md -
当記事のサンプルコードをGitHubにアップしました
https://github.com/tbpgr/hubot_scripts -
デスマコロシアム
-- | 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 |