aboutsummaryrefslogtreecommitdiff
path: root/discord/shard.py
diff options
context:
space:
mode:
Diffstat (limited to 'discord/shard.py')
-rw-r--r--discord/shard.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/discord/shard.py b/discord/shard.py
index 6985d797..ebc27b0d 100644
--- a/discord/shard.py
+++ b/discord/shard.py
@@ -258,6 +258,16 @@ class ShardInfo:
""":class:`float`: Measures latency between a HEARTBEAT and a HEARTBEAT_ACK in seconds for this shard."""
return self._parent.ws.latency
+ def is_ws_ratelimited(self):
+ """:class:`bool`: Whether the websocket is currently rate limited.
+
+ This can be useful to know when deciding whether you should query members
+ using HTTP or via the gateway.
+
+ .. versionadded:: 1.6
+ """
+ return self._parent.ws.is_ratelimited()
+
class AutoShardedClient(Client):
"""A client similar to :class:`Client` except it handles the complications
of sharding for the user into a more manageable and transparent single
@@ -519,3 +529,16 @@ class AutoShardedClient(Client):
me.activities = activities
me.status = status_enum
+
+ def is_ws_ratelimited(self):
+ """:class:`bool`: Whether the websocket is currently rate limited.
+
+ This can be useful to know when deciding whether you should query members
+ using HTTP or via the gateway.
+
+ This implementation checks if any of the shards are rate limited.
+ For more granular control, consider :meth:`ShardInfo.is_ws_ratelimited`.
+
+ .. versionadded:: 1.6
+ """
+ return any(shard.ws.is_ratelimited() for shard in self.__shards.values())