diff options
| author | Rapptz <[email protected]> | 2015-12-15 20:19:37 -0500 |
|---|---|---|
| committer | Rapptz <[email protected]> | 2015-12-15 20:19:37 -0500 |
| commit | 00a98a76fdbcb2ff749919161c91f496b0a85d92 (patch) | |
| tree | d91ffcb982ae8e4ad2292ea2a9888929dfbb646b | |
| parent | Add a way to get bans from a server. (diff) | |
| download | discord.py-00a98a76fdbcb2ff749919161c91f496b0a85d92.tar.xz discord.py-00a98a76fdbcb2ff749919161c91f496b0a85d92.zip | |
Add a way to get all active invites from a server.
| -rw-r--r-- | discord/client.py | 41 |
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| |