| @@ -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; | |||||
| 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; | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||