|
@@ -26,9 +26,17 @@ client.on('message', message => {
|
|
|
|
|
|
if (serverData==undefined) return;
|
|
|
|
|
|
- console.log(message.content);
|
|
|
+ console.log(message.mentions.roles);
|
|
|
|
|
|
- if (message.content.startsWith(`${config.prefix}dump`)) {
|
|
|
+ if (message.content.startsWith(`${serverData.prefix||config.prefix}ping`)) {
|
|
|
+ message.channel.send('Pong! :ping_pong:');
|
|
|
+ return;
|
|
|
+ } else if (message.content.startsWith(`${serverData.prefix||config.prefix}dump`) && serverData.allowDump == true) {
|
|
|
+
|
|
|
+ if (serverData.allowDump == true) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
console.log(getTimestamp(), 'Warning, dump in progress! May cause slowdows.');
|
|
|
|
|
|
number = message.content.slice(6);
|
|
@@ -39,8 +47,6 @@ client.on('message', message => {
|
|
|
|
|
|
message.delete(2);
|
|
|
|
|
|
-
|
|
|
-
|
|
|
var channel = message.channel;
|
|
|
|
|
|
async function run() {
|
|
@@ -207,67 +213,40 @@ function updateDB(message, serverData) {
|
|
|
database : serverData.db
|
|
|
});
|
|
|
|
|
|
- var l = [];
|
|
|
-
|
|
|
- var msgCopy = message.content;
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- msgCopy.replace(urlRegex, function(url) {
|
|
|
- l.push(url);
|
|
|
- });
|
|
|
-
|
|
|
- var i = [];
|
|
|
+ var post = prepareMessage(message, serverData);
|
|
|
+ var sql = 'UPDATE '+serverData.dbTable+' SET ? WHERE id='+message.id;
|
|
|
+ connection.connect();
|
|
|
|
|
|
- message.attachments.forEach(attachment => {
|
|
|
- i.push(attachment.url);
|
|
|
+ connection.query(sql, post, function (error, results, fields) {
|
|
|
+ if (error) throw error;
|
|
|
+ console.log(getTimestamp(), 'Data updated in db. Result: ', results);
|
|
|
});
|
|
|
|
|
|
-
|
|
|
+ connection.end();
|
|
|
+}
|
|
|
|
|
|
- var mentions = [];
|
|
|
- message.mentions.users.forEach(user => {
|
|
|
- mentions.push({"userId": user.id, "username": user.username, "discriminator": user.discriminator});
|
|
|
+function sendToDB(message, serverData) {
|
|
|
+
|
|
|
+ var connection = mysql.createConnection({
|
|
|
+ host : serverData.dbHost,
|
|
|
+ user : serverData.dbUser,
|
|
|
+ password : serverData.dbPassword,
|
|
|
+ database : serverData.db
|
|
|
});
|
|
|
- var messageContent = message.content;
|
|
|
- for (mention of mentions) {
|
|
|
- if(messageContent.includes(mention.userId)) {
|
|
|
- if (serverData.mentionsMode == 0) {
|
|
|
- messageContent = messageContent.replace(new RegExp("<@"+mention.userId+">", 'g'), "@"+mention.userId);
|
|
|
- messageContent = messageContent.replace(new RegExp("<@!"+mention.userId+">", 'g'), "@"+mention.userId);
|
|
|
- } else if (serverData.mentionsMode == 1) {
|
|
|
- messageContent = messageContent.replace(new RegExp("<@"+mention.userId+">", 'g'), "@"+mention.username);
|
|
|
- messageContent = messageContent.replace(new RegExp("<@!"+mention.userId+">", 'g'), "@"+mention.username);
|
|
|
- } else {
|
|
|
- messageContent = messageContent.replace(new RegExp("<@"+mention.userId+">", 'g'), "@"+mention.username+"#"+mention.discriminator);
|
|
|
- messageContent = messageContent.replace(new RegExp("<@!"+mention.userId+">", 'g'), "@"+mention.username+"#"+mention.discriminator);
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
- if (serverData.authorMode == 0) {
|
|
|
- var author = message.author.id;
|
|
|
- } else if (serverData.authorMode == 1) {
|
|
|
- var author = message.author.username;
|
|
|
- } else {
|
|
|
- var author = message.author.tag;
|
|
|
- }
|
|
|
-
|
|
|
- var post = {message:emoji.unemojify(messageContent), id:message.id, time:message.createdTimestamp, timeEdit:(message.editedTimestamp || ""), user:author, links:JSON.stringify(l), images:JSON.stringify(i)};
|
|
|
- var sql = 'UPDATE '+serverData.dbTable+' SET ? WHERE id='+message.id;
|
|
|
+ var post = prepareMessage(message, serverData);
|
|
|
+ var sql = 'INSERT INTO '+serverData.dbTable+' SET ?';
|
|
|
connection.connect();
|
|
|
|
|
|
connection.query(sql, post, function (error, results, fields) {
|
|
|
if (error) throw error;
|
|
|
- console.log(getTimestamp(), 'Data updated in db. Result: ', results);
|
|
|
+ console.log(getTimestamp(), 'Data sent to db. Result: ', results);
|
|
|
});
|
|
|
|
|
|
connection.end();
|
|
|
}
|
|
|
|
|
|
-function sendToDB(message, serverData) {
|
|
|
-
|
|
|
+function deleteFromDB(message, serverData) {
|
|
|
var connection = mysql.createConnection({
|
|
|
host : serverData.dbHost,
|
|
|
user : serverData.dbUser,
|
|
@@ -275,6 +254,18 @@ function sendToDB(message, serverData) {
|
|
|
database : serverData.db
|
|
|
});
|
|
|
|
|
|
+ var sql = 'DELETE FROM '+serverData.dbTable+' WHERE id='+message.id;
|
|
|
+ connection.connect();
|
|
|
+
|
|
|
+ connection.query(sql, function (error, results, fields) {
|
|
|
+ if (error) throw error;
|
|
|
+ console.log(getTimestamp(), 'Data deleted in db. Result: ', results);
|
|
|
+ });
|
|
|
+
|
|
|
+ connection.end();
|
|
|
+}
|
|
|
+
|
|
|
+function prepareMessage(message, serverData) {
|
|
|
var l = [];
|
|
|
|
|
|
var msgCopy = message.content;
|
|
@@ -288,9 +279,7 @@ function sendToDB(message, serverData) {
|
|
|
message.attachments.forEach(attachment => {
|
|
|
i.push(attachment.url);
|
|
|
});
|
|
|
-
|
|
|
|
|
|
-
|
|
|
var mentions = [];
|
|
|
message.mentions.users.forEach(user => {
|
|
|
mentions.push({"userId": user.id, "username": user.username, "discriminator": user.discriminator});
|
|
@@ -298,10 +287,10 @@ function sendToDB(message, serverData) {
|
|
|
var messageContent = message.content;
|
|
|
for (mention of mentions) {
|
|
|
if(messageContent.includes(mention.userId)) {
|
|
|
- if (serverData.mentionsMode == 0) {
|
|
|
+ if (serverData.userMentionsMode == 0) {
|
|
|
messageContent = messageContent.replace(new RegExp("<@"+mention.userId+">", 'g'), "@"+mention.userId);
|
|
|
messageContent = messageContent.replace(new RegExp("<@!"+mention.userId+">", 'g'), "@"+mention.userId);
|
|
|
- } else if (serverData.mentionsMode == 1) {
|
|
|
+ } else if (serverData.userMentionsMode == 1) {
|
|
|
messageContent = messageContent.replace(new RegExp("<@"+mention.userId+">", 'g'), "@"+mention.username);
|
|
|
messageContent = messageContent.replace(new RegExp("<@!"+mention.userId+">", 'g'), "@"+mention.username);
|
|
|
} else {
|
|
@@ -311,6 +300,41 @@ function sendToDB(message, serverData) {
|
|
|
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ var mentions = [];
|
|
|
+ message.mentions.channels.forEach(channel => {
|
|
|
+ mentions.push({"channelId": channel.id, "name": channel.name});
|
|
|
+ });
|
|
|
+ for (mention of mentions) {
|
|
|
+ if(messageContent.includes(mention.channelId)) {
|
|
|
+ if (serverData.channelMentionsMode == 0) {
|
|
|
+ messageContent = messageContent.replace(new RegExp("<#"+mention.channelId+">", 'g'), "#"+mention.channelId);
|
|
|
+ messageContent = messageContent.replace(new RegExp("<#!"+mention.channelId+">", 'g'), "#"+mention.channelId);
|
|
|
+ } else {
|
|
|
+ messageContent = messageContent.replace(new RegExp("<#"+mention.channelId+">", 'g'), "#"+mention.name);
|
|
|
+ messageContent = messageContent.replace(new RegExp("<#!"+mention.channelId+">", 'g'), "#"+mention.name);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ var mentions = [];
|
|
|
+ message.mentions.roles.forEach(role => {
|
|
|
+ mentions.push({"roleId": role.id, "name": role.name, "color": role.color.toString(16)});
|
|
|
+ });
|
|
|
+ for (mention of mentions) {
|
|
|
+ if(messageContent.includes(mention.roleId)) {
|
|
|
+ if (serverData.roleMentionsMode == 0) {
|
|
|
+ messageContent = messageContent.replace(new RegExp("<@&"+mention.roleId+">", 'g'), "&"+mention.roleId);
|
|
|
+ messageContent = messageContent.replace(new RegExp("<@&!"+mention.roleId+">", 'g'), "&"+mention.roleId);
|
|
|
+ } else if (serverData.roleMentionsMode == 1) {
|
|
|
+ messageContent = messageContent.replace(new RegExp("<@&"+mention.roleId+">", 'g'), "&"+mention.name);
|
|
|
+ messageContent = messageContent.replace(new RegExp("<@&!"+mention.roleId+">", 'g'), "&"+mention.name);
|
|
|
+ } else {
|
|
|
+ messageContent = messageContent.replace(new RegExp("<@&"+mention.roleId+">", 'g'), "&"+mention.name+"#"+mention.color);
|
|
|
+ messageContent = messageContent.replace(new RegExp("<@&!"+mention.roleId+">", 'g'), "&"+mention.name+"#"+mention.color);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
if (serverData.authorMode == 0) {
|
|
|
var author = message.author.id;
|
|
@@ -319,36 +343,8 @@ function sendToDB(message, serverData) {
|
|
|
} else {
|
|
|
var author = message.author.tag;
|
|
|
}
|
|
|
-
|
|
|
- var post = {message:emoji.unemojify(messageContent), id:message.id, time:message.createdTimestamp, timeEdit:(message.editedTimestamp || ""), user:author, links:JSON.stringify(l), images:JSON.stringify(i)};
|
|
|
- var sql = 'INSERT INTO '+serverData.dbTable+' SET ?';
|
|
|
- connection.connect();
|
|
|
-
|
|
|
- connection.query(sql, post, function (error, results, fields) {
|
|
|
- if (error) throw error;
|
|
|
- console.log(getTimestamp(), 'Data sent to db. Result: ', results);
|
|
|
- });
|
|
|
-
|
|
|
- connection.end();
|
|
|
-}
|
|
|
-
|
|
|
-function deleteFromDB(message, serverData) {
|
|
|
- var connection = mysql.createConnection({
|
|
|
- host : serverData.dbHost,
|
|
|
- user : serverData.dbUser,
|
|
|
- password : serverData.dbPassword,
|
|
|
- database : serverData.db
|
|
|
- });
|
|
|
|
|
|
- var sql = 'DELETE FROM '+serverData.dbTable+' WHERE id='+message.id;
|
|
|
- connection.connect();
|
|
|
-
|
|
|
- connection.query(sql, function (error, results, fields) {
|
|
|
- if (error) throw error;
|
|
|
- console.log(getTimestamp(), 'Data deleted in db. Result: ', results);
|
|
|
- });
|
|
|
-
|
|
|
- connection.end();
|
|
|
+ return {message:emoji.unemojify(messageContent), id:message.id, time:message.createdTimestamp, timeEdit:(message.editedTimestamp || ""), user:author, links:JSON.stringify(l), images:JSON.stringify(i)};
|
|
|
}
|
|
|
|
|
|
function getTimestamp() {
|