From 0e950ee3cadb4d7c369504229a94f3ce67ec1396 Mon Sep 17 00:00:00 2001 From: wpower12 Date: Thu, 8 Oct 2015 10:48:50 -0400 Subject: [PATCH 1/6] Adding cellauto, plusplus --- .editorconfig | 0 .gitignore | 0 Procfile | 0 README.md | 0 bin/hubot.cmd | 0 external-scripts.json | 0 hubot-scripts.json | 0 package.json | 0 scripts/cellauto.js | 82 +++++++++++++++++++++++++++++++++++++++++++ scripts/nope.js | 14 ++++---- scripts/plusplus.js | 73 ++++++++++++++++++++++++++++++++++++++ scripts/welcome.js | 0 12 files changed, 162 insertions(+), 7 deletions(-) mode change 100644 => 100755 .editorconfig mode change 100644 => 100755 .gitignore mode change 100644 => 100755 Procfile mode change 100644 => 100755 README.md mode change 100644 => 100755 bin/hubot.cmd mode change 100644 => 100755 external-scripts.json mode change 100644 => 100755 hubot-scripts.json mode change 100644 => 100755 package.json create mode 100644 scripts/cellauto.js mode change 100644 => 100755 scripts/nope.js create mode 100644 scripts/plusplus.js mode change 100644 => 100755 scripts/welcome.js diff --git a/.editorconfig b/.editorconfig old mode 100644 new mode 100755 diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 diff --git a/Procfile b/Procfile old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/bin/hubot.cmd b/bin/hubot.cmd old mode 100644 new mode 100755 diff --git a/external-scripts.json b/external-scripts.json old mode 100644 new mode 100755 diff --git a/hubot-scripts.json b/hubot-scripts.json old mode 100644 new mode 100755 diff --git a/package.json b/package.json old mode 100644 new mode 100755 diff --git a/scripts/cellauto.js b/scripts/cellauto.js new file mode 100644 index 0000000..e895e42 --- /dev/null +++ b/scripts/cellauto.js @@ -0,0 +1,82 @@ +/* + * Cellular Automata Drawing for SlackBot + * + * @author wkp3 + */ +module.exports = function (robot) { + robot.respond('/draw a ca$/i', function (msg) { + msg.send("generic call"); + var l = drawCA( 12, "0000000000001000000000000", 30 ); + msg.send(l); + }); + + robot.respond('/draw a ca (.*) (.*) (.*)/', function (msg) { + var gens = +msg.match[1]; + var start = msg.match[2]; + var rule = +msg.match[3]; + + var debug = "```"; + debug += gens+"\n"; + debug += start+"\n"; + debug += rule+"\n"; + debug += "```"; + msg.send(debug); + + + var l = drawCA( gens, start, rule ); + msg.send(l); + + }); + + + function drawCA(gens, start, r) { + var generations = gens; + var size = start.length; + + var world = []; + var oldworld = []; + + var rule = r.toString(2); + rule = "00000000".substr(rule.length)+rule; //Thank you SO. Holy shit. + + //Initial values + for (i = 0; i < size; i++) { + world[i] = +start.charAt(i); + } + + var line = "```"; + + for (g = 0; g < generations; g++) { + for (c = 0; c < size; c++) { + line += world[c] === 0 ? "\u25A1" : "\u25A0"; + oldworld[c] = world[c]; + } + line += "\n"; + + //Calculate new world from oldworld and rule + for (c = 0; c < size; c++) { + //Calculate value of parents + var parents = []; + parents[1] = oldworld[c]; + if (c == 0) { + parents[0] = 0; + parents[2] = oldworld[1]; + } else if (c == (size - 1)) { + parents[0] = oldworld[size - 2]; + parents[2] = 0; + } else { + parents[0] = oldworld[c - 1]; + parents[2] = oldworld[c + 1]; + } + + //val = parents[0]*4 + parents[1] * 2 + parents[2]; + val = parents[0] + parents[1] * 2 + parents[2]*4; + world[c] = +rule.charAt(7-val); + } + } + line += "```"; + return line; + } + +}; + diff --git a/scripts/nope.js b/scripts/nope.js old mode 100644 new mode 100755 index 9323143..0060765 --- a/scripts/nope.js +++ b/scripts/nope.js @@ -3,11 +3,11 @@ // module.exports = function(robot){ - robot.hear(/^([\s\w'@.-:]*)\s*([-+]{2}|—)(?:\s+(?:for|because|cause|cuz)\s+(.+))?$/i, function(msg){ - msg.send("Nope. https://github.com/tudev/owlbot/issues/8") - }) - - robot.hear(/(top|bottom) (\d+)/i, function(msg){ - msg.send("Nope. https://github.com/tudev/owlbot/issues/8") - }) +// robot.hear(/^([\s\w'@.-:]*)\s*([-+]{2}|???)(?:\s+(?:for|because|cause|cuz)\s+(.+))?$/i, function(msg){ +// msg.send("Nope. https://github.com/tudev/owlbot/issues/8") +// }) +// +// robot.hear(/(top|bottom) (\d+)/i, function(msg){ +// msg.send("Nope. https://github.com/tudev/owlbot/issues/8") +// }) } diff --git a/scripts/plusplus.js b/scripts/plusplus.js new file mode 100644 index 0000000..c217245 --- /dev/null +++ b/scripts/plusplus.js @@ -0,0 +1,73 @@ +/* + * Custom ++/-- script to handle people ++'ing stuff. + * + * Features + * + * Per user rate limiting + * Tracking totals + * + */ + +module.exports = function (robot) { + + /** + * ++ - Increment points of target + * + * */ + robot.respond('/(.*)\\+\\+/', function (msg) { + msg.send("++'ing " + msg.match[1] + " from: " + msg.message.user.name); + + var target = msg.match[1]; + var user = msg.message.user.name; + var t; + if( clearedTimeout( user ) ){ + t = robot.brain.get("pp_"+target) || 0; + robot.brain.set("pp_"+target, t+1); + setTimeout( user ); + } + }); + + /** + * -- - Decrement points of target + * + * */ + robot.respond('/(.*)\\\-\\\-/', function (msg) { + msg.send("--'ing " + msg.match[1] + " from: " + msg.message.user.name); + + var target = msg.match[1]; + var user = msg.message.user.name; + var t; + if( clearedTimeout( user ) ){ + t = robot.brain.get("pp_"+target) || 0; + robot.brain.set("pp_"+target, t-1); + setTimeout( user ); + } + }); + + /** + * points - returns current total points of target + * + * */ + robot.respond('/points (.*)/', function (msg) { + msg.send("points for " + msg.match[1] + " from: " + msg.message.user.name); + + var target = msg.match[1]; + var p = robot.brain.get("pp_"+target) || 0; + + msg.send("points for "+target+": "+p); + + }); + + function clearedTimeout(user_name) { + var TIMEOUT = 5000; + var usertime = robot.brain.get("ppto_"+user_name) || 0; + return (Date.now() - usertime) > TIMEOUT; + } + + + function setTimeout(user_name) { + var fieldname = "ppto_"+user_name; + robot.brain.set( fieldname, Date.now() ); + } +}; + diff --git a/scripts/welcome.js b/scripts/welcome.js old mode 100644 new mode 100755 From 7a1ce9774b31a58de587007c59637b84882a512f Mon Sep 17 00:00:00 2001 From: wpower12 Date: Thu, 8 Oct 2015 11:38:07 -0400 Subject: [PATCH 2/6] Revert "Adding cellauto, plusplus" This reverts commit 0e950ee3cadb4d7c369504229a94f3ce67ec1396. --- .editorconfig | 0 .gitignore | 0 Procfile | 0 README.md | 0 bin/hubot.cmd | 0 external-scripts.json | 0 hubot-scripts.json | 0 package.json | 0 scripts/cellauto.js | 82 ------------------------------------------- scripts/nope.js | 14 ++++---- scripts/plusplus.js | 73 -------------------------------------- scripts/welcome.js | 0 12 files changed, 7 insertions(+), 162 deletions(-) mode change 100755 => 100644 .editorconfig mode change 100755 => 100644 .gitignore mode change 100755 => 100644 Procfile mode change 100755 => 100644 README.md mode change 100755 => 100644 bin/hubot.cmd mode change 100755 => 100644 external-scripts.json mode change 100755 => 100644 hubot-scripts.json mode change 100755 => 100644 package.json delete mode 100644 scripts/cellauto.js mode change 100755 => 100644 scripts/nope.js delete mode 100644 scripts/plusplus.js mode change 100755 => 100644 scripts/welcome.js diff --git a/.editorconfig b/.editorconfig old mode 100755 new mode 100644 diff --git a/.gitignore b/.gitignore old mode 100755 new mode 100644 diff --git a/Procfile b/Procfile old mode 100755 new mode 100644 diff --git a/README.md b/README.md old mode 100755 new mode 100644 diff --git a/bin/hubot.cmd b/bin/hubot.cmd old mode 100755 new mode 100644 diff --git a/external-scripts.json b/external-scripts.json old mode 100755 new mode 100644 diff --git a/hubot-scripts.json b/hubot-scripts.json old mode 100755 new mode 100644 diff --git a/package.json b/package.json old mode 100755 new mode 100644 diff --git a/scripts/cellauto.js b/scripts/cellauto.js deleted file mode 100644 index e895e42..0000000 --- a/scripts/cellauto.js +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Cellular Automata Drawing for SlackBot - * - * @author wkp3 - */ -module.exports = function (robot) { - robot.respond('/draw a ca$/i', function (msg) { - msg.send("generic call"); - var l = drawCA( 12, "0000000000001000000000000", 30 ); - msg.send(l); - }); - - robot.respond('/draw a ca (.*) (.*) (.*)/', function (msg) { - var gens = +msg.match[1]; - var start = msg.match[2]; - var rule = +msg.match[3]; - - var debug = "```"; - debug += gens+"\n"; - debug += start+"\n"; - debug += rule+"\n"; - debug += "```"; - msg.send(debug); - - - var l = drawCA( gens, start, rule ); - msg.send(l); - - }); - - - function drawCA(gens, start, r) { - var generations = gens; - var size = start.length; - - var world = []; - var oldworld = []; - - var rule = r.toString(2); - rule = "00000000".substr(rule.length)+rule; //Thank you SO. Holy shit. - - //Initial values - for (i = 0; i < size; i++) { - world[i] = +start.charAt(i); - } - - var line = "```"; - - for (g = 0; g < generations; g++) { - for (c = 0; c < size; c++) { - line += world[c] === 0 ? "\u25A1" : "\u25A0"; - oldworld[c] = world[c]; - } - line += "\n"; - - //Calculate new world from oldworld and rule - for (c = 0; c < size; c++) { - //Calculate value of parents - var parents = []; - parents[1] = oldworld[c]; - if (c == 0) { - parents[0] = 0; - parents[2] = oldworld[1]; - } else if (c == (size - 1)) { - parents[0] = oldworld[size - 2]; - parents[2] = 0; - } else { - parents[0] = oldworld[c - 1]; - parents[2] = oldworld[c + 1]; - } - - //val = parents[0]*4 + parents[1] * 2 + parents[2]; - val = parents[0] + parents[1] * 2 + parents[2]*4; - world[c] = +rule.charAt(7-val); - } - } - line += "```"; - return line; - } - -}; - diff --git a/scripts/nope.js b/scripts/nope.js old mode 100755 new mode 100644 index 0060765..9323143 --- a/scripts/nope.js +++ b/scripts/nope.js @@ -3,11 +3,11 @@ // module.exports = function(robot){ -// robot.hear(/^([\s\w'@.-:]*)\s*([-+]{2}|???)(?:\s+(?:for|because|cause|cuz)\s+(.+))?$/i, function(msg){ -// msg.send("Nope. https://github.com/tudev/owlbot/issues/8") -// }) -// -// robot.hear(/(top|bottom) (\d+)/i, function(msg){ -// msg.send("Nope. https://github.com/tudev/owlbot/issues/8") -// }) + robot.hear(/^([\s\w'@.-:]*)\s*([-+]{2}|—)(?:\s+(?:for|because|cause|cuz)\s+(.+))?$/i, function(msg){ + msg.send("Nope. https://github.com/tudev/owlbot/issues/8") + }) + + robot.hear(/(top|bottom) (\d+)/i, function(msg){ + msg.send("Nope. https://github.com/tudev/owlbot/issues/8") + }) } diff --git a/scripts/plusplus.js b/scripts/plusplus.js deleted file mode 100644 index c217245..0000000 --- a/scripts/plusplus.js +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Custom ++/-- script to handle people ++'ing stuff. - * - * Features - * - * Per user rate limiting - * Tracking totals - * - */ - -module.exports = function (robot) { - - /** - * ++ - Increment points of target - * - * */ - robot.respond('/(.*)\\+\\+/', function (msg) { - msg.send("++'ing " + msg.match[1] + " from: " + msg.message.user.name); - - var target = msg.match[1]; - var user = msg.message.user.name; - var t; - if( clearedTimeout( user ) ){ - t = robot.brain.get("pp_"+target) || 0; - robot.brain.set("pp_"+target, t+1); - setTimeout( user ); - } - }); - - /** - * -- - Decrement points of target - * - * */ - robot.respond('/(.*)\\\-\\\-/', function (msg) { - msg.send("--'ing " + msg.match[1] + " from: " + msg.message.user.name); - - var target = msg.match[1]; - var user = msg.message.user.name; - var t; - if( clearedTimeout( user ) ){ - t = robot.brain.get("pp_"+target) || 0; - robot.brain.set("pp_"+target, t-1); - setTimeout( user ); - } - }); - - /** - * points - returns current total points of target - * - * */ - robot.respond('/points (.*)/', function (msg) { - msg.send("points for " + msg.match[1] + " from: " + msg.message.user.name); - - var target = msg.match[1]; - var p = robot.brain.get("pp_"+target) || 0; - - msg.send("points for "+target+": "+p); - - }); - - function clearedTimeout(user_name) { - var TIMEOUT = 5000; - var usertime = robot.brain.get("ppto_"+user_name) || 0; - return (Date.now() - usertime) > TIMEOUT; - } - - - function setTimeout(user_name) { - var fieldname = "ppto_"+user_name; - robot.brain.set( fieldname, Date.now() ); - } -}; - diff --git a/scripts/welcome.js b/scripts/welcome.js old mode 100755 new mode 100644 From 019509abc22c46559ddc463eec4bd2ac8a662186 Mon Sep 17 00:00:00 2001 From: wpower12 Date: Thu, 8 Oct 2015 11:39:05 -0400 Subject: [PATCH 3/6] Adding plusplus. Commented out the nope stuff too. --- scripts/nope.js | 20 ++++++------- scripts/plusplus.js | 73 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+), 10 deletions(-) create mode 100644 scripts/plusplus.js diff --git a/scripts/nope.js b/scripts/nope.js index 9323143..3864853 100644 --- a/scripts/nope.js +++ b/scripts/nope.js @@ -1,13 +1,13 @@ // Description // > nope // - -module.exports = function(robot){ - robot.hear(/^([\s\w'@.-:]*)\s*([-+]{2}|—)(?:\s+(?:for|because|cause|cuz)\s+(.+))?$/i, function(msg){ - msg.send("Nope. https://github.com/tudev/owlbot/issues/8") - }) - - robot.hear(/(top|bottom) (\d+)/i, function(msg){ - msg.send("Nope. https://github.com/tudev/owlbot/issues/8") - }) -} +// +//module.exports = function(robot){ +// robot.hear(/^([\s\w'@.-:]*)\s*([-+]{2}|???)(?:\s+(?:for|because|cause|cuz)\s+(.+))?$/i, function(msg){ +// msg.send("Nope. https://github.com/tudev/owlbot/issues/8") +// }) +// +// robot.hear(/(top|bottom) (\d+)/i, function(msg){ +// msg.send("Nope. https://github.com/tudev/owlbot/issues/8") +// }) +//} diff --git a/scripts/plusplus.js b/scripts/plusplus.js new file mode 100644 index 0000000..c217245 --- /dev/null +++ b/scripts/plusplus.js @@ -0,0 +1,73 @@ +/* + * Custom ++/-- script to handle people ++'ing stuff. + * + * Features + * + * Per user rate limiting + * Tracking totals + * + */ + +module.exports = function (robot) { + + /** + * ++ - Increment points of target + * + * */ + robot.respond('/(.*)\\+\\+/', function (msg) { + msg.send("++'ing " + msg.match[1] + " from: " + msg.message.user.name); + + var target = msg.match[1]; + var user = msg.message.user.name; + var t; + if( clearedTimeout( user ) ){ + t = robot.brain.get("pp_"+target) || 0; + robot.brain.set("pp_"+target, t+1); + setTimeout( user ); + } + }); + + /** + * -- - Decrement points of target + * + * */ + robot.respond('/(.*)\\\-\\\-/', function (msg) { + msg.send("--'ing " + msg.match[1] + " from: " + msg.message.user.name); + + var target = msg.match[1]; + var user = msg.message.user.name; + var t; + if( clearedTimeout( user ) ){ + t = robot.brain.get("pp_"+target) || 0; + robot.brain.set("pp_"+target, t-1); + setTimeout( user ); + } + }); + + /** + * points - returns current total points of target + * + * */ + robot.respond('/points (.*)/', function (msg) { + msg.send("points for " + msg.match[1] + " from: " + msg.message.user.name); + + var target = msg.match[1]; + var p = robot.brain.get("pp_"+target) || 0; + + msg.send("points for "+target+": "+p); + + }); + + function clearedTimeout(user_name) { + var TIMEOUT = 5000; + var usertime = robot.brain.get("ppto_"+user_name) || 0; + return (Date.now() - usertime) > TIMEOUT; + } + + + function setTimeout(user_name) { + var fieldname = "ppto_"+user_name; + robot.brain.set( fieldname, Date.now() ); + } +}; + From ac2bc6971c13b659d18b6148c397a76f4b0df99e Mon Sep 17 00:00:00 2001 From: wpower12 Date: Thu, 8 Oct 2015 13:14:39 -0400 Subject: [PATCH 4/6] @samcouch suggestions --- scripts/plusplus.js | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/scripts/plusplus.js b/scripts/plusplus.js index c217245..f85e56c 100644 --- a/scripts/plusplus.js +++ b/scripts/plusplus.js @@ -15,14 +15,12 @@ module.exports = function (robot) { * * */ robot.respond('/(.*)\\+\\+/', function (msg) { - msg.send("++'ing " + msg.match[1] + " from: " + msg.message.user.name); - var target = msg.match[1]; var user = msg.message.user.name; var t; if( clearedTimeout( user ) ){ - t = robot.brain.get("pp_"+target) || 0; - robot.brain.set("pp_"+target, t+1); + t = robot.brain.get(plusplus.words.target) || 0; + robot.brain.set(plusplus.words.target, t+1); setTimeout( user ); } }); @@ -32,14 +30,12 @@ module.exports = function (robot) { * * */ robot.respond('/(.*)\\\-\\\-/', function (msg) { - msg.send("--'ing " + msg.match[1] + " from: " + msg.message.user.name); - var target = msg.match[1]; var user = msg.message.user.name; var t; if( clearedTimeout( user ) ){ - t = robot.brain.get("pp_"+target) || 0; - robot.brain.set("pp_"+target, t-1); + t = robot.brain.get(plusplus.words.target) || 0; + robot.brain.set(plusplus.words.target, t-1); setTimeout( user ); } }); @@ -49,25 +45,19 @@ module.exports = function (robot) { * * */ robot.respond('/points (.*)/', function (msg) { - msg.send("points for " + msg.match[1] + " from: " + msg.message.user.name); - var target = msg.match[1]; - var p = robot.brain.get("pp_"+target) || 0; - + var p = robot.brain.get(plusplus.words.target) || 0; msg.send("points for "+target+": "+p); - }); function clearedTimeout(user_name) { var TIMEOUT = 5000; - var usertime = robot.brain.get("ppto_"+user_name) || 0; + var usertime = robot.brain.get(plusplus.users.user_name) || 0; return (Date.now() - usertime) > TIMEOUT; } - function setTimeout(user_name) { - var fieldname = "ppto_"+user_name; - robot.brain.set( fieldname, Date.now() ); + robot.brain.set( plusplus.users.user_name, Date.now() ); } }; From 378d39ad120096f1e45f111f8e62348fbedd0eab Mon Sep 17 00:00:00 2001 From: wpower12 Date: Fri, 16 Oct 2015 15:46:46 -0400 Subject: [PATCH 5/6] Changed brain storage per @samuelcouch's suggestion. Added init. --- scripts/plusplus.js | 45 ++++++++++++++++++++++++++++----------------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/scripts/plusplus.js b/scripts/plusplus.js index f85e56c..5a6d449 100644 --- a/scripts/plusplus.js +++ b/scripts/plusplus.js @@ -9,55 +9,66 @@ */ module.exports = function (robot) { + + //This initilizes the plusplus object. So shit is gonna get overridden + //everytime we connect to redis. I think? + robot.brain.on('loaded', function () { + robot.brain.plusplus = { + users: [], + words: [] + }; + }); /** * ++ - Increment points of target - * * */ robot.respond('/(.*)\\+\\+/', function (msg) { var target = msg.match[1]; var user = msg.message.user.name; var t; - if( clearedTimeout( user ) ){ - t = robot.brain.get(plusplus.words.target) || 0; - robot.brain.set(plusplus.words.target, t+1); - setTimeout( user ); + if (clearedTimeout(user)) { + t = robot.brain.plusplus.words.target || 0; + robot.brain.plusplus.words.target = t + 1; + setTimeout(user); } }); /** * -- - Decrement points of target - * * */ robot.respond('/(.*)\\\-\\\-/', function (msg) { var target = msg.match[1]; var user = msg.message.user.name; var t; - if( clearedTimeout( user ) ){ - t = robot.brain.get(plusplus.words.target) || 0; - robot.brain.set(plusplus.words.target, t-1); - setTimeout( user ); + if (clearedTimeout(user)) { + t = robot.brain.plusplus.words.target || 0; + robot.brain.plusplus.words.target = t - 1; + setTimeout(user); } }); /** * points - returns current total points of target - * * */ robot.respond('/points (.*)/', function (msg) { var target = msg.match[1]; - var p = robot.brain.get(plusplus.words.target) || 0; - msg.send("points for "+target+": "+p); + var user = msg.message.user.name; + if (clearedTimeout(user)) { + var p = robot.brain.plusplus.words.target || 0; + msg.send("points for " + target + ": " + p); + setTimeout(user); + } }); function clearedTimeout(user_name) { - var TIMEOUT = 5000; - var usertime = robot.brain.get(plusplus.users.user_name) || 0; + var TIMEOUT = 2000; + var usertime = robot.brain.plusplus.users.user_name || 0; return (Date.now() - usertime) > TIMEOUT; + return true; } - + function setTimeout(user_name) { - robot.brain.set( plusplus.users.user_name, Date.now() ); + robot.brain.plusplus.users.user_name = Date.now(); } }; From bf6219501ea21aa2d3bd725834b91cd9bcefe569 Mon Sep 17 00:00:00 2001 From: wpower12 Date: Fri, 16 Oct 2015 15:49:28 -0400 Subject: [PATCH 6/6] Removing nope --- scripts/nope.js | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 scripts/nope.js diff --git a/scripts/nope.js b/scripts/nope.js deleted file mode 100644 index 3864853..0000000 --- a/scripts/nope.js +++ /dev/null @@ -1,13 +0,0 @@ -// Description -// > nope -// -// -//module.exports = function(robot){ -// robot.hear(/^([\s\w'@.-:]*)\s*([-+]{2}|???)(?:\s+(?:for|because|cause|cuz)\s+(.+))?$/i, function(msg){ -// msg.send("Nope. https://github.com/tudev/owlbot/issues/8") -// }) -// -// robot.hear(/(top|bottom) (\d+)/i, function(msg){ -// msg.send("Nope. https://github.com/tudev/owlbot/issues/8") -// }) -//}