aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bot/exts/moderation/slowmode.py12
1 files changed, 5 insertions, 7 deletions
diff --git a/bot/exts/moderation/slowmode.py b/bot/exts/moderation/slowmode.py
index 595026837..5ac806c4a 100644
--- a/bot/exts/moderation/slowmode.py
+++ b/bot/exts/moderation/slowmode.py
@@ -1,4 +1,4 @@
-from typing import Optional
+from typing import Literal, Optional, Union
from dateutil.relativedelta import relativedelta
from discord import TextChannel
@@ -6,7 +6,7 @@ from discord.ext.commands import Cog, Context, group, has_any_role, BadArgument
from bot.bot import Bot
from bot.constants import Channels, Emojis, MODERATION_ROLES
-from bot.converters import DurationDelta
+from bot.converters import Duration, DurationDelta
from bot.log import get_logger
from bot.utils import time
@@ -44,7 +44,7 @@ class Slowmode(Cog):
await ctx.send(f'The slowmode delay for {channel.mention} is {humanized_delay}.')
@slowmode_group.command(name='set', aliases=['s'])
- async def set_slowmode(self, ctx: Context, channel: Optional[TextChannel], delay: str) -> None:
+ async def set_slowmode(self, ctx: Context, channel: Optional[TextChannel], delay: Union[DurationDelta, Literal["0s"], Literal["0seconds"]]) -> None:
"""Set the slowmode delay for a text channel."""
# Use the channel this command was invoked in if one was not given
if channel is None:
@@ -52,10 +52,8 @@ class Slowmode(Cog):
# Convert `dateutil.relativedelta.relativedelta` to `datetime.timedelta`
# Must do this to get the delta in a particular unit of time
- try:
- delay = await DurationDelta().convert(ctx, delay)
-
- except BadArgument:
+ log.info(delay)
+ if isinstance(delay, str):
delay = relativedelta(seconds=0)
slowmode_delay = time.relativedelta_to_timedelta(delay).total_seconds()