Use trait for username display, fix suggestion username

This commit is contained in:
Elnu 2023-06-13 18:45:08 -07:00
parent 58dbb425ba
commit 6a0a99c193
2 changed files with 16 additions and 7 deletions

View file

@ -13,6 +13,19 @@ use std::io::Read;
use std::io::Write;
use std::process::Command;
pub trait User {
fn username(&self) -> String;
}
impl User for serenity::User {
fn username(&self) -> String {
if self.discriminator == 0 {
return self.name.clone();
}
format!("{}#{}", self.name, self.discriminator)
}
}
pub fn get_challenge_number() -> i32 {
let challenge_dir = format!("{}/content/challenges", env::var("HUGO").unwrap());
let paths = fs::read_dir(challenge_dir).unwrap();
@ -386,6 +399,7 @@ pub async fn leaderboard(ctx: &Context<'_>) -> Result<(), Error> {
let discriminator = user.discriminator;
leaderboard_html.push_str(&format!("<tr><td>{place}</td><td><a href=\"{profile}\" target=\"_blank\" class=\"no-underline\"><img src=\"{avatar}\" onerror=\"this.src='/default.png'\"> <span class=\"underline\">{name}"));
// New usernames have #0000 discriminator
// Can't use User trait user.display_name() because of muted span
if discriminator != 0 {
leaderboard_html.push_str(&format!("<span class=\"muted\">#{:0>4}</span>", discriminator));
}