diff options
| author | Illia <[email protected]> | 2017-01-11 15:20:49 +0300 |
|---|---|---|
| committer | Illia <[email protected]> | 2017-01-11 15:20:49 +0300 |
| commit | 583824fdbc0e6bf076673b850ccedefe7cc716a3 (patch) | |
| tree | 922481eef704d0da4ffd96666034fecf802c7b51 /src/utils | |
| parent | Fix a payload decode (diff) | |
| download | serenity-583824fdbc0e6bf076673b850ccedefe7cc716a3.tar.xz serenity-583824fdbc0e6bf076673b850ccedefe7cc716a3.zip | |
Use zero-width space for mention prevention
Diffstat (limited to 'src/utils')
| -rw-r--r-- | src/utils/message_builder.rs | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/src/utils/message_builder.rs b/src/utils/message_builder.rs index 4205f1b..fc6882d 100644 --- a/src/utils/message_builder.rs +++ b/src/utils/message_builder.rs @@ -297,22 +297,22 @@ impl Default for MessageBuilder { } fn normalize(text: &str) -> String { - // Remove everyone and here mentions - // This changes 'at' symbol to a full-width variation - text.replace("@everyone", "@everyone") - .replace("@here", "@here") - // Remove invite links and popular scam websites, mostly to prevent the - // current user from triggering various ad detectors - .replace("discord.gg", "discord․gg") - .replace("discord.me", "discord․me") - .replace("discordlist.net", "discordlist․net") - .replace("discordservers.com", "discordservers․com") - .replace("discordapp.com/invite", "discordapp․com/invite") - // Remove right-to-left and other similar overrides - .replace('\u{202E}', " ") // RTL + // Remove invite links and popular scam websites, mostly to prevent the + // current user from triggering various ad detectors and prevent embeds. + text.replace("discord.gg", "discord\u{2024}gg") + .replace("discord.me", "discord\u{2024}me") + .replace("discordlist.net", "discordlist\u{2024}net") + .replace("discordservers.com", "discordservers\u{2024}com") + .replace("discordapp.com/invite", "discordapp\u{2024}com/invite") + // Remove right-to-left override and other similar annoying symbols + .replace('\u{202E}', " ") // RTL Override .replace('\u{200F}', " ") // RTL Mark .replace('\u{202B}', " ") // RTL Embedding .replace('\u{200B}', " ") // Zero-width space .replace('\u{200D}', " ") // Zero-width joiner .replace('\u{200C}', " ") // Zero-width non-joiner + // Remove everyone and here mentions. Has to be put after ZWS replacement + // because it utilises it itself. + .replace("@everyone", "@\u{200B}everyone") + .replace("@here", "@\u{200B}here") } |