Browse Source

Add roles to guild.estimate_pruned_members

pull/6575/head
z03h 4 years ago
committed by GitHub
parent
commit
fbb7ac6be1
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 12
      discord/guild.py
  2. 5
      discord/http.py

12
discord/guild.py

@ -1506,7 +1506,7 @@ class Guild(Hashable):
data = await self._state.http.guild_webhooks(self.id) data = await self._state.http.guild_webhooks(self.id)
return [Webhook.from_state(d, state=self._state) for d in data] return [Webhook.from_state(d, state=self._state) for d in data]
async def estimate_pruned_members(self, *, days): async def estimate_pruned_members(self, *, days, roles=None):
"""|coro| """|coro|
Similar to :meth:`prune_members` except instead of actually Similar to :meth:`prune_members` except instead of actually
@ -1517,6 +1517,11 @@ class Guild(Hashable):
----------- -----------
days: :class:`int` days: :class:`int`
The number of days before counting as inactive. The number of days before counting as inactive.
roles: Optional[List[:class:`abc.Snowflake`]]
A list of :class:`abc.Snowflake` that represent roles to include in the estimate. If a member
has a role that is not specified, they'll be excluded.
.. versionadded:: 1.7
Raises Raises
------- -------
@ -1536,7 +1541,10 @@ class Guild(Hashable):
if not isinstance(days, int): if not isinstance(days, int):
raise InvalidArgument('Expected int for ``days``, received {0.__class__.__name__} instead.'.format(days)) raise InvalidArgument('Expected int for ``days``, received {0.__class__.__name__} instead.'.format(days))
data = await self._state.http.estimate_pruned_members(self.id, days) if roles:
roles = [str(role.id) for role in roles]
data = await self._state.http.estimate_pruned_members(self.id, days, roles)
return data['pruned'] return data['pruned']
async def invites(self): async def invites(self):

5
discord/http.py

@ -739,10 +739,13 @@ class HTTPClient:
return self.request(Route('POST', '/guilds/{guild_id}/prune', guild_id=guild_id), json=payload, reason=reason) return self.request(Route('POST', '/guilds/{guild_id}/prune', guild_id=guild_id), json=payload, reason=reason)
def estimate_pruned_members(self, guild_id, days): def estimate_pruned_members(self, guild_id, days, roles):
params = { params = {
'days': days 'days': days
} }
if roles:
params['include_roles'] = ', '.join(roles)
return self.request(Route('GET', '/guilds/{guild_id}/prune', guild_id=guild_id), params=params) return self.request(Route('GET', '/guilds/{guild_id}/prune', guild_id=guild_id), params=params)
def get_all_custom_emojis(self, guild_id): def get_all_custom_emojis(self, guild_id):

Loading…
Cancel
Save