|
@@ -7,12 +7,13 @@ var urlRegex = /^(ftp|http|https):\/\/[^ "]+$/;
|
|
|
|
|
|
client.on('ready', () => {
|
|
|
console.log(`Logged in as ${client.user.tag}!`);
|
|
|
+ console.log(`To send missing messages run ${config.prefix}dump`);
|
|
|
});
|
|
|
|
|
|
client.on('message', message => {
|
|
|
|
|
|
if (message.author.bot==true) return;
|
|
|
-
|
|
|
+
|
|
|
var serverData = undefined;
|
|
|
|
|
|
config.servers.forEach(function(server) {
|
|
@@ -20,7 +21,84 @@ client.on('message', message => {
|
|
|
});
|
|
|
|
|
|
if (serverData==undefined) return;
|
|
|
+
|
|
|
+ if (message.content.startsWith(`${config.prefix}dump`)) {
|
|
|
+ console.log('Warning, dump in progress! May cause slowdows.');
|
|
|
+
|
|
|
+ message.delete(2);
|
|
|
+
|
|
|
+ var channel = message.channel;
|
|
|
+
|
|
|
+ async function run() {
|
|
|
+ var fetched = await channel.fetchMessages({limit: 99});
|
|
|
+ //console.log(fetched);
|
|
|
+
|
|
|
+ var connection = mysql.createConnection({
|
|
|
+ host : serverData.dbHost,
|
|
|
+ user : serverData.dbUser,
|
|
|
+ password : serverData.dbPassword,
|
|
|
+ database : serverData.db
|
|
|
+ });
|
|
|
+
|
|
|
+ var sql = 'SELECT * FROM `messages`';
|
|
|
+ connection.connect();
|
|
|
+
|
|
|
+ connection.query(sql, function (error, results, fields) {
|
|
|
+ if (error) throw error;
|
|
|
+ console.log('Data recived from db. Result: ', results);
|
|
|
+ var messages = [];
|
|
|
+ fetched.forEach(messageNow => {
|
|
|
+
|
|
|
+ var found = null;
|
|
|
+
|
|
|
+ results.forEach(function (msg){
|
|
|
+ if (messageNow.id == msg.Id || messageNow.id == message.id) {
|
|
|
+ found = 'yep';
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ if (found==null) {
|
|
|
+ messages.push(message);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ sendLoop(messages, serverData, 1000);
|
|
|
+ });
|
|
|
+
|
|
|
+ connection.end();
|
|
|
+ }
|
|
|
+
|
|
|
+ run();
|
|
|
+ } else {
|
|
|
+ sendToDB(message, serverData);
|
|
|
+ }
|
|
|
+
|
|
|
+});
|
|
|
+
|
|
|
+client.login(config.token);
|
|
|
|
|
|
+function sendLoop(messages, serverData, delay) {
|
|
|
+
|
|
|
+ if (messages.length == 0) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ sendToDB(messages[0], serverData);
|
|
|
+
|
|
|
+ messages.shift();
|
|
|
+
|
|
|
+ setTimeout(sendLoop, delay, messages, serverData, delay);
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+function sendToDB(message, serverData) {
|
|
|
+
|
|
|
+ var connection = mysql.createConnection({
|
|
|
+ host : serverData.dbHost,
|
|
|
+ user : serverData.dbUser,
|
|
|
+ password : serverData.dbPassword,
|
|
|
+ database : serverData.db
|
|
|
+ });
|
|
|
+
|
|
|
var l = [];
|
|
|
|
|
|
var msgCopy = message.content;
|
|
@@ -35,12 +113,7 @@ client.on('message', message => {
|
|
|
i.push(attachment.url);
|
|
|
});
|
|
|
|
|
|
- var connection = mysql.createConnection({
|
|
|
- host : serverData.dbHost,
|
|
|
- user : serverData.dbUser,
|
|
|
- password : serverData.dbPassword,
|
|
|
- database : serverData.db
|
|
|
- });
|
|
|
+
|
|
|
|
|
|
var mentions = [];
|
|
|
message.mentions.users.forEach(user => {
|
|
@@ -81,8 +154,4 @@ client.on('message', message => {
|
|
|
});
|
|
|
|
|
|
connection.end();
|
|
|
-
|
|
|
-
|
|
|
-});
|
|
|
-
|
|
|
-client.login(config.token);
|
|
|
+}
|