Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- exports.commands = [
- "cutie",
- "topcuties"
- ]
- var mysql = require('mysql');
- var con = mysql.createPool({
- connectionLimit: 10,
- host : '127.0.0.1',
- port : '/var/run/mysqld/mysqld.sock',
- user : 'xxx',
- password : 'xxx',
- database : 'xxx'
- });
- exports.cutie = {
- usage: "!cutie @user",
- description: "Vote on the server's biggest cutie (once every 12 hours)",
- process: function(bot, msg, suffix) {
- if(msg.author.id != bot.user.id) {
- checkDatabaseUser(msg, suffix).then(result => result).catch(error => console.log(error));
- }
- }
- }
- exports.topcuties = {
- usage: "!topcuties",
- description: "Returns the top cuties of the server :3",
- process: function(bot, msg, suffix) {
- if(msg.author.id != bot.user.id) {
- fetchCuties(msg, suffix).then(result => result).catch(error => console.log(error));
- }
- }
- }
- function checkDatabaseUser(msg, suffix) {
- return new Promise((resolve, reject) => {
- con.getConnection(function(err, connection) {
- if (err) {
- reject(`Error connecting to database: \r\n\r\n{$err}`);
- return;
- }
- let voter = msg.author.id;
- let cutie = msg.author.id;
- let mentions = msg.mentions.users.array();
- if(mentions.length >= 1) {
- cutie = mentions[0].id;
- } else {
- msg.channel.sendMessage("You have to tag an user to vote!");
- reject(`No user tagged.`);
- }
- let queryData = [msg.guild.id, voter];
- let query = con.query("SELECT * FROM users WHERE channel = ? AND uid = ?", queryData, function(err, result) {
- if (err) {
- reject(`Query Error (user_fetch): ${query}`);
- return;
- }
- if (result.length != 0) {
- let lastVote = result[0].lastCutenessVote;
- let t = lastVote.split(/[- :]/);
- //Get the last vote +12 hours
- let lastVoteAsDate = new Date(Date.UTC(t[0], t[1]-1, t[2], t[3], t[4], t[5]));
- lastVoteAsDate.setHours(lastVoteAsDate.getHours()+12);
- //get the current time
- let currDate = new Date();
- let dateDifference = dates.compare(lastVoteAsDate, currDate);
- if (dateDifference == -1) {
- msg.channel.sendMessage("You have to wait until " + lastVoteAsDate + " (GMT +1) before you can vote again.");
- reject(`Too early to vote.`);
- }
- updateCuteness(cutie, msg.guild.id).then(result => result).catch(error => console.log(error));
- let newDate = new Date().toISOString().slice(0, 19).replace('T', ' ');
- let data = [newDate, msg.guild.id, voter];
- let query = con.query("UPDATE users SET lastCutenessVote = ? WHERE channel = ? AND uid = ?", data, function(err, result) {
- if (err) {
- reject(`Query Error (user_update_cuteness_voteTime): ${query}`);
- return;
- }
- });
- } else {
- let errorMessage = "Could not find the user!";
- msg.channel.sendMessage("", {
- embed: {
- title: 'User error!',
- description: `${errorMessage}`,
- color: 16711680
- }
- });
- }
- });
- connection.release();
- });
- });
- }
- function updateCuteness(userId, guildId) {
- return new Promise((resolve, reject) => {
- con.getConnection(function(err, connection) {
- if (err) {
- reject(`Error connecting to database: \r\n\r\n{$err}`);
- return;
- }
- let queryData = [guildId, userId];
- let query = con.query("SELECT * FROM users WHERE channel = ? AND uid = ?", queryData, function(err, result) {
- if (err) {
- reject(`Query Error (user_cute_fetch): ${query}`);
- return;
- }
- if (result.length != 0) {
- let cuteness = result[0].cuteness;
- cuteness++;
- let data = [cuteness, guildId, userId];
- let query = con.query("UPDATE users SET cuteness = ? WHERE channel = ? AND uid = ?", data, function(err, result) {
- if (err) {
- reject(`Query Error (user_update_cuteness): ${query}`);
- return;
- }
- msg.channel.sendMessage("You have succesfully voted!");
- }
- } else {
- let errorMessage = "Could not find the user!";
- msg.channel.sendMessage("", {
- embed: {
- title: 'User error!',
- description: `${errorMessage}`,
- color: 16711680
- }
- });
- }
- });
- connection.release();
- });
- });
- }
- function fetchCuties(msg, suffix) {
- return new Promise((resolve, reject) => {
- con.getConnection(function(err, connection) {
- if (err) {
- reject(`Error connecting to database: \r\n\r\n{$err}`);
- return;
- }
- let server = msg.guild.id;
- let msgColor = 16738740;
- let query = con.query("SELECT * FROM users WHERE channel = ? ORDER BY cuteness DESC", msg.guild.id, function(err, result) {
- if (err) {
- reject(`Query Error (user_top_cuteness_fetch): ${query}`);
- return;
- }
- if (result.length != 0) {
- let resultStr = ""
- let mid = "> ("
- let end = ")\r\n"
- for (let i = 0; i < result.length; i++) {
- resultStr += (i + 1) + ": <@" + result[i].uid + mid + result[i].cuteness + end;
- }
- msg.channel.sendMessage("", {
- embed: {
- title: 'Top cuties!',
- description: `${resultStr}`,
- color: msgColor
- }
- });
- } else {
- let errorMessage = "Could not find the top cuties! Is anyone really cute!?";
- msg.channel.sendMessage("", {
- embed: {
- title: 'Cuteness error!',
- description: `${errorMessage}`,
- color: msgColor
- }
- });
- }
- });
- connection.release();
- });
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement