Advertisement
Guest User

plsfixbrook

a guest
Feb 23rd, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. exports.commands = [
  2.     "cutie",
  3.     "topcuties"
  4. ]
  5.  
  6. var mysql = require('mysql');
  7. var con = mysql.createPool({
  8.   connectionLimit: 10,
  9.   host     : '127.0.0.1',
  10.   port     : '/var/run/mysqld/mysqld.sock',
  11.   user     : 'xxx',
  12.   password : 'xxx',
  13.   database : 'xxx'
  14. });
  15.  
  16. exports.cutie = {
  17.     usage: "!cutie @user",
  18.     description: "Vote on the server's biggest cutie (once every 12 hours)",
  19.     process: function(bot, msg, suffix) {
  20.         if(msg.author.id != bot.user.id) {
  21.         checkDatabaseUser(msg, suffix).then(result => result).catch(error => console.log(error));
  22.         }
  23.     }
  24. }
  25.  
  26. exports.topcuties = {
  27.     usage: "!topcuties",
  28.     description: "Returns the top cuties of the server :3",
  29.     process: function(bot, msg, suffix) {
  30.         if(msg.author.id != bot.user.id) {
  31.         fetchCuties(msg, suffix).then(result => result).catch(error => console.log(error));
  32.         }
  33.     }
  34. }
  35.  
  36. function checkDatabaseUser(msg, suffix) {
  37.     return new Promise((resolve, reject) => {
  38.         con.getConnection(function(err, connection) {
  39.             if (err) {
  40.                 reject(`Error connecting to database: \r\n\r\n{$err}`);
  41.                 return;
  42.             }
  43.  
  44.                     let voter = msg.author.id;
  45.                     let cutie = msg.author.id;
  46.  
  47.                     let mentions = msg.mentions.users.array();
  48.                     if(mentions.length >= 1) {
  49.                         cutie = mentions[0].id;
  50.                     } else {
  51.                         msg.channel.sendMessage("You have to tag an user to vote!");
  52.                         reject(`No user tagged.`);
  53.                     }
  54.  
  55.                     let queryData = [msg.guild.id, voter];
  56.             let query = con.query("SELECT * FROM users WHERE channel = ? AND uid = ?", queryData, function(err, result) {
  57.  
  58.             if (err) {
  59.                 reject(`Query Error (user_fetch): ${query}`);
  60.                 return;
  61.             }
  62.  
  63.             if (result.length != 0) {
  64.                                 let lastVote = result[0].lastCutenessVote;
  65.                                 let t = lastVote.split(/[- :]/);
  66.  
  67.                                 //Get the last vote +12 hours
  68.                                 let lastVoteAsDate = new Date(Date.UTC(t[0], t[1]-1, t[2], t[3], t[4], t[5]));
  69.                                 lastVoteAsDate.setHours(lastVoteAsDate.getHours()+12);
  70.  
  71.                                 //get the current time
  72.                                 let currDate = new Date();
  73.  
  74.                                 let dateDifference = dates.compare(lastVoteAsDate, currDate);
  75.                                 if (dateDifference == -1) {
  76.                                     msg.channel.sendMessage("You have to wait until " + lastVoteAsDate + " (GMT +1) before you can vote again.");
  77.                                     reject(`Too early to vote.`);
  78.                                 }
  79.  
  80.                                 updateCuteness(cutie, msg.guild.id).then(result => result).catch(error => console.log(error));
  81.  
  82.                                 let newDate = new Date().toISOString().slice(0, 19).replace('T', ' ');
  83.                                 let data = [newDate, msg.guild.id, voter];
  84.                                 let query = con.query("UPDATE users SET lastCutenessVote = ? WHERE channel = ? AND uid = ?", data, function(err, result) {
  85.                                     if (err) {
  86.                                          reject(`Query Error (user_update_cuteness_voteTime): ${query}`);
  87.                                          return;
  88.                                     }
  89.                                 });
  90.  
  91.             } else {
  92.                             let errorMessage = "Could not find the user!";
  93.                             msg.channel.sendMessage("", {
  94.                                     embed: {
  95.                                             title: 'User error!',
  96.                                             description: `${errorMessage}`,
  97.                                             color: 16711680
  98.                                     }
  99.                             });
  100.             }
  101.         });
  102.       connection.release();
  103.     });
  104.   });
  105. }
  106.  
  107. function updateCuteness(userId, guildId) {
  108.   return new Promise((resolve, reject) => {
  109.     con.getConnection(function(err, connection) {
  110.         if (err) {
  111.           reject(`Error connecting to database: \r\n\r\n{$err}`);
  112.           return;
  113.         }
  114.  
  115.                 let queryData = [guildId, userId];
  116.  
  117.         let query = con.query("SELECT * FROM users WHERE channel = ? AND uid = ?", queryData, function(err, result) {
  118.             if (err) {
  119.               reject(`Query Error (user_cute_fetch): ${query}`);
  120.               return;
  121.           }
  122.  
  123.           if (result.length != 0) {
  124.                         let cuteness = result[0].cuteness;
  125.                         cuteness++;
  126.  
  127.                         let data = [cuteness, guildId, userId];
  128.             let query = con.query("UPDATE users SET cuteness = ? WHERE channel = ? AND uid = ?", data, function(err, result) {
  129.                 if (err) {
  130.                        reject(`Query Error (user_update_cuteness): ${query}`);
  131.                    return;
  132.                 }
  133.  
  134.                             msg.channel.sendMessage("You have succesfully voted!");
  135.                         }
  136.  
  137.           } else {
  138.                         let errorMessage = "Could not find the user!";
  139.                         msg.channel.sendMessage("", {
  140.                             embed: {
  141.                                     title: 'User error!',
  142.                                     description: `${errorMessage}`,
  143.                                     color: 16711680
  144.                                 }
  145.                      });
  146.             }
  147.             });
  148.         connection.release();
  149.         });
  150.     });
  151. }
  152.  
  153. function fetchCuties(msg, suffix) {
  154.     return new Promise((resolve, reject) => {
  155.         con.getConnection(function(err, connection) {
  156.             if (err) {
  157.                 reject(`Error connecting to database: \r\n\r\n{$err}`);
  158.                 return;
  159.             }
  160.  
  161.                         let server = msg.guild.id;
  162.                         let msgColor = 16738740;
  163.  
  164.             let query = con.query("SELECT * FROM users WHERE channel = ? ORDER BY cuteness DESC", msg.guild.id, function(err, result) {
  165.                 if (err) {
  166.                     reject(`Query Error (user_top_cuteness_fetch): ${query}`);
  167.                     return;
  168.                 }
  169.  
  170.                 if (result.length != 0) {
  171.                                     let resultStr = ""
  172.                                     let mid = ">    ("
  173.                                     let end = ")\r\n"
  174.  
  175.                                     for (let i = 0; i < result.length; i++) {
  176.                                         resultStr += (i + 1) + ": <@" + result[i].uid + mid + result[i].cuteness + end;
  177.                                     }
  178.  
  179.                                     msg.channel.sendMessage("", {
  180.                                             embed: {
  181.                                                     title: 'Top cuties!',
  182.                                                     description: `${resultStr}`,
  183.                                                     color: msgColor
  184.                                             }
  185.                                     });
  186.  
  187.                         } else {
  188.                                 let errorMessage = "Could not find the top cuties! Is anyone really cute!?";
  189.                                 msg.channel.sendMessage("", {
  190.                                         embed: {
  191.                                                 title: 'Cuteness error!',
  192.                                                 description: `${errorMessage}`,
  193.                                                 color: msgColor
  194.                                         }
  195.                                 });
  196.                 }
  197.                 });
  198.         connection.release();
  199.     });
  200.     });
  201. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement