aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRapptz <[email protected]>2019-08-11 19:17:06 -0400
committerRapptz <[email protected]>2019-08-27 18:41:31 -0400
commit078d1d71d8ecd571f92644d58ebf5b0ac9f7a4d4 (patch)
tree31839173f61784f353da747cc4be2b8f338e449c
parentActually add things to the message cache. (diff)
downloaddiscord.py-078d1d71d8ecd571f92644d58ebf5b0ac9f7a4d4.tar.xz
discord.py-078d1d71d8ecd571f92644d58ebf5b0ac9f7a4d4.zip
Use new rate limit millisecond precision option.
-rw-r--r--discord/http.py15
-rw-r--r--discord/utils.py2
2 files changed, 7 insertions, 10 deletions
diff --git a/discord/http.py b/discord/http.py
index 84bd45da..2a1f0cc7 100644
--- a/discord/http.py
+++ b/discord/http.py
@@ -105,7 +105,7 @@ class HTTPClient:
if self.__session.closed:
self.__session = aiohttp.ClientSession(connector=self.connector, loop=self.loop)
- async def request(self, route, *, files=None, header_bypass_delay=None, **kwargs):
+ async def request(self, route, *, files=None, **kwargs):
bucket = route.bucket
method = route.method
url = route.url
@@ -119,6 +119,7 @@ class HTTPClient:
# header creation
headers = {
'User-Agent': self.user_agent,
+ 'X-Ratelimit-Precision': 'millisecond',
}
if self.token is not None:
@@ -165,11 +166,7 @@ class HTTPClient:
remaining = r.headers.get('X-Ratelimit-Remaining')
if remaining == '0' and r.status != 429:
# we've depleted our current bucket
- if header_bypass_delay is None:
- delta = utils._parse_ratelimit_header(r)
- else:
- delta = header_bypass_delay
-
+ delta = utils._parse_ratelimit_header(r)
log.debug('A rate limit bucket has been exhausted (bucket: %s, retry: %s).', bucket, delta)
maybe_lock.defer()
self.loop.call_later(delta, lock.release)
@@ -383,17 +380,17 @@ class HTTPClient:
def add_reaction(self, channel_id, message_id, emoji):
r = Route('PUT', '/channels/{channel_id}/messages/{message_id}/reactions/{emoji}/@me',
channel_id=channel_id, message_id=message_id, emoji=emoji)
- return self.request(r, header_bypass_delay=0.25)
+ return self.request(r)
def remove_reaction(self, channel_id, message_id, emoji, member_id):
r = Route('DELETE', '/channels/{channel_id}/messages/{message_id}/reactions/{emoji}/{member_id}',
channel_id=channel_id, message_id=message_id, member_id=member_id, emoji=emoji)
- return self.request(r, header_bypass_delay=0.25)
+ return self.request(r)
def remove_own_reaction(self, channel_id, message_id, emoji):
r = Route('DELETE', '/channels/{channel_id}/messages/{message_id}/reactions/{emoji}/@me',
channel_id=channel_id, message_id=message_id, emoji=emoji)
- return self.request(r, header_bypass_delay=0.25)
+ return self.request(r)
def get_reaction_users(self, channel_id, message_id, emoji, limit, after=None):
r = Route('GET', '/channels/{channel_id}/messages/{message_id}/reactions/{emoji}',
diff --git a/discord/utils.py b/discord/utils.py
index d53d751f..8090d4a7 100644
--- a/discord/utils.py
+++ b/discord/utils.py
@@ -304,7 +304,7 @@ def to_json(obj):
def _parse_ratelimit_header(request):
now = parsedate_to_datetime(request.headers['Date'])
- reset = datetime.datetime.fromtimestamp(int(request.headers['X-Ratelimit-Reset']), datetime.timezone.utc)
+ reset = datetime.datetime.fromtimestamp(float(request.headers['X-Ratelimit-Reset']), datetime.timezone.utc)
return (reset - now).total_seconds()
async def maybe_coroutine(f, *args, **kwargs):