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() {
request.del(Endpoints.CHANNELS + "/" + message.channel.id + "/messages/" + message.id).set("authorization", self.token).end(function (err, res) {
if (err) {
callback(err);
reject(err);
} else {
callback(null);
resolve();
if (self.options.queue) {
if (!self.queue[message.channel.id]) {
self.queue[message.channel.id] = [];
}
});
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",
value: function checkQueue(channelID) {
@@ -1520,6 +1552,18 @@ var Client = (function () {
doNext();
});
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:
done();
break;

View File

@@ -384,18 +384,33 @@ class Client {
}
function remove() {
request
.del(`${Endpoints.CHANNELS}/${message.channel.id}/messages/${message.id}`)
.set("authorization", self.token)
.end(function (err, res) {
if (err) {
callback(err);
reject(err);
} else {
callback(null);
resolve();
}
if(self.options.queue){
if (!self.queue[message.channel.id]) {
self.queue[message.channel.id] = [];
}
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);
}
});
@@ -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) {
@@ -1284,6 +1315,20 @@ class Client {
doNext();
});
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:
done();
break;

View File

@@ -20,11 +20,11 @@ mybot.on("message", function (message) {
var action2 = mybot.sendMessage(message.channel, "this is message " + 2).then(log);
function log() {
console.log("w", action1.message);
mybot.updateMessage(action1.message, "blurg");
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) {