diff options
| author | NCPlayz <[email protected]> | 2019-06-08 00:15:39 +0100 |
|---|---|---|
| committer | Rapptz <[email protected]> | 2019-06-29 19:14:19 -0400 |
| commit | 851f83c821c560cff3feb206b5c48a48a961848a (patch) | |
| tree | 6996c6f168cb0cb0664a5f26c2c8be176814078d /discord/guild.py | |
| parent | Use a new scorer to improve search results. (diff) | |
| download | discord.py-851f83c821c560cff3feb206b5c48a48a961848a.tar.xz discord.py-851f83c821c560cff3feb206b5c48a48a961848a.zip | |
Implement `Guild.fetch_members`
Also implements `MemberIterator`.
Diffstat (limited to 'discord/guild.py')
| -rw-r--r-- | discord/guild.py | 49 |
1 files changed, 48 insertions, 1 deletions
diff --git a/discord/guild.py b/discord/guild.py index 2ea56d05..b706c905 100644 --- a/discord/guild.py +++ b/discord/guild.py @@ -41,7 +41,7 @@ from .enums import VoiceRegion, Status, ChannelType, try_enum, VerificationLevel from .mixins import Hashable from .user import User from .invite import Invite -from .iterators import AuditLogIterator +from .iterators import AuditLogIterator, MemberIterator from .webhook import Webhook from .widget import Widget from .asset import Asset @@ -1152,6 +1152,53 @@ class Guild(Hashable): return [convert(d) for d in data] + def fetch_members(self, *, limit=1, after=None): + """|coro| + + Retrieves an :class:`.AsyncIterator` that enables receiving the guild's members. + + .. note:: + + This method is an API call. For general usage, consider :attr:`members` instead. + + .. versionadded:: 1.3.0 + + All parameters are optional. + + Parameters + ---------- + limit: Optional[:class:`int`] + The number of members to retrieve. + Defaults to 1. + after: Optional[Union[:class:`.abc.Snowflake`, :class:`datetime.datetime`]] + Retrieve members after this date or object. + If a date is provided it must be a timezone-naive datetime representing UTC time. + + Raises + ------ + HTTPException + Getting the members failed. + + Yields + ------ + :class:`.Member` + The member with the member data parsed. + + Examples + -------- + + Usage :: + + async for member in guild.fetch_members(limit=150): + print(member.name) + + Flattening into a list :: + + members = await guild.fetch_members(limit=150).flatten() + # members is now a list of Member... + """ + return MemberIterator(self, limit=limit, after=after) + async def fetch_member(self, member_id): """|coro| |