Advertisement
Guest User

Untitled

a guest
May 16th, 2016
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.66 KB | None | 0 0
  1. /**
  2. * FILL THESE V
  3. */
  4. var USERNAME = "Coconut"
  5. var EMAIL = "deathpawzkitty@gmail.com"
  6. var PASSWORD = "Kuroka177" // meh
  7. var RESTRICT_CLEVERBOT_TO_CHANNEL = false
  8. var CLEVERBOT_CHANNEL_NAME = "" // required if you set the restriction to `true`
  9.  
  10.  
  11. var fs = require('fs');
  12. var DiscordClient = require('discord.io');
  13. var cleverbot = require("cleverbot.io");
  14. var clever = new cleverbot('t77jVhrskGDT6Dm1', 'XKmJ3XW1dQwVJVXpWfODAUQ5qKucD6tc');
  15. var cleverON = false;
  16. var memes = putMemes();
  17. var regexs = {};
  18.  
  19. var bot = new DiscordClient({
  20. autorun: true,
  21. email: EMAIL,
  22. password: PASSWORD,
  23. //OR
  24. token: ""
  25. });
  26.  
  27. bot.on('ready', function () {
  28. console.log(bot.username + " - (" + bot.id + ")");
  29. Object.keys(memes).forEach(function (i) {
  30. regexs[i] = new RegExp(i)
  31. });
  32. });
  33.  
  34. bot.on('message', function (user, userID, channelID, message, rawEvent) {
  35.  
  36. var server_channels = bot.servers[bot.serverFromChannel(channelID)].channels;
  37. var cID = "";
  38. Object.keys(server_channels).forEach(function (key) {
  39. if (server_channels[key].name === CLEVERBOT_CHANNEL_NAME)
  40. cID = key
  41. })
  42.  
  43. if (message[0] == '^') {
  44. var command = message.slice(1, (message.indexOf(' ') != -1) ? message.indexOf(' '):message.length);
  45. var parm = (message.indexOf(' ') != -1) ? message.slice(message.indexOf(' ') + 1, message.length) : "";
  46. console.log("from:" + user);
  47. console.log("com:" + command + " | parm:" + parm);
  48. commands(command.toLowerCase(), parm, userID, channelID);
  49. }
  50. else if((message[0] === '[' && message[message.length-1] === ']') || (message[0] === ']' && message[message.length-1] === '[') || (message[0] === ']' && message[message.length-1] === ']') || (message[0] === '[' && message[message.length-1] === '['))
  51. {
  52. console.log("meme");
  53. var meme = message.slice(1,message.length-1);
  54. var found = false;
  55. Object.keys(memes).forEach(function (i) {
  56. if(regexs[i].test(meme)) {
  57. bot.sendMessage({
  58. to: channelID,
  59. message: memes[i]
  60. });
  61. found = true;
  62. }
  63. });
  64. if(!found)
  65. bot.sendMessage({
  66. to: channelID,
  67. message: "Meme was not found. Please contact your closest Certified Regular Expressionist to register your meme."
  68. })
  69. }
  70. else if (cleverON && (RESTRICT_CLEVERBOT_TO_CHANNEL && channelID == cID) || (!RESTRICT_CLEVERBOT_TO_CHANNEL) && user != USERNAME) {
  71. console.log("Them> " + message);
  72. clever.ask(message, function (err, response) {
  73. console.log(USERNAME + "> " + response);
  74. bot.sendMessage({
  75. to: channelID,
  76. message: response
  77. });
  78. });
  79. }
  80.  
  81. });
  82.  
  83. function say(ch, ms) {
  84. bot.sendMessage({
  85. to: ch,
  86. message: ms
  87. });
  88. }
  89.  
  90. function commands(com, prm, userid, channel) {
  91. switch (com) {
  92. case "clever":
  93. prm = prm.toLowerCase();
  94. if (prm == "on")
  95. cleverON = true;
  96. if (prm == "off")
  97. cleverON = false;
  98. break;
  99.  
  100. case "coinflip":
  101. console.log(prm);
  102. if (prm == "") {
  103. prm = 1;
  104. }
  105. if(prm > 10)
  106. {
  107. say(channel, "I dont want to drown you with coins, you will die.");
  108. return;
  109. }
  110. for (var i = 0; i < prm; i++) {
  111. var r = Math.floor((Math.random() * 2) + 1);
  112. say(channel, (r == 1) ? "Heads" : "Tails");
  113. }
  114. break;
  115. case "register":
  116. if(!(prm.indexOf('[') != -1 && prm.indexOf(']') != -1)) {
  117. say(channel, "Wrong format, format should be: ^register [*regular expression*] *link*");
  118. return;
  119. }
  120. var code = prm.substring(1, prm.indexOf(']'));
  121. var link = prm.substring(prm.indexOf(']') + 1);
  122.  
  123. var roles = bot.servers[bot.serverFromChannel(channel)].roles;
  124. var role_id = "";
  125. for(var i in roles)
  126. if(roles[i].name === "Certified Regular Expressionist")
  127. role_id = roles[i];
  128. var hasPermission = false;
  129. for(var i in bot.servers[bot.serverFromChannel(channel)].members[userid].roles)
  130. if(bot.servers[bot.serverFromChannel(channel)].members[userid].roles[i] === role_id.id)
  131. { hasPermission = true; break; }
  132. if(hasPermission) // the user has permission
  133. fs.appendFile("memes.txt", '\n' + code + '\t' + link, function (err) {
  134. if(err) console.log("Error: failed to append to file.")
  135. else {
  136. memes[code] = link;
  137. regexs[code] = new RegExp();
  138. }
  139. });
  140. else
  141. say(channel, "You need permission to register new memes, specifically, you have to be a Certified Regular Expressionist.");
  142. case "help":
  143. prm = prm.toLowerCase();
  144. if(prm =="")
  145. say(channel, "HERE, TAKE: clever on|off / coinflip [num] / help [memes]");
  146. else if(prm == "memes")
  147. say(channel, "You can say ^register to register new memes")
  148. }
  149. }
  150.  
  151. function putMemes()
  152. {
  153. var array = {};
  154. fs.readFile("memes.txt", "utf8", function (err,data) {
  155. if (err) {
  156. return console.log(err);
  157. }
  158. console.log(data);
  159. var memesplit = data.split('\n');
  160. for(var m in memesplit)
  161. {
  162. var split_m = memesplit[m].split('\t');
  163.  
  164. }
  165. });
  166. return array;
  167. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement