aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/model/user.rs14
-rw-r--r--src/utils/macros.rs5
-rw-r--r--tests/test_user.rs10
3 files changed, 10 insertions, 19 deletions
diff --git a/src/model/user.rs b/src/model/user.rs
index b1a1f16..83e80b9 100644
--- a/src/model/user.rs
+++ b/src/model/user.rs
@@ -2,7 +2,6 @@ use std::fmt;
use super::utils::{into_map, into_string, remove};
use super::{
CurrentUser,
- DefaultAvatar,
FriendSourceFlags,
GuildContainer,
GuildId,
@@ -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
diff --git a/src/utils/macros.rs b/src/utils/macros.rs
index 3032dc3..e4aaa14 100644
--- a/src/utils/macros.rs
+++ b/src/utils/macros.rs
@@ -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 {
diff --git a/tests/test_user.rs b/tests/test_user.rs
index 702c301..dd51f44 100644
--- a/tests/test_user.rs
+++ b/tests/test_user.rs
@@ -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"));
}