diff options
| author | Rapptz <[email protected]> | 2019-08-27 03:33:44 -0400 |
|---|---|---|
| committer | Rapptz <[email protected]> | 2019-08-27 18:41:32 -0400 |
| commit | ea3d119ca61e269f3d5bfdfe42178a82d2dba5e6 (patch) | |
| tree | 760e1882acc76f326b7a0efe0f25cea174463191 /discord/utils.py | |
| parent | Fix bucket key to not have the method in there. (diff) | |
| download | discord.py-ea3d119ca61e269f3d5bfdfe42178a82d2dba5e6.tar.xz discord.py-ea3d119ca61e269f3d5bfdfe42178a82d2dba5e6.zip | |
Use X-Ratelimit-Reset-After header by default.
There is now an option to turn it off, of course.
Diffstat (limited to 'discord/utils.py')
| -rw-r--r-- | discord/utils.py | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/discord/utils.py b/discord/utils.py index 8090d4a7..a3162a8a 100644 --- a/discord/utils.py +++ b/discord/utils.py @@ -302,10 +302,15 @@ def _bytes_to_base64_data(data): def to_json(obj): return json.dumps(obj, separators=(',', ':'), ensure_ascii=True) -def _parse_ratelimit_header(request): - now = parsedate_to_datetime(request.headers['Date']) - reset = datetime.datetime.fromtimestamp(float(request.headers['X-Ratelimit-Reset']), datetime.timezone.utc) - return (reset - now).total_seconds() +def _parse_ratelimit_header(request, *, use_clock=False): + reset_after = request.headers.get('X-Ratelimit-Reset-After') + if use_clock or not reset_after: + utc = datetime.timezone.utc + now = datetime.datetime.now(utc) + reset = datetime.datetime.fromtimestamp(float(request.headers['X-Ratelimit-Reset']), utc) + return (reset - now).total_seconds() + else: + return float(reset_after) async def maybe_coroutine(f, *args, **kwargs): value = f(*args, **kwargs) |