aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRapptz <[email protected]>2015-11-16 21:00:39 -0500
committerRapptz <[email protected]>2015-11-16 21:02:23 -0500
commitcc596542161842dcd01f86c55cdbc23074edbf9d (patch)
treef134fa29ad910fe68d6469b6572946be9e69748a
parentDocumentation fixes for Client.logs_from (diff)
downloaddiscord.py-cc596542161842dcd01f86c55cdbc23074edbf9d.tar.xz
discord.py-cc596542161842dcd01f86c55cdbc23074edbf9d.zip
Add Client.get_all_channels and Client.get_all_members
-rw-r--r--discord/client.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/discord/client.py b/discord/client.py
index 3b679f44..7b1dc6ac 100644
--- a/discord/client.py
+++ b/discord/client.py
@@ -816,6 +816,38 @@ class Client(object):
self._is_logged_in = False
log.debug(request_logging_format.format(response=response))
+ def get_all_channels(self):
+ """Returns a generator with every :class:`Channel` the client can 'access'.
+
+ This is equivalent to: ::
+
+ for server in client.servers:
+ for channel in server.channels:
+ yield channel
+
+ Note that just because you receive a :class:`Channel` does not mean that
+ you can communicate in said channel. :meth:`Channel.permissions_for` should
+ be used for that.
+ """
+
+ for server in self.servers:
+ for channel in server.channels:
+ yield channel
+
+ def get_all_members(self):
+ """Returns a generator with every :class:`Member` the client can see.
+
+ This is equivalent to: ::
+
+ for server in client.servers:
+ for member in server.members:
+ yield member
+
+ """
+ for server in self.servers:
+ for member in server.members:
+ yield member
+
def logs_from(self, channel, limit=100, before=None, after=None):
"""A generator that obtains logs from a specified channel.