Skip to content

Commit 0f08a36

Browse files
committed
- Normalize Discord channel and category names
1 parent db13e24 commit 0f08a36

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

modules/discord/discord_utils.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,10 @@ async def get_or_create_discord_channel_by_name(client: discord.Client,
9797
channel_type: discord.ChannelType,
9898
category: discord.CategoryChannel = None) -> \
9999
Union[discord.VoiceChannel, discord.TextChannel, discord.CategoryChannel, None]:
100+
channel_name_normalized = normalize_channel_name(channel_name=channel_name)
100101
channels = await get_all_discord_channels(client=client, guild_id=guild_id, channel_type=channel_type)
101102
for channel in channels:
102-
if channel.name == channel_name:
103+
if normalize_channel_name(channel_name=channel.name) == channel_name_normalized:
103104
if category and channel.category != category:
104105
continue
105106
return channel
@@ -140,10 +141,11 @@ async def get_or_create_discord_category_by_name(client: discord.Client,
140141
guild_id: int,
141142
category_name: str) -> discord.CategoryChannel:
142143
logging.debug(f"Getting {quote(category_name)} category")
144+
category_name_normalized = normalize_category_name(category_name=category_name)
143145
categories = await get_all_discord_channels(client=client, guild_id=guild_id,
144146
channel_type=discord.ChannelType.category)
145147
for category in categories:
146-
if category.name == category_name:
148+
if normalize_category_name(category_name=category.name) == category_name_normalized:
147149
return category
148150

149151
logging.error(f"Could not load {category_name} category. Attempting to create...")
@@ -248,3 +250,16 @@ def normalize_channel_name(channel_name: str) -> str:
248250
channel_name = channel_name.replace(" ", "") # Remove any weird space characters in the name
249251
channel_name = channel_name.lower()
250252
return channel_name
253+
254+
255+
def normalize_category_name(category_name: str) -> str:
256+
"""
257+
Normalize a Discord category name.
258+
:param category_name: The original category name
259+
:return: Normalized category name
260+
"""
261+
category_name = category_name.strip() # Remove leading and trailing spaces
262+
category_name = strip_phantom_space(string=category_name) # Remove phantom spaces
263+
category_name = category_name.replace(" ", "") # Remove any weird space characters in the name
264+
category_name = category_name.lower()
265+
return category_name

0 commit comments

Comments
 (0)