Skip to content

Commit 5b4e067

Browse files
MiddledotBobDotComLulalaby
authored
New delete_message_seconds parameter (#1557)
* chore: refactor bans * refactor: use None for optional parameters * refactor: just make delete_message_days deprecated not aliased Co-authored-by: BobDotCom <[email protected]> Co-authored-by: Lala Sabathil <[email protected]>
1 parent 6c6505b commit 5b4e067

File tree

2 files changed

+24
-9
lines changed

2 files changed

+24
-9
lines changed

discord/guild.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2933,8 +2933,9 @@ async def ban(
29332933
self,
29342934
user: Snowflake,
29352935
*,
2936+
delete_message_seconds: Optional[int] = None,
2937+
delete_message_days: Optional[int] = None,
29362938
reason: Optional[str] = None,
2937-
delete_message_days: Literal[0, 1, 2, 3, 4, 5, 6, 7] = 1,
29382939
) -> None:
29392940
"""|coro|
29402941
@@ -2949,9 +2950,13 @@ async def ban(
29492950
-----------
29502951
user: :class:`abc.Snowflake`
29512952
The user to ban from their guild.
2952-
delete_message_days: :class:`int`
2953-
The number of days worth of messages to delete from the user
2954-
in the guild. The minimum is 0 and the maximum is 7.
2953+
delete_message_seconds: Optional[:class:`int`]
2954+
The number of seconds worth of messages to delete from
2955+
the user in the guild. The minimum is 0 and the maximum
2956+
is 604800 (i.e. 7 days). The default is 0.
2957+
delete_message_days: Optional[:class:`int`]
2958+
***Deprecated parameter***, same as ``delete_message_seconds`` but
2959+
is used for days instead.
29552960
reason: Optional[:class:`str`]
29562961
The reason the user got banned.
29572962
@@ -2962,7 +2967,13 @@ async def ban(
29622967
HTTPException
29632968
Banning failed.
29642969
"""
2965-
await self._state.http.ban(user.id, self.id, delete_message_days, reason=reason)
2970+
if delete_message_seconds and delete_message_days:
2971+
raise TypeError("delete_message_seconds and delete_message_days are mutually exclusive.")
2972+
2973+
if not (0 <= delete_message_seconds <= 604800):
2974+
raise TypeError("delete_message_seconds must be between 0 and 604800 seconds.")
2975+
2976+
await self._state.http.ban(user.id, self.id, delete_message_seconds, delete_message_days, reason=reason)
29662977

29672978
async def unban(self, user: Snowflake, *, reason: Optional[str] = None) -> None:
29682979
"""|coro|

discord/http.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -850,7 +850,8 @@ def ban(
850850
self,
851851
user_id: Snowflake,
852852
guild_id: Snowflake,
853-
delete_message_days: int = 1,
853+
delete_message_seconds: int = None,
854+
delete_message_days: int = None,
854855
reason: Optional[str] = None,
855856
) -> Response[None]:
856857
r = Route(
@@ -859,9 +860,12 @@ def ban(
859860
guild_id=guild_id,
860861
user_id=user_id,
861862
)
862-
params = {
863-
"delete_message_days": delete_message_days,
864-
}
863+
params = {}
864+
865+
if delete_message_days:
866+
params["delete_message_days"] = delete_message_days
867+
elif delete_message_seconds:
868+
params["delete_message_seconds"] = delete_message_seconds
865869

866870
return self.request(r, params=params, reason=reason)
867871

0 commit comments

Comments
 (0)