Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Hacking Culture with Chat Robots

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

Hacking Culture with Chat Robots

Robots are for automation, and what you choose to automate has a feedback effect on the people who use it.

Avatar for Ben Straub

Ben Straub

May 29, 2015
Tweet

More Decks by Ben Straub

Other Decks in Technology

Transcript

  1. module.exports = (robot) -> robot.respond /address\s*(me)?$/i, (msg) -> msg.send ":office:

    Van Nelleweg 1 3044 BC Rotterdam" robot.respond /(tele)?phone\s*(me)?$/i, (msg) -> msg.send ":phone: tel:+31107504000"
  2. module.exports = (robot) -> unless trelloKey and trelloToken console.log "Provide

    HUBOT_TRELLO_KEY and HUBOT_TRELLO_TOKEN to enable Trello subscriptions" return robot.brain.data.trelloSubscriptions ?= {} robot.brain.data.trelloState ?= {} # UTILITIES sendToRooms = (listid, message) -> # Figure out which rooms get this message for roomid of robot.brain.data.trelloSubscriptions if listid in robot.brain.data.trelloSubscriptions[roomid] robot.messageRoom roomid, message isReportable = (listid, action) -> switch action.type when 'updateCard' then action.data.listAfter.id == listid else true listName = (action) -> if action.data.list? action.data.list.name else action.data.listAfter.name updateStateForList = (listid) -> new TrelloApp(robot).fetchAddActionsForList listid, (actions) -> for a in actions when isReportable(listid, a) unless robot.brain.data.trelloState[a.id]? sendToRooms listid, "Trello card '#{a.data.card.name}' added to '#{listName a}'\n" + ":point_right: https://trello.com/c/#{a.data.card.shortLink}" robot.brain.data.trelloState[a.id] = true updateState = -> # Get a set of lists to query listids = {} for roomid of robot.brain.data.trelloSubscriptions for listid in robot.brain.data.trelloSubscriptions[roomid] listids[listid] = true for listid of listids updateStateForList listid # Check status every 30 seconds setInterval updateState, 30*1000 updateState()
  3. ▸ Address and phone number ▸ Trello notifications ▸ Foursquare

    location ▸ Package tracking ▸ Rainforest test runs ▸ AWS EC2 instance management ▸ Twitter search ▸ …
  4. AUTOMATING AN ACTION SAYS ▸ We want this thing to

    be easy ▸ We want this thing to be correct
  5. AUTOMATING AN ACTION SAYS ▸ We want this thing to

    be easy ▸ We want this thing to be correct ▸ We don't care how personal it is
  6. !!!

  7. GO DO THIS RIGHT NOW GET A CHAT GET A

    ROBOT AUTOMATE ALL THE THINGS