UNPKG

hubot-praise

Version:

A hubot script that you can use to praise a coworker, send them an awesome gif and high five them

93 lines (82 loc) 2.62 kB
# Description: # Praise # # Dependencies: # None # # Configuration: # None # # Commands: # hubot high five @hubot for being awesome # hubot high five @hubot # hubot praise @hubot for just being there when i need her # hubot praise @hubot # hubot who praised # # Author: # Marthyn (@Marthyn) images = require './data/highfivegifs.json' module.exports = (robot) -> robot.respond /high five ([^ ]*)( (.*))?/i, (msg) -> if praiseUser(msg, robot) updatePraises(msg, robot) robot.respond /praise ([^ ]*)( (.*))?/i, (msg) -> if praiseUser(msg, robot) updatePraises(msg, robot) robot.respond /who praised/i, (msg) -> getPraises(msg, robot) praiseUser = (msg, robot) -> user = msg.match[1].replace(/@?(.*)/, '$1') message = msg.match[3] current_user = msg.message.user.name if user == current_user msg.send "you can’t high five yourself. that’s just clapping" return false else highfive = msg.random images praise = msg.random praises(user) msg.send highfive msg.send "#{current_user} high fives #{user}.#{if message then " #{message}" else ""}" msg.send praise return true praises = (user) -> return [ "Keep on rocking, #{user}!", "Keep up the great work, #{user}!", "You're awesome, #{user}!", "You're doing good work, #{user}!", "You're the best, #{user}", "Never stop doing what you do #{user}, it's paying off!", "Thanks so much, you've been amazing #{user}!", "How many people does it take to change a lightbulb? Nvm #{user} changed 100 before you even responded!", "Your work is phenomenal, #{user}!", "You are changing lives with your work, #{user}!", "The world is a better place with you around, #{user}", "Is there anything you can't do #{user}? Wow!" ] updatePraises = (msg, robot) -> currentPraises = robot.brain.get('praises') today = new Date().toLocaleString() if !currentPraises || currentPraises.length == 0 currentPraises = [] currentPraises.push( { receiver: msg.match[1].replace(/@?(.*)/, '$1'), sender: msg.message.user.name, message: msg.match[3], date: today } ) robot.brain.set('praises', currentPraises) robot.brain.save getPraises = (msg, robot) -> msg.send "ALL PRAISES EVER" message = "" allPraises = robot.brain.get('praises') if allPraises for praise in allPraises message += "#{praise.sender} sent a praise for #{if praise.message then " #{praise.message}" else "awesomeness"} to #{praise.receiver} on #{praise.date} \n\r"; msg.send message else msg.send "none"