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)
|
internal RateLimitInfo(Dictionary<string, string> headers)
|
||||||
{
|
{
|
||||||
string temp;
|
string temp;
|
||||||
IsGlobal = headers.TryGetValue("X-RateLimit-Global", out temp) ? bool.Parse(temp) : false;
|
IsGlobal = headers.TryGetValue("X-RateLimit-Global", out temp) &&
|
||||||
Limit = headers.TryGetValue("X-RateLimit-Limit", out temp) ? int.Parse(temp) : (int?)null;
|
bool.TryParse(temp, out var isGlobal) ? isGlobal : false;
|
||||||
Remaining = headers.TryGetValue("X-RateLimit-Remaining", out temp) ? int.Parse(temp) : (int?)null;
|
Limit = headers.TryGetValue("X-RateLimit-Limit", out temp) &&
|
||||||
Reset = headers.TryGetValue("X-RateLimit-Reset", out temp) ?
|
int.TryParse(temp, out var limit) ? limit : (int?)null;
|
||||||
DateTimeUtils.FromUnixSeconds(int.Parse(temp)) : (DateTimeOffset?)null;
|
Remaining = headers.TryGetValue("X-RateLimit-Remaining", out temp) &&
|
||||||
RetryAfter = headers.TryGetValue("Retry-After", out temp) ? int.Parse(temp) : (int?)null;
|
int.TryParse(temp, out var remaining) ? remaining : (int?)null;
|
||||||
Lag = headers.TryGetValue("Date", out temp) ?
|
Reset = headers.TryGetValue("X-RateLimit-Reset", out temp) &&
|
||||||
DateTimeOffset.UtcNow - DateTimeOffset.Parse(temp) : (TimeSpan?)null;
|
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