UNPKG

jarvis-bot

Version:

A JARVIS for your team - your most powerful bot and loyal butler.

84 lines (66 loc) 2.55 kB
# Description: # Username aliasing, set basis for userId method. # # Commands: # hubot I am | I'm <alias> - Set your own alias # hubot <username> is <alias> - Set alias for username # hubot who is <alias> - See who's using the alias # hubot clear alias for <username> - Remove all aliases for the user # # Author: # kengz _ = require 'lomath' userId = require(__dirname+'/helper.coffee').userId # set an alias for user setAliasForUser = (robot, user, msg, alias) -> name = userId(robot, user, msg) robot.brain.data.aliases[name] ?= [name] robot.brain.data.aliases[name] = _.union(robot.brain.data.aliases[name], [alias.toLowerCase()]) # clear alias clearAliasForUser = (robot, user, msg) -> name = userId(robot, user, msg) robot.brain.data.aliases[name] = [name] # list all aliases for the user listAliasForUser = (robot, user, msg) -> robot.brain.data.aliases[userId(robot, user, msg)].join(', ') module.exports = (robot) -> robot.brain.data.aliases ?= {} robot.respond /I am(?! in| at) (.*)/i, (msg) -> user = msg.message.user.name alias = msg.match[1] setAliasForUser robot, user, msg, alias msg.send "Okay, I'll remember that "+user+" is "+alias robot.respond /I\'*\’*m(?! in| at) (.*)/i, (msg) -> user = msg.message.user.name alias = msg.match[1] setAliasForUser robot, user, msg, alias msg.send "Okay, I'll remember that "+user+" is "+alias robot.respond /My name is(?! in| at) (.*)/i, (msg) -> user = msg.message.user.name alias = msg.match[1] setAliasForUser robot, user, msg, alias msg.send "Okay, I'll remember that "+user+" is "+alias # someone is alias robot.respond /((?:(?!is)\w)*) is(?! in| at) (.*)/i, (msg) -> user = userId(robot, msg.match[1]) if user? alias = msg.match[2] setAliasForUser robot, user, msg, alias msg.send "Okay, I'll remember that "+user+" is "+alias else '' # see the alias set robot.respond /who is (.*)/i, (msg) -> name = msg.match[1].replace('?', '') user = userId(robot, name, msg) if user? msg.send name+" is also "+listAliasForUser(robot, user, msg) robot.respond /who am I/i, (msg) -> name = msg.message.user.name user = userId(robot, name, msg) msg.send name+" is also "+listAliasForUser(robot, user, msg) # clear all aliases for user robot.respond /clear alias for (.*)/i, (msg) -> user = userId(robot, msg.match[1], msg) clearAliasForUser robot, user, msg msg.send "Okay, aliases cleared for "+user