From 291c4d50b2d4202f5d4e0d5cbb41020cd1df6bef Mon Sep 17 00:00:00 2001 From: Rafael Bradley Date: Sat, 23 Aug 2025 16:43:52 -0300 Subject: [PATCH] Attempt to make invalid nicknames valid --- src/groups/calls/mod.rs | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/groups/calls/mod.rs b/src/groups/calls/mod.rs index 096e9c1..a5c4579 100644 --- a/src/groups/calls/mod.rs +++ b/src/groups/calls/mod.rs @@ -21,25 +21,35 @@ pub struct DisplayProfile { pub mask: Option, } +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 { 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() { "Invalid Nickname".to_string() } else { nick.clone() } - } else if let Some(name) = &event.author.global_name { - if webhook_username(name).is_err() { + } else if let Some(name) = event.author.global_name.clone().map(make_name_valid) { + if webhook_username(&name).is_err() { "Invalid Global Name".to_string() } 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() } else { - event.author.name.clone() + make_name_valid(event.author.name.clone()) }; let avatar_hash = member