This commit is contained in:
abalabahaha
2016-04-13 00:05:08 -07:00
parent b7f20956d7
commit afa5fa1758
4 changed files with 46 additions and 20 deletions

View File

@@ -122,6 +122,17 @@ var InternalClient = (function () {
var _this = this,
_arguments = arguments;
if (this.retryAfters[url]) {
if (this.retryAfters[url] < Date.now()) {
delete this.retryAfters[url];
} else {
return new Promise(function (resolve, reject) {
setTimeout(function () {
_this.apiRequest.apply(_this, _arguments).then(resolve)["catch"](reject);
}, _this.retryAfters[url] - Date.now());
});
}
}
var ret = _superagent2["default"][method](url);
if (useAuth) {
ret.set("authorization", this.token);
@@ -140,10 +151,10 @@ var InternalClient = (function () {
if (data.headers["retry-after"] || data.headers["Retry-After"]) {
var toWait = data.headers["retry-after"] || data.headers["Retry-After"];
toWait = parseInt(toWait);
if (!_this.retryAfters[url]) _this.retryAfters[url] = Date.now() + parseInt(toWait);
setTimeout(function () {
_this.apiRequest.apply(_this, _arguments).then(resolve)["catch"](reject);
}, toWait);
}, _this.retryAfters[url] - Date.now());
} else {
return reject(error);
}
@@ -191,6 +202,7 @@ var InternalClient = (function () {
this.resolver = new _ResolverResolver2["default"](this);
this.readyTime = null;
this.messageAwaits = {};
this.retryAfters = {};
this.tokenCacher = new _UtilTokenCacher2["default"](this.client);
this.tokenCacher.init(0);
@@ -634,7 +646,7 @@ var InternalClient = (function () {
return this.apiRequest("post", _Constants.Endpoints.LOGOUT, true).then(function () {
if (_this14.websocket) {
_this14.websocket.close();
_this14.websocket.close(1000);
_this14.websocket = null;
}
_this14.token = null;
@@ -1610,7 +1622,7 @@ var InternalClient = (function () {
self.state = _ConnectionState2["default"].READY;
client.emit("debug", "ready packet took " + (Date.now() - startTime) + "ms to process");
client.emit("debug", "ready with " + self.servers.length + " servers, " + self.channels.length + " channels and " + self.users.length + " users cached.");
client.emit("debug", "ready with " + self.servers.length + " servers, " + self.unavailableServers.length + " unavailable servers, " + self.channels.length + " channels and " + self.users.length + " users cached.");
self.restartServerCreateTimeout();
@@ -1681,7 +1693,9 @@ var InternalClient = (function () {
if (!server) {
if (!data.unavailable) {
server = self.servers.add(new _StructuresServer2["default"](data, client));
client.emit("serverCreated", server);
if (client.readyTime) {
client.emit("serverCreated", server);
}
if (self.client.options.forceFetchUsers && server.large && server.members.length < server.memberCount) {
self.getGuildMembers(server.id, Math.ceil(server.memberCount / 1000));
}
@@ -2116,7 +2130,7 @@ var InternalClient = (function () {
if (server) {
var testtime = new Date().getTime();
var testtime = Date.now();
for (var _iterator11 = data.members, _isArray11 = Array.isArray(_iterator11), _i11 = 0, _iterator11 = _isArray11 ? _iterator11 : _iterator11[Symbol.iterator]();;) {
var _ref11;
@@ -2154,7 +2168,7 @@ var InternalClient = (function () {
}
}
client.emit("debug", new Date().getTime() - testtime + "ms for " + data.members.length + " user chunk for server with id " + server.id);
client.emit("debug", Date.now() - testtime + "ms for " + data.members.length + " user chunk for server with id " + server.id);
} else {
client.emit("warn", "chunk update received but server not in cache");
}