diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..07e6e472c --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/node_modules diff --git a/bot.js b/bot.js index 227944a9f..c85848137 100755 --- a/bot.js +++ b/bot.js @@ -88,7 +88,7 @@ controller.hears(['hello','hi'],'direct_message,direct_mention,mention',function bot.api.reactions.add({ timestamp: message.ts, channel: message.channel, - name: 'robot_face', + name: 'robot_face' },function(err, res) { if (err) { bot.botkit.log('Failed to add emoji reaction :(',err); @@ -121,6 +121,37 @@ controller.hears(['call me (.*)'],'direct_message,direct_mention,mention',functi }); }); +controller.hears(['prime (.*)'], 'direct_message,direct_mention,mention', function(bot, message) { + var matches = message.text.match(/prime (.*)/i); + var number = parseInt(matches[1]); + var primes = nextTenPrimes(number); + var primes = lastTenPrimes(number); + if (number >=0){ + if(isPrime(number)) { + bot.reply(message, 'number is a prime'); + } else { + + //bot.reply(message, 'number is not a prime, next 10 primes are ' + primes.toString()); + + bot.reply(message, 'number is not a prime, last 10 primes are ' + primes.toString()); + } + } + + + +}); + +controller.hears(['prime.'], 'direct_message,direct_mention,mention', function(bot, message) { + + var i = message.text.lastIndexOf('.'); + if (i != -1) { + bot.reply(message, '2, 3, 5, 7, 11, 13, 17, 19, 23, 29'); + + } +}); + + + controller.hears(['what is my name','who am i'],'direct_message,direct_mention,mention',function(bot, message) { controller.storage.users.get(message.user,function(err, user) { @@ -132,6 +163,16 @@ controller.hears(['what is my name','who am i'],'direct_message,direct_mention,m }); }); +controller.hears(['who made you'], 'direct_message,direct_mention,mention', function(bot, message) { + controller.storage.users.get(message.user,function(err, user) { + if (user && user.name) { + bot.reply(message,'You made me - master ' + user.name + '!!'); + } else { + bot.reply(message,'I don\'t know yet!.'); + } + }); +}); + controller.hears(['shutdown'],'direct_message,direct_mention,mention',function(bot, message) { @@ -186,3 +227,39 @@ function formatUptime(uptime) { uptime = uptime + ' ' + unit; return uptime; } + + +function isPrime(n) { + if (isNaN(n) || !isFinite(n) || n%1 || n<2) return false; + if (n%2==0) return (n==2); + var m=Math.sqrt(n); + for (var i=3;i<=m;i+=2) { + if (n%i==0) return false; + } + return true; +} + +function nextTenPrimes(n) { + var primes = []; + + do{ + if(isPrime(n)){ + primes.push(n); + } + n++; + }while(primes.length <10) + return primes; +} + +function lastTenPrimes(n) { + var primes = []; + + do{ + if(isPrime(n)){ + primes.push(n); + } + n--; + if(n < 1) break; + }while(primes.length <10) + return primes; +}