From 851f83c821c560cff3feb206b5c48a48a961848a Mon Sep 17 00:00:00 2001 From: NCPlayz Date: Sat, 8 Jun 2019 00:15:39 +0100 Subject: Implement `Guild.fetch_members` Also implements `MemberIterator`. --- discord/guild.py | 49 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) (limited to 'discord/guild.py') 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| -- cgit v1.2.3