Skip to content

Commit

Permalink
Use CDN for default avatars
Browse files Browse the repository at this point in the history
  • Loading branch information
Austin Hellyer committed Jan 9, 2017
1 parent 02a1658 commit 69ec62a
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 19 deletions.
14 changes: 1 addition & 13 deletions src/model/user.rs
Expand Up @@ -2,7 +2,6 @@ use std::fmt;
use super::utils::{into_map, into_string, remove};
use super::{
CurrentUser,
DefaultAvatar,
FriendSourceFlags,
GuildContainer,
GuildId,
Expand Down Expand Up @@ -156,18 +155,7 @@ impl User {
/// [`Error::Num`]: ../enum.Error.html#variant.Num
/// [`Error::Other`]: ../enum.Error.html#variant.Other
pub fn default_avatar_url(&self) -> Result<String> {
Ok(base!("/assets/{}.png", match self.discriminator.parse::<u16>()? % 5u16 {
0 => DefaultAvatar::Blurple.name().to_owned(),
1 => DefaultAvatar::Grey.name().to_owned(),
2 => DefaultAvatar::Green.name().to_owned(),
3 => DefaultAvatar::Orange.name().to_owned(),
4 => DefaultAvatar::Red.name().to_owned(),
other => {
error!("Reached impossible default avatar match: {}", other);

return Err(Error::Other("Reached impossible default match"));
},
}))
Ok(cdn!("/embed/avatars/{}.png", self.discriminator.parse::<u16>()? % 5u16).to_owned())
}

/// Send a direct message to a user. This will create or retrieve the
Expand Down
5 changes: 4 additions & 1 deletion src/utils/macros.rs
Expand Up @@ -26,7 +26,10 @@ macro_rules! request {
macro_rules! cdn {
($e:expr) => {
concat!("https://cdn.discordapp.com", $e)
}
};
($e:expr, $($rest:tt)*) => {
format!(cdn!($e), $($rest)*)
};
}

macro_rules! base {
Expand Down
10 changes: 5 additions & 5 deletions tests/test_user.rs
Expand Up @@ -32,13 +32,13 @@ fn default_avatars() {
let mut user = gen();

user.discriminator = "0".to_owned();
assert!(user.default_avatar_url().unwrap().ends_with("1b.png"));
assert!(user.default_avatar_url().unwrap().ends_with("0.png"));
user.discriminator = "1".to_owned();
assert!(user.default_avatar_url().unwrap().ends_with("68.png"));
assert!(user.default_avatar_url().unwrap().ends_with("1.png"));
user.discriminator = "2".to_owned();
assert!(user.default_avatar_url().unwrap().ends_with("4d.png"));
assert!(user.default_avatar_url().unwrap().ends_with("2.png"));
user.discriminator = "3".to_owned();
assert!(user.default_avatar_url().unwrap().ends_with("aa.png"));
assert!(user.default_avatar_url().unwrap().ends_with("3.png"));
user.discriminator = "4".to_owned();
assert!(user.default_avatar_url().unwrap().ends_with("29.png"));
assert!(user.default_avatar_url().unwrap().ends_with("4.png"));
}

0 comments on commit 69ec62a

Please sign in to comment.