Attempt to make invalid nicknames valid
This commit is contained in:
+16
-6
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user