Don't crash if a rate limit header is unparsable
This commit is contained in:
@@ -15,14 +15,18 @@ namespace Discord.Net
|
||||
internal RateLimitInfo(Dictionary<string, string> headers)
|
||||
{
|
||||
string temp;
|
||||
IsGlobal = headers.TryGetValue("X-RateLimit-Global", out temp) ? bool.Parse(temp) : false;
|
||||
Limit = headers.TryGetValue("X-RateLimit-Limit", out temp) ? int.Parse(temp) : (int?)null;
|
||||
Remaining = headers.TryGetValue("X-RateLimit-Remaining", out temp) ? int.Parse(temp) : (int?)null;
|
||||
Reset = headers.TryGetValue("X-RateLimit-Reset", out temp) ?
|
||||
DateTimeUtils.FromUnixSeconds(int.Parse(temp)) : (DateTimeOffset?)null;
|
||||
RetryAfter = headers.TryGetValue("Retry-After", out temp) ? int.Parse(temp) : (int?)null;
|
||||
Lag = headers.TryGetValue("Date", out temp) ?
|
||||
DateTimeOffset.UtcNow - DateTimeOffset.Parse(temp) : (TimeSpan?)null;
|
||||
IsGlobal = headers.TryGetValue("X-RateLimit-Global", out temp) &&
|
||||
bool.TryParse(temp, out var isGlobal) ? isGlobal : false;
|
||||
Limit = headers.TryGetValue("X-RateLimit-Limit", out temp) &&
|
||||
int.TryParse(temp, out var limit) ? limit : (int?)null;
|
||||
Remaining = headers.TryGetValue("X-RateLimit-Remaining", out temp) &&
|
||||
int.TryParse(temp, out var remaining) ? remaining : (int?)null;
|
||||
Reset = headers.TryGetValue("X-RateLimit-Reset", out temp) &&
|
||||
int.TryParse(temp, out var reset) ? DateTimeUtils.FromUnixSeconds(reset) : (DateTimeOffset?)null;
|
||||
RetryAfter = headers.TryGetValue("Retry-After", out temp) &&
|
||||
int.TryParse(temp, out var retryAfter) ? retryAfter : (int?)null;
|
||||
Lag = headers.TryGetValue("Date", out temp) &&
|
||||
DateTimeOffset.TryParse(temp, out var date) ? DateTimeOffset.UtcNow - date : (TimeSpan?)null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user