aboutsummaryrefslogtreecommitdiff
path: root/src/utils
diff options
context:
space:
mode:
authorIllia <[email protected]>2017-01-11 15:20:49 +0300
committerIllia <[email protected]>2017-01-11 15:20:49 +0300
commit583824fdbc0e6bf076673b850ccedefe7cc716a3 (patch)
tree922481eef704d0da4ffd96666034fecf802c7b51 /src/utils
parentFix a payload decode (diff)
downloadserenity-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.rs26
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")
}