diff options
author | TheArcaneBrony <myrainbowdash949@gmail.com> | 2022-08-27 03:49:04 +0200 |
---|---|---|
committer | TheArcaneBrony <myrainbowdash949@gmail.com> | 2022-08-27 03:50:33 +0200 |
commit | ec3f088c06029163f1489911dd6bb0a642353714 (patch) | |
tree | 6c802c4a8f06a048964a84f0b8aec620c769c079 | |
parent | Merge pull request #799 from MaddyUnderStars/feat/captchaVerify (diff) | |
parent | Merge remote-tracking branch 'upstream/staging' into fix/categoryNames (diff) | |
download | server-ec3f088c06029163f1489911dd6bb0a642353714.tar.xz |
Merge remote-tracking branch 'Maddy/fix/categoryNames' into staging
-rw-r--r-- | src/util/entities/Channel.ts | 12 | ||||
-rw-r--r-- | src/util/util/InvisibleCharacters.ts | 9 |
2 files changed, 14 insertions, 7 deletions
diff --git a/src/util/entities/Channel.ts b/src/util/entities/Channel.ts index 23fc6544..b17fdba0 100644 --- a/src/util/entities/Channel.ts +++ b/src/util/entities/Channel.ts @@ -181,10 +181,16 @@ export class Channel extends BaseClass { for (let character of InvisibleCharacters) if (channel.name.includes(character)) throw new HTTPError("Channel name cannot include invalid characters", 403); - if (channel.name.match(/\-\-+/g)) throw new HTTPError("Channel name cannot include multiple adjacent dashes.", 403); + // Categories and voice skip these checks on discord.com + const skipChecksTypes = [ChannelType.GUILD_CATEGORY, ChannelType.GUILD_VOICE]; + if ((channel.type && !skipChecksTypes.includes(channel.type)) || guild.features.includes("IRC_LIKE_CHANNEL_NAMES")) { + if (channel.name.includes(" ")) throw new HTTPError("Channel name cannot include invalid characters", 403); - if (channel.name.charAt(0) === "-" || channel.name.charAt(channel.name.length - 1) === "-") - throw new HTTPError("Channel name cannot start/end with dash.", 403); + if (channel.name.match(/\-\-+/g)) throw new HTTPError("Channel name cannot include multiple adjacent dashes.", 403); + + if (channel.name.charAt(0) === "-" || channel.name.charAt(channel.name.length - 1) === "-") + throw new HTTPError("Channel name cannot start/end with dash.", 403); + } else channel.name = channel.name.trim(); //category names are trimmed client side on discord.com } if (!guild.features.includes("ALLOW_UNNAMED_CHANNELS")) { diff --git a/src/util/util/InvisibleCharacters.ts b/src/util/util/InvisibleCharacters.ts index 4c809e48..9bffec58 100644 --- a/src/util/util/InvisibleCharacters.ts +++ b/src/util/util/InvisibleCharacters.ts @@ -1,9 +1,10 @@ // List from https://invisible-characters.com/ export const InvisibleCharacters = [ "\u{9}", //Tab - "\u{20}", //Space + "\u{c}", //Form feed + //'\u{20}', //Space //categories can have spaces in them "\u{ad}", //Soft hyphen - "\u{34f}", //Combining grapheme joiner + // '\u{34f}', //Combining grapheme joiner "\u{61c}", //Arabic letter mark "\u{115f}", //Hangul choseong filler "\u{1160}", //Hangul jungseong filler @@ -23,12 +24,12 @@ export const InvisibleCharacters = [ "\u{200a}", //Hair space "\u{200b}", //Zero width space "\u{200c}", //Zero width non-joiner - "\u{200d}", //Zero width joiner + // '\u{200d}', //Zero width joiner "\u{200e}", //Left-to-right mark "\u{200f}", //Right-to-left mark "\u{202f}", //Narrow no-break space "\u{205f}", //Medium mathematical space - "\u{2060}", //Word joiner + // '\u{2060}', //Word joiner -- WJ is required in some languages that don't use spaces to split words "\u{2061}", //Function application "\u{2062}", //Invisible times "\u{2063}", //Invisible separator |