From 02c650773d657a8a9d0ee95d8c5d4af7d6157418 Mon Sep 17 00:00:00 2001 From: Christopher F Date: Sun, 18 Mar 2018 16:18:40 -0400 Subject: [PATCH] Clean up SpotifyGame PR - Add a helper under CDN for cover art URLs It would be bad practice of us to leave CDN urls hardcoded in the deserializer, would be harder to change down the line should Spotify ever change their CDN. I'm not entirely supportive of leaving Spotify's CDN hardcoded in our lib either, but there's no better alternative. - Change SpotifyGame#Artists to an IEnumerable Seems pretty common to prefer IEnumerables in place of Arrays. --- src/Discord.Net.Core/CDN.cs | 5 ++++- src/Discord.Net.Core/Entities/Activities/SpotifyGame.cs | 2 +- src/Discord.Net.WebSocket/Extensions/EntityExtensions.cs | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Discord.Net.Core/CDN.cs b/src/Discord.Net.Core/CDN.cs index 070b965ee..f23f55238 100644 --- a/src/Discord.Net.Core/CDN.cs +++ b/src/Discord.Net.Core/CDN.cs @@ -1,4 +1,4 @@ -using System; +using System; namespace Discord { @@ -28,6 +28,9 @@ namespace Discord return $"{DiscordConfig.CDNUrl}app-assets/{appId}/{assetId}.{extension}?size={size}"; } + public static string GetSpotifyAlbumArtUrl(string albumArtId) + => $"https://i.scdn.co/image/{albumArtId}"; + private static string FormatToExtension(ImageFormat format, string imageId) { if (format == ImageFormat.Auto) diff --git a/src/Discord.Net.Core/Entities/Activities/SpotifyGame.cs b/src/Discord.Net.Core/Entities/Activities/SpotifyGame.cs index b8a4b8043..a20384242 100644 --- a/src/Discord.Net.Core/Entities/Activities/SpotifyGame.cs +++ b/src/Discord.Net.Core/Entities/Activities/SpotifyGame.cs @@ -7,7 +7,7 @@ namespace Discord [DebuggerDisplay(@"{DebuggerDisplay,nq}")] public class SpotifyGame : Game { - public string[] Artists { get; internal set; } + public IEnumerable Artists { get; internal set; } public string AlbumArt { get; internal set; } public string AlbumTitle { get; internal set; } public string TrackTitle { get; internal set; } diff --git a/src/Discord.Net.WebSocket/Extensions/EntityExtensions.cs b/src/Discord.Net.WebSocket/Extensions/EntityExtensions.cs index f268a7ff2..ff395a932 100644 --- a/src/Discord.Net.WebSocket/Extensions/EntityExtensions.cs +++ b/src/Discord.Net.WebSocket/Extensions/EntityExtensions.cs @@ -20,7 +20,7 @@ namespace Discord.WebSocket TrackTitle = model.Details.GetValueOrDefault(), Artists = model.State.GetValueOrDefault()?.Split(';'), Duration = timestamps?.End - timestamps?.Start, - AlbumArt = albumArtId != null ? $"https://i.scdn.co/image/{albumArtId}" : null, + AlbumArt = albumArtId != null ? CDN.GetSpotifyAlbumArtUrl(albumArtId) : null, Type = ActivityType.Listening }; }