aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Hassan Abouelela <[email protected]>2020-11-22 12:50:58 +0300
committerGravatar Hassan Abouelela <[email protected]>2020-11-22 12:50:58 +0300
commit51daa10a98299c5bcf4455b34e10c35850474521 (patch)
tree12ecfb2414d26215946e19a39a365a189537038d
parentAdds VoiceChannel Mute (diff)
Improves Channel Converter Usability
- Allows spaces in channel name - Allows channel name to have any capitalization - Fixed inherited class to general Converter class Signed-off-by: Hassan Abouelela <[email protected]>
-rw-r--r--bot/converters.py8
-rw-r--r--bot/exts/moderation/silence.py4
2 files changed, 6 insertions, 6 deletions
diff --git a/bot/converters.py b/bot/converters.py
index b9db37fce..613be73eb 100644
--- a/bot/converters.py
+++ b/bot/converters.py
@@ -536,7 +536,7 @@ class FetchedUser(UserConverter):
raise BadArgument(f"User `{arg}` does not exist")
-class AnyChannelConverter(UserConverter):
+class AnyChannelConverter(Converter):
"""
Converts to a `discord.Channel` or, raises an error.
@@ -557,15 +557,15 @@ class AnyChannelConverter(UserConverter):
async def convert(self, ctx: Context, arg: str) -> t.Union[discord.TextChannel, discord.VoiceChannel]:
"""Convert the `arg` to a `TextChannel` or `VoiceChannel`."""
- stripped = arg.strip().lstrip("<").lstrip("#").rstrip(">")
+ stripped = arg.strip().lstrip("<").lstrip("#").rstrip(">").lower()
# Filter channels by name and ID
- channels = [channel for channel in ctx.guild.channels if stripped in (channel.name, str(channel.id))]
+ channels = [channel for channel in ctx.guild.channels if stripped in (channel.name.lower(), str(channel.id))]
if len(channels) == 0:
# Couldn't find a matching channel
log.debug(f"Could not convert `{arg}` to channel, no matches found.")
- raise BadArgument("The provided argument returned no matches.")
+ raise BadArgument(f"{arg} returned no matches.")
elif len(channels) > 1:
# Couldn't discern the desired channel
diff --git a/bot/exts/moderation/silence.py b/bot/exts/moderation/silence.py
index 266669eed..c903bfe9e 100644
--- a/bot/exts/moderation/silence.py
+++ b/bot/exts/moderation/silence.py
@@ -141,7 +141,7 @@ class Silence(commands.Cog):
@commands.command(aliases=("hush",))
@lock_arg(LOCK_NAMESPACE, "ctx", attrgetter("channel"), raise_error=True)
async def silence(self, ctx: Context, duration: HushDurationConverter = 10,
- channel: AnyChannelConverter = None) -> None:
+ *, channel: AnyChannelConverter = None) -> None:
"""
Silence the current channel for `duration` minutes or `forever`.
@@ -171,7 +171,7 @@ class Silence(commands.Cog):
await self.send_message(MSG_SILENCE_SUCCESS, ctx.channel, channel, True, duration)
@commands.command(aliases=("unhush",))
- async def unsilence(self, ctx: Context, channel: AnyChannelConverter = None) -> None:
+ async def unsilence(self, ctx: Context, *, channel: AnyChannelConverter = None) -> None:
"""
Unsilence the given channel if given, else the current one.