Attempt to make invalid nicknames valid

This commit is contained in:
2025-08-23 16:43:52 -03:00
parent 06faca7aa2
commit 291c4d50b2
+16 -6
View File
@@ -21,25 +21,35 @@ pub struct DisplayProfile {
pub mask: Option<String>, pub mask: Option<String>,
} }
fn make_name_valid(name: String) -> String {
if name.len() == 1 {
format!("{name}\u{2800}")
} else if name.len() > 80 {
format!("{name:.80}")
} else {
name
}
}
fn get_display_profile(event: &MessageCreate) -> DisplayProfile { fn get_display_profile(event: &MessageCreate) -> DisplayProfile {
let member = event.member.clone(); let member = event.member.clone();
let name = if let Some(nick) = &member.clone().and_then(|member| member.nick) { let name = if let Some(nick) = &member.clone().and_then(|member| member.nick.map(make_name_valid)) {
if webhook_username(nick).is_err() { if webhook_username(nick).is_err() {
"Invalid Nickname".to_string() "Invalid Nickname".to_string()
} else { } else {
nick.clone() nick.clone()
} }
} else if let Some(name) = &event.author.global_name { } else if let Some(name) = event.author.global_name.clone().map(make_name_valid) {
if webhook_username(name).is_err() { if webhook_username(&name).is_err() {
"Invalid Global Name".to_string() "Invalid Global Name".to_string()
} else { } else {
name.clone() name
} }
} else if webhook_username(&event.author.name).is_err() { } else if webhook_username(make_name_valid(event.author.name.clone())).is_err() {
"Invalid Username".to_string() "Invalid Username".to_string()
} else { } else {
event.author.name.clone() make_name_valid(event.author.name.clone())
}; };
let avatar_hash = member let avatar_hash = member