Exemple #1
0
            private static string FormatUrl(string path, CdnAssetFormat format, int?size)
            {
                if (size != null)
                {
                    var value = size.Value;
                    if (value < 16 || value > 2048 || (value & -value) != value)
                    {
                        throw new ArgumentOutOfRangeException(nameof(size), "Size must be a power of 2 between 16 and 2048.");
                    }
                }

                if (format == CdnAssetFormat.Automatic)
                {
                    // If the calling methods didn't overwrite the value we default to PNG.
                    format = CdnAssetFormat.Png;
                }

                var stringBuilder = new StringBuilder(BaseAddress);

                stringBuilder.Append(path);
                var formatString = GetFormatString(format);

                if (formatString != null)
                {
                    stringBuilder.Append('.').Append(formatString);
                }

                if (size != null)
                {
                    stringBuilder.Append("?size=").Append(size);
                }

                return(stringBuilder.ToString());
            }
Exemple #2
0
        public static string GetIconUrl(this IApplicationTeam team, CdnAssetFormat format = default, int?size = null)
        {
            var iconHash = team.IconHash;

            return(iconHash != null
                ? Discord.Cdn.GetTeamIconUrl(team.Id, iconHash, format, size)
                : null);
        }
Exemple #3
0
        public static string GetGuildAvatarUrl(this IMember member, CdnAssetFormat format = default, int?size = null)
        {
            var avatarHash = member.GuildAvatarHash;

            return(avatarHash != null
                ? Discord.Cdn.GetGuildAvatarUrl(member.GuildId, member.Id, avatarHash, format, size)
                : member.GetAvatarUrl(format, size));
        }
Exemple #4
0
        public static string GetBannerUrl(this IGuild guild, CdnAssetFormat format = default, int?size = null)
        {
            var bannerHash = guild.BannerHash;

            return(bannerHash != null
                ? Discord.Cdn.GetGuildBannerUrl(guild.Id, bannerHash, format, size)
                : null);
        }
Exemple #5
0
        public static string GetAvatarUrl(this IUser user, CdnAssetFormat format = default, int?size = null)
        {
            var avatarHash = user.AvatarHash;

            return(avatarHash != null
                ? Discord.Cdn.GetAvatarUrl(user.Id, avatarHash, format, size)
                : Discord.Cdn.GetDefaultAvatarUrl(user.Discriminator));
        }
Exemple #6
0
        public static string GetIconUrl(this IGuild guild, CdnAssetFormat format = default, int?size = null)
        {
            var iconHash = guild.IconHash;

            return(iconHash != null
                ? Discord.Cdn.GetGuildIconUrl(guild.Id, iconHash, format, size)
                : null);
        }
Exemple #7
0
        public static string GetDiscoverySplashUrl(this IGuild guild, CdnAssetFormat format = default, int?size = null)
        {
            var discoverySplashHash = guild.DiscoverySplashHash;

            return(discoverySplashHash != null
                ? Discord.Cdn.GetGuildDiscoverySplashUrl(guild.Id, discoverySplashHash, format, size)
                : null);
        }
Exemple #8
0
        public static string GetCoverUrl(this IStoreApplication application, CdnAssetFormat format = default, int?size = null)
        {
            var coverHash = application.CoverHash;

            return(coverHash != null
                ? Discord.Cdn.GetApplicationCoverUrl(application.Id, coverHash, format, size)
                : null);
        }
        public static string GetBannerUrl(this IRestUser user, CdnAssetFormat format = default, int?size = null)
        {
            var bannerHash = user.BannerHash;

            return(bannerHash != null
                ? Discord.Cdn.GetUserBannerUrl(user.Id, bannerHash, format, size)
                : null);
        }
Exemple #10
0
            private static CdnAssetFormat AutomaticGifFormat(CdnAssetFormat format, string hash)
            {
                if (format != CdnAssetFormat.Automatic)
                {
                    return(format);
                }

                return(hash.StartsWith("a_") ? CdnAssetFormat.Gif : CdnAssetFormat.Png);
            }
Exemple #11
0
        public static string GetIconUrl(this IApplication application, CdnAssetFormat format = default, int?size = null)
        {
            Guard.IsNotNull(application);

            var iconHash = application.IconHash;

            return(iconHash != null
                ? Discord.Cdn.GetApplicationIconUrl(application.Id, iconHash, format, size)
                : null);
        }
Exemple #12
0
        public static string GetSplashUrl(this IGuild guild, CdnAssetFormat format = default, int?size = null)
        {
            Guard.IsNotNull(guild);

            var splashHash = guild.SplashHash;

            return(splashHash != null
                ? Discord.Cdn.GetGuildSplashUrl(guild.Id, splashHash, format, size)
                : null);
        }
Exemple #13
0
        public static string GetCoverImageUrl(this IGuildEvent @event, CdnAssetFormat format = default, int?size = null)
        {
            Guard.IsNotNull(@event);

            var coverImageHash = @event.CoverImageHash;

            return(coverImageHash != null
                ? Discord.Cdn.GetEventCoverImageUrl(@event.Id, coverImageHash, format, size)
                : null);
        }
