Browse Source

Add compute_prune_count to Guild.prune_members

Fix #2085
pull/2095/head
Rapptz 6 years ago
parent
commit
519f0c07ea
  1. 16
      discord/guild.py
  2. 5
      discord/http.py

16
discord/guild.py

@ -1021,8 +1021,8 @@ class Guild(Hashable):
reason=e['reason']) reason=e['reason'])
for e in data] for e in data]
async def prune_members(self, *, days, reason=None): async def prune_members(self, *, days, compute_prune_count=True, reason=None):
"""|coro| r"""|coro|
Prunes the guild from its inactive members. Prunes the guild from its inactive members.
@ -1041,6 +1041,11 @@ class Guild(Hashable):
The number of days before counting as inactive. The number of days before counting as inactive.
reason: Optional[:class:`str`] reason: Optional[:class:`str`]
The reason for doing this action. Shows up on the audit log. The reason for doing this action. Shows up on the audit log.
compute_prune_count: :class:`bool`
Whether to compute the prune count. This defaults to ``True``
which makes it prone to timeouts in very large guilds. In order
to prevent timeouts, you must set this to ``False``. If this is
set to ``False``\, then this function will always return ``None``.
Raises Raises
------- -------
@ -1053,14 +1058,15 @@ class Guild(Hashable):
Returns Returns
--------- ---------
:class:`int` Optional[:class:`int`]
The number of members pruned. The number of members pruned. If ``compute_prune_count`` is ``False``
then this returns ``None``.
""" """
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.prune_members(self.id, days, reason=reason) data = await self._state.http.prune_members(self.id, days, compute_prune_count=compute_prune_count, reason=reason)
return data['pruned'] return data['pruned']
async def webhooks(self): async def webhooks(self):

5
discord/http.py

@ -615,9 +615,10 @@ class HTTPClient:
def get_member(self, guild_id, member_id): def get_member(self, guild_id, member_id):
return self.request(Route('GET', '/guilds/{guild_id}/members/{member_id}', guild_id=guild_id, member_id=member_id)) return self.request(Route('GET', '/guilds/{guild_id}/members/{member_id}', guild_id=guild_id, member_id=member_id))
def prune_members(self, guild_id, days, *, reason=None): def prune_members(self, guild_id, days, compute_prune_count, *, reason=None):
params = { params = {
'days': days 'days': days,
'compute_prune_count': compute_prune_count
} }
return self.request(Route('POST', '/guilds/{guild_id}/prune', guild_id=guild_id), params=params, reason=reason) return self.request(Route('POST', '/guilds/{guild_id}/prune', guild_id=guild_id), params=params, reason=reason)

Loading…
Cancel
Save