From 032fff64e3c7da825802afd2d473602118254cc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoffer=20M=C3=BCller=20Madsen?= Date: Mon, 21 Mar 2016 14:28:02 +0100 Subject: [PATCH] add user stats :clap: --- .gitignore | 2 ++ jonbot.js | 34 +++++++++++++++++++++++++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..902b281 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +data/ diff --git a/jonbot.js b/jonbot.js index 36141b1..2249756 100644 --- a/jonbot.js +++ b/jonbot.js @@ -1,5 +1,7 @@ var Botkit = require('botkit'); -var controller = Botkit.slackbot(); +var controller = Botkit.slackbot({ + json_file_store: procss.argv[3] +}); var bot = controller.spawn({ token: process.argv[2] }) @@ -8,7 +10,31 @@ bot.startRTM(function(err,bot,payload) { throw new Error('Could not connect to Slack'); } }); + +function createUserData(id) { + return {id: id, jon_mentions: 0, bot_mentions: 0}; +}; + +function incrementKey(id, key, amount) { + controller.storage.users.get(id, function(err,user_data) { + if (!user_data) { + console.log("Initializing user data"); + user_data = createUserData(id); + } + console.log("Current user data:",user_data); + console.log("Incrementing mentions. Was " + user_data[key] + " will be " + (user_data[key] + amount)); + user_data[key] = user_data[key] + amount + controller.storage.users.save(user_data); + }); +} + controller.hears(["jonbot","^pattern$"],["direct_message","direct_mention","mention","ambient"],function(bot,message) { + console.log(message.user + " mentioned \"jonbot\""); + + // Increment the logged amount of mentions + incrementKey(message.user, "bot_mentions", 1); + + // Reply properly bot.reply(message,':clap: JOOOOON! :clap:'); bot.api.reactions.add({ timestamp: message.ts, @@ -22,6 +48,12 @@ controller.hears(["jonbot","^pattern$"],["direct_message","direct_mention","ment }); controller.hears(["jon","^pattern$"],["direct_message","direct_mention","mention","ambient"],function(bot,message) { + console.log(message.user + " mentioned \"jon\""); + + // Increment the logged amount of mentions + incrementKey(message.user, "jon_mentions", 1); + + // React with appropriate emoji bot.api.reactions.add({ timestamp: message.ts, channel: message.channel,