aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bot/cogs/help_channels.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/bot/cogs/help_channels.py b/bot/cogs/help_channels.py
index 68dbdf9ed..4fddba627 100644
--- a/bot/cogs/help_channels.py
+++ b/bot/cogs/help_channels.py
@@ -60,6 +60,10 @@ question to maximize your chance of getting a good answer. If you're not sure ho
through our guide for [asking a good question]({ASKING_GUIDE_URL}).
"""
+AVAILABLE_EMOJI = "✅"
+IN_USE_EMOJI = "⌛"
+NAME_SEPARATOR = "|"
+
class TaskData(t.NamedTuple):
"""Data for a scheduled task."""
@@ -236,6 +240,20 @@ class HelpChannels(Scheduler, commands.Cog):
return position
@staticmethod
+ def get_clean_channel_name(channel: discord.TextChannel) -> str:
+ """Return a clean channel name without status emojis prefix."""
+ try:
+ # Try to remove the status prefix using the index of "help-"
+ name = channel.name[channel.name.index("help-"):]
+ log.trace(f"The clean name for `{channel}` is `{name}`")
+ except ValueError:
+ # If, for some reason, the channel name does not contain "help-" fall back gracefully
+ log.info(f"Can't get clean name as `{channel}` does not follow the `help-` naming convention.")
+ name = channel.name
+
+ return name
+
+ @staticmethod
def get_category_channels(category: discord.CategoryChannel) -> t.Iterable[discord.TextChannel]:
"""Yield the text channels of the `category` in an unsorted manner."""
log.trace(f"Getting text channels in the category '{category}' ({category.id}).")
@@ -419,7 +437,9 @@ class HelpChannels(Scheduler, commands.Cog):
await self.send_available_message(channel)
log.trace(f"Moving #{channel} ({channel.id}) to the Available category.")
+
await channel.edit(
+ name=f"{AVAILABLE_EMOJI}{NAME_SEPARATOR}{self.get_clean_channel_name(channel)}",
category=self.available_category,
sync_permissions=True,
topic=AVAILABLE_TOPIC,
@@ -430,6 +450,7 @@ class HelpChannels(Scheduler, commands.Cog):
log.info(f"Moving #{channel} ({channel.id}) to the Dormant category.")
await channel.edit(
+ name=self.get_clean_channel_name(channel),
category=self.dormant_category,
sync_permissions=True,
topic=DORMANT_TOPIC,
@@ -450,6 +471,7 @@ class HelpChannels(Scheduler, commands.Cog):
log.info(f"Moving #{channel} ({channel.id}) to the In Use category.")
await channel.edit(
+ name=f"{IN_USE_EMOJI}{NAME_SEPARATOR}{self.get_clean_channel_name(channel)}",
category=self.in_use_category,
sync_permissions=True,
topic=IN_USE_TOPIC,