Exemple #14
0
        public static string GetBannerUrl(this IStickerPack stickerPack, CdnAssetFormat format = default, int?size = null)
        {
            Guard.IsNotNull(stickerPack);

            var bannerAssetId = stickerPack.BannerAssetId;

            return(bannerAssetId != null
                ? Discord.Cdn.GetStickerPackBannerUrl(bannerAssetId.Value, format, size)
                : null);
        }
Exemple #15
0
        public static string GetIconUrl(this IRole role, CdnAssetFormat format = default, int?size = null)
        {
            Guard.IsNotNull(role);

            var iconHash = role.IconHash;

            return(iconHash != null
                ? Discord.Cdn.GetRoleIconUrl(role.Id, iconHash, format, size)
                : null);
        }
Exemple #16
0
        public static string GetUrl(this ICustomEmoji emoji, CdnAssetFormat format = default, int?size = null)
        {
            if (format == CdnAssetFormat.Automatic)
            {
                format = emoji.IsAnimated
                    ? CdnAssetFormat.Gif
                    : CdnAssetFormat.Png;
            }

            return(Discord.Cdn.GetCustomEmojiUrl(emoji.Id, format, size));
        }
Exemple #17
0
            public static string GetApplicationAssetUrl(Snowflake applicationId, string assetId, CdnAssetFormat format = default, int?size = null)
            {
                var path = $"app-assets/{applicationId}/{assetId}";

                return(FormatUrl(path, format, size));
            }
Exemple #18
0
            public static string GetApplicationCoverUrl(Snowflake applicationId, string coverHash, CdnAssetFormat format = default, int?size = null)
            {
                var path = $"app-icons/{applicationId}/{coverHash}";

                return(FormatUrl(path, format, size));
            }
Exemple #19
0
            public static string GetGuildAvatarUrl(Snowflake guildId, Snowflake memberId, string avatarHash, CdnAssetFormat format = default, int?size = null)
            {
                var path = $"guilds/{guildId}/users/{memberId}/avatars/{avatarHash}";

                return(FormatUrl(path, AutomaticGifFormat(format, avatarHash), size));
            }
Exemple #20
0
            public static string GetAvatarUrl(Snowflake userId, string avatarHash, CdnAssetFormat format = default, int?size = null)
            {
                var path = $"avatars/{userId}/{avatarHash}";

                return(FormatUrl(path, AutomaticGifFormat(format, avatarHash), size));
            }
Exemple #21
0
            public static string GetUserBannerUrl(Snowflake userId, string bannerHash, CdnAssetFormat format = default, int?size = null)
            {
                var path = $"banners/{userId}/{bannerHash}";

                return(FormatUrl(path, AutomaticGifFormat(format, bannerHash), size));
            }
Exemple #22
0
            public static string GetGuildDiscoverySplashUrl(Snowflake guildId, string discoverySplashHash, CdnAssetFormat format = default, int?size = null)
            {
                var path = $"discovery-splashes/{guildId}/{discoverySplashHash}";

                return(FormatUrl(path, format, size));
            }
Exemple #23
0
            public static string GetGuildIconUrl(Snowflake guildId, string iconHash, CdnAssetFormat format = default, int?size = null)
            {
                var path = $"icons/{guildId}/{iconHash}";

                return(FormatUrl(path, AutomaticGifFormat(format, iconHash), size));
            }
Exemple #24
0
 private static string GetFormatString(CdnAssetFormat format)
 => format switch
 {
Exemple #25
0
            public static string GetCustomEmojiUrl(Snowflake emojiId, CdnAssetFormat format = default, int?size = null)
            {
                var path = $"emojis/{emojiId}";

                return(FormatUrl(path, format, size));
            }
Exemple #26
0
            public static string GetEventCoverImageUrl(Snowflake eventId, string coverImageHash, CdnAssetFormat format = default, int?size = null)
            {
                var path = $"guild-events/{eventId}/{coverImageHash}";

                return(FormatUrl(path, format, size));
            }
Exemple #27
0
            public static string GetRoleIconUrl(Snowflake roleId, string iconHash, CdnAssetFormat format = default, int?size = null)
            {
                var path = $"role-icons/{roleId}/{iconHash}";

                return(FormatUrl(path, format, size));
            }
Exemple #28
0
            public static string GetStickerPackBannerUrl(Snowflake bannerAssetId, CdnAssetFormat format = default, int?size = null)
            {
                var path = $"app-assets/710982414301790216/store/{bannerAssetId}";

                return(FormatUrl(path, format, size));
            }
Exemple #29
0
            public static string GetGuildBannerUrl(Snowflake guildId, string bannerHash, CdnAssetFormat format = default, int?size = null)
            {
                var path = $"banners/{guildId}/{bannerHash}";

                return(FormatUrl(path, format, size));
            }