Fixed rate limiting

This commit is contained in:
Amish Shah
2015-12-16 18:46:03 +00:00
parent da990f544a
commit 470fbbb6d6
3 changed files with 9 additions and 1 deletions

View File

@@ -132,13 +132,17 @@ var InternalClient = (function () {
return new Promise(function (resolve, reject) {
ret.end(function (error, data) {
if (error) {
error.response.error.status = 429;
if (error.response && error.response.error && error.response.error.status && error.response.error.status === 429) {
if (data.headers["retry-after"] || data.headers["Retry-After"]) {
var toWait = data.headers["retry-after"] || data.headers["Retry-After"];
toWait = parseInt(toWait);
console.log("waiting for", toWait);
setTimeout(function () {
_this.apiRequest.apply(_this, _arguments).then(resolve)["catch"](reject);
}, toWait);
} else {
return reject(error);
}
} else {
return reject(error);

View File

@@ -65,6 +65,7 @@ export default class InternalClient {
return new Promise((resolve, reject) => {
ret.end((error, data) => {
if (error) {
error.response.error.status = 429;
if (error.response && error.response.error && error.response.error.status && error.response.error.status === 429) {
if(data.headers["retry-after"] || data.headers["Retry-After"]){
var toWait = data.headers["retry-after"] || data.headers["Retry-After"];
@@ -72,6 +73,8 @@ export default class InternalClient {
setTimeout(() => {
this.apiRequest.apply(this, arguments).then(resolve).catch(reject);
}, toWait);
} else {
return reject(error);
}
} else {
return reject(error);

View File

@@ -41,7 +41,8 @@ client.on("message", msg => {
}
if (msg.content === "$$$") {
client.reply(msg, "hi!");
for(var x = 0; x < 60; x++)
client.reply(msg, x);
}
});