feat: Add Guild Member Cover & Accent Color support (#1117)
* feat: add field to struct * feat(user): Add Banner support * Update user.go Co-authored-by: Fedor Lapshin <fe.lap.prog@gmail.com> * Update user.go Co-authored-by: Fedor Lapshin <fe.lap.prog@gmail.com> * docs(banner): Replace all cover word with banner * docs(banner): Remove link on image formatting on banner * Update util.go Co-authored-by: Fedor Lapshin <fe.lap.prog@gmail.com> * feat(structs#Member): removed BannerURL * fix(user): wording in comment to BannerURL Co-authored-by: Fedor Lapshin <fe.lap.prog@gmail.com>
This commit is contained in:
parent
4b615bec36
commit
df7555c758
3 changed files with 35 additions and 0 deletions
|
@ -54,6 +54,12 @@ var (
|
||||||
uDiscriminatorInt, _ := strconv.Atoi(uDiscriminator)
|
uDiscriminatorInt, _ := strconv.Atoi(uDiscriminator)
|
||||||
return EndpointCDN + "embed/avatars/" + strconv.Itoa(uDiscriminatorInt%5) + ".png"
|
return EndpointCDN + "embed/avatars/" + strconv.Itoa(uDiscriminatorInt%5) + ".png"
|
||||||
}
|
}
|
||||||
|
EndpointUserBanner = func(uID, cID string) string {
|
||||||
|
return EndpointCDNBanners + uID + "/" + cID + ".png"
|
||||||
|
}
|
||||||
|
EndpointUserBannerAnimated = func(uID, cID string) string {
|
||||||
|
return EndpointCDNBanners + uID + "/" + cID + ".gif"
|
||||||
|
}
|
||||||
|
|
||||||
EndpointUserGuilds = func(uID string) string { return EndpointUsers + uID + "/guilds" }
|
EndpointUserGuilds = func(uID string) string { return EndpointUsers + uID + "/guilds" }
|
||||||
EndpointUserGuild = func(uID, gID string) string { return EndpointUsers + uID + "/guilds/" + gID }
|
EndpointUserGuild = func(uID, gID string) string { return EndpointUsers + uID + "/guilds/" + gID }
|
||||||
|
|
13
user.go
13
user.go
|
@ -54,6 +54,12 @@ type User struct {
|
||||||
// Whether the user has multi-factor authentication enabled.
|
// Whether the user has multi-factor authentication enabled.
|
||||||
MFAEnabled bool `json:"mfa_enabled"`
|
MFAEnabled bool `json:"mfa_enabled"`
|
||||||
|
|
||||||
|
// The hash of the user's banner image.
|
||||||
|
Banner string `json:"banner"`
|
||||||
|
|
||||||
|
// User's banner color, encoded as an integer representation of hexadecimal color code
|
||||||
|
AccentColor int `json:"accent_color"`
|
||||||
|
|
||||||
// Whether the user is a bot.
|
// Whether the user is a bot.
|
||||||
Bot bool `json:"bot"`
|
Bot bool `json:"bot"`
|
||||||
|
|
||||||
|
@ -92,3 +98,10 @@ func (u *User) AvatarURL(size string) string {
|
||||||
return avatarURL(u.Avatar, EndpointDefaultUserAvatar(u.Discriminator),
|
return avatarURL(u.Avatar, EndpointDefaultUserAvatar(u.Discriminator),
|
||||||
EndpointUserAvatar(u.ID, u.Avatar), EndpointUserAvatarAnimated(u.ID, u.Avatar), size)
|
EndpointUserAvatar(u.ID, u.Avatar), EndpointUserAvatarAnimated(u.ID, u.Avatar), size)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// BannerURL returns the URL of the users's banner image.
|
||||||
|
// size: The size of the desired banner image as a power of two
|
||||||
|
// Image size can be any power of two between 16 and 4096.
|
||||||
|
func (u *User) BannerURL(size string) string {
|
||||||
|
return bannerURL(u.Banner, EndpointUserBanner(u.ID, u.Banner), EndpointUserBannerAnimated(u.ID, u.Banner), size)
|
||||||
|
}
|
||||||
|
|
16
util.go
16
util.go
|
@ -92,3 +92,19 @@ func avatarURL(avatarHash, defaultAvatarURL, staticAvatarURL, animatedAvatarURL,
|
||||||
}
|
}
|
||||||
return URL
|
return URL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func bannerURL(bannerHash, staticBannerURL, animatedBannerURL, size string) string {
|
||||||
|
var URL string
|
||||||
|
if bannerHash == "" {
|
||||||
|
return ""
|
||||||
|
} else if strings.HasPrefix(bannerHash, "a_") {
|
||||||
|
URL = animatedBannerURL
|
||||||
|
} else {
|
||||||
|
URL = staticBannerURL
|
||||||
|
}
|
||||||
|
|
||||||
|
if size != "" {
|
||||||
|
return URL + "?size=" + size
|
||||||
|
}
|
||||||
|
return URL
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue