added deletion queue

This commit is contained in:
hydrabolt
2015-08-30 21:42:09 +01:00
parent 2fdc5a3ff6
commit be0be60947
3 changed files with 110 additions and 21 deletions

View File

@@ -347,15 +347,33 @@ var Client = (function () {
} }
function remove() { function remove() {
request.del(Endpoints.CHANNELS + "/" + message.channel.id + "/messages/" + message.id).set("authorization", self.token).end(function (err, res) { if (self.options.queue) {
if (err) { if (!self.queue[message.channel.id]) {
callback(err); self.queue[message.channel.id] = [];
reject(err);
} else {
callback(null);
resolve();
} }
}); self.queue[message.channel.id].push({
action: "deleteMessage",
message: message,
then: good,
error: bad
});
self.checkQueue(message.channel.id);
} else {
self._deleteMessage(message).then(good)["catch"](bad);
}
}
function good() {
prom.success = true;
callback(null);
resolve();
}
function bad(err) {
prom.error = err;
callback(err);
reject(err);
} }
}); });
@@ -1468,6 +1486,20 @@ var Client = (function () {
}); });
}); });
} }
}, {
key: "_deleteMessage",
value: function _deleteMessage(message) {
var self = this;
return new Promise(function (resolve, reject) {
request.del(Endpoints.CHANNELS + "/" + message.channel.id + "/messages/" + message.id).set("authorization", self.token).end(function (err, res) {
if (err) {
reject(err);
} else {
resolve();
}
});
});
}
}, { }, {
key: "checkQueue", key: "checkQueue",
value: function checkQueue(channelID) { value: function checkQueue(channelID) {
@@ -1520,6 +1552,18 @@ var Client = (function () {
doNext(); doNext();
}); });
break; break;
case "deleteMessage":
var msgToDel = queuedEvent;
self._deleteMessage(msgToDel.message).then(function (msg) {
msgToDel.then(msg);
self.queue[channelID].shift();
doNext();
})["catch"](function (err) {
msgToDel.error(err);
self.queue[channelID].shift();
doNext();
});
break;
default: default:
done(); done();
break; break;

View File

@@ -384,18 +384,33 @@ class Client {
} }
function remove() { function remove() {
request if(self.options.queue){
.del(`${Endpoints.CHANNELS}/${message.channel.id}/messages/${message.id}`) if (!self.queue[message.channel.id]) {
.set("authorization", self.token) self.queue[message.channel.id] = [];
.end(function (err, res) { }
if (err) { self.queue[message.channel.id].push({
callback(err); action: "deleteMessage",
reject(err); message: message,
} else { then: good,
callback(null); error: bad
resolve();
}
}); });
self.checkQueue(message.channel.id);
}else{
self._deleteMessage(message).then(good).catch(bad);
}
}
function good(){
prom.success = true;
callback(null);
resolve();
}
function bad(err){
prom.error = err;
callback(err);
reject(err);
} }
}); });
@@ -1225,6 +1240,22 @@ class Client {
}); });
}); });
} }
_deleteMessage(message){
var self = this;
return new Promise(function(resolve, reject){
request
.del(`${Endpoints.CHANNELS}/${message.channel.id}/messages/${message.id}`)
.set("authorization", self.token)
.end(function (err, res) {
if (err) {
reject(err);
} else {
resolve();
}
});
});
}
checkQueue(channelID) { checkQueue(channelID) {
@@ -1284,6 +1315,20 @@ class Client {
doNext(); doNext();
}); });
break; break;
case "deleteMessage":
var msgToDel = queuedEvent;
self._deleteMessage(msgToDel.message)
.then(function(msg){
msgToDel.then(msg);
self.queue[channelID].shift();
doNext();
})
.catch(function(err){
msgToDel.error(err);
self.queue[channelID].shift();
doNext();
});
break;
default: default:
done(); done();
break; break;

View File

@@ -20,11 +20,11 @@ mybot.on("message", function (message) {
var action2 = mybot.sendMessage(message.channel, "this is message " + 2).then(log); var action2 = mybot.sendMessage(message.channel, "this is message " + 2).then(log);
function log() { function log() {
console.log("w", action1.message);
mybot.updateMessage(action1.message, "blurg"); mybot.updateMessage(action1.message, "blurg");
mybot.sendMessage(message.channel, "This is message 3 million minus the million so basically just 3"); mybot.sendMessage(message.channel, "This is message 3 million minus the million so basically just 3");
mybot.deleteMessage(action1.message);
mybot.sendMessage(message.channel, "This is message RJNGEIKGNER").then(log2);
} }
}); });
function dump(msg) { function dump(msg) {