Skip to content

Instantly share code, notes, and snippets.

@udzura
Last active August 29, 2015 14:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save udzura/4f6aa043fa4ccf63eee3 to your computer and use it in GitHub Desktop.
Save udzura/4f6aa043fa4ccf63eee3 to your computer and use it in GitHub Desktop.
domoraen-hubot
# Description:
# domoraen
#
# Commands:
# hubot domoraen - 便利な道具を出す
# hubot domoraen <キーワード> - キーワードをもとに便利な道具を出す
# hubot domoraen-chain <classic|hatsumei|tools> - 道具の単語ソースファイルを切り替える
request = require('request')
apiRoot = process.env.HUBOT_DOMORAEN_API_ROOT
accessDomoraen = (url, opts) ->
requestOpts = if opts.method then {url: url, method: opts.method, form: opts.form} else {url: url}
request requestOpts, (err, response, json) ->
if err
opts.onError err
return
if response.statusCode is 404
opts.onError "Not Found"
return
try
data = JSON.parse json
catch
opts.onError json
if data.error?
opts.onError data.error
else
opts.onSuccess data
module.exports = (robot) ->
robot.respond /domoraen (.*)/i, (msg) ->
seed = encodeURIComponent(msg.match[1])
accessDomoraen "#{apiRoot}/tools/#{seed}.json",
onSuccess: (data) -> msg.send data.message
onError: (err) -> msg.send "失敗したよ...: #{err}"
robot.respond /domoraen$/i, (msg) ->
accessDomoraen "#{apiRoot}/tools.json",
onSuccess: (data) -> msg.send data.message
onError: (err) -> msg.send "失敗したよ...: #{err}"
robot.respond /domoraen-chain (.*)/i, (msg) ->
chain = msg.match[1]
accessDomoraen "#{apiRoot}/chains/#{chain}/activation.json",
method: "POST"
form: "dummy=true"
onSuccess: (data) -> msg.send "アップデートしたよ: new chain = #{data.new_chain}"
onError: (err) -> msg.send "失敗したよ...: #{err}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment