Skip to content

Instantly share code, notes, and snippets.

@stuart-warren
Created June 10, 2015 19:39
Show Gist options
  • Save stuart-warren/bdfd8562b93d65a35672 to your computer and use it in GitHub Desktop.
Save stuart-warren/bdfd8562b93d65a35672 to your computer and use it in GitHub Desktop.
Hubot Conversation
#
# Description:
# Have a multi-step conversation with hubot
#
# Commands:
# hubot start wizard - Allow hubot to ask you some questions
#
module.exports = (robot) ->
robot.respond /start wizard/i, (res) ->
res.reply "lets go!"
user = {stage: 1}
name = res.message.user.name.toLowerCase()
robot.brain.set name, user
console.log "user created: #{name} stage: #{user.stage}"
robot.hear /(\w+)/i, (msg) ->
name = msg.message.user.name.toLowerCase()
user = robot.brain.get(name) or null
if user != null
console.log "user exists: #{name} stage: #{user.stage}"
answer = msg.match[1]
switch user.stage
when 1
msg.reply "Q#{user.stage}. What is your name"
when 2
user.name = answer
msg.reply "Q#{user.stage}. What is your age"
when 3
user.age = answer
msg.reply "Q#{user.stage}. What is your gender"
when 4
user.gender = answer
msg.reply "Q#{user.stage}. What is your favorite color"
when 5
user.color = answer
user.stage += 1
robot.brain.set name, user
if user.stage > 5
msg.reply "Hi #{user.name}. You are #{user.age}, #{user.gender} and your favorite color is #{user.color}"
robot.brain.remove name
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment