aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--discord/client.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/discord/client.py b/discord/client.py
index 970fb302..8483d438 100644
--- a/discord/client.py
+++ b/discord/client.py
@@ -1773,6 +1773,47 @@ class Client:
return Invite(**data)
@asyncio.coroutine
+ def invites_from(self, server):
+ """|coro|
+
+ Returns a generator that yields all active instant invites from
+ a :class:`Server`.
+
+ You must have proper permissions to get this information.
+
+ Parameters
+ ----------
+ server : :class:`Server`
+ The server to get invites from.
+
+ Raises
+ -------
+ Forbidden
+ You do not have proper permissions to get the information.
+ HTTPException
+ An error occurred while fetching the information.
+
+ Yields
+ -------
+ :class:`Invite`
+ The invite with the message data parsed.
+ """
+
+ def generator(data):
+ for invite in data:
+ channel = utils.get(server.channels, id=invite['channel']['id'])
+ invite['channel'] = channel
+ invite['server'] = server
+ yield Invite(**invite)
+
+ url = '{0}/{1.id}/invites'.format(endpoints.SERVERS, server)
+ resp = yield from aiohttp.get(url, headers=self.headers, loop=self.loop)
+ log.debug(request_logging_format.format(method='GET', response=resp))
+ yield from utils._verify_successful_response(resp)
+ data = yield from resp.json()
+ return generator(data)
+
+ @asyncio.coroutine
def accept_invite(self, invite):
"""|coro|