Skip to content

Instantly share code, notes, and snippets.

@stuart-warren
Created June 10, 2015 19:39
Show Gist options
  • Select an option

  • Save stuart-warren/bdfd8562b93d65a35672 to your computer and use it in GitHub Desktop.

Select an option

Save stuart-warren/bdfd8562b93d65a35672 to your computer and use it in GitHub Desktop.

Revisions

  1. stuart-warren created this gist Jun 10, 2015.
    42 changes: 42 additions & 0 deletions hubot-wizard.coffee
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,42 @@
    #
    # 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