diff --git a/CompatBot/Commands/Psn.Check.cs b/CompatBot/Commands/Psn.Check.cs index c9607225..5ef7418a 100644 --- a/CompatBot/Commands/Psn.Check.cs +++ b/CompatBot/Commands/Psn.Check.cs @@ -30,14 +30,8 @@ namespace CompatBot.Commands } var updateInfo = await Client.GetTitleUpdatesAsync(productId, Config.Cts.Token).ConfigureAwait(false); - if (updateInfo?.Tag?.Packages?.Length > 0) - { - var embed = await updateInfo.AsEmbedAsync(ctx.Client).ConfigureAwait(false); - await ctx.RespondAsync(embed: embed).ConfigureAwait(false); - return; - } - - await ctx.RespondAsync("No updates were found").ConfigureAwait(false); + var embed = await updateInfo.AsEmbedAsync(ctx.Client, productId).ConfigureAwait(false); + await ctx.RespondAsync(embed: embed).ConfigureAwait(false); } } } diff --git a/CompatBot/Utils/ResultFormatters/TitlePatchFormatter.cs b/CompatBot/Utils/ResultFormatters/TitlePatchFormatter.cs index 6c36f05f..9e0092ff 100644 --- a/CompatBot/Utils/ResultFormatters/TitlePatchFormatter.cs +++ b/CompatBot/Utils/ResultFormatters/TitlePatchFormatter.cs @@ -16,31 +16,32 @@ namespace CompatBot.Utils.ResultFormatters private const long UnderGB = 1000 * 1024 * 1024; - public static async Task AsEmbedAsync(this TitlePatch patch, DiscordClient client) + public static async Task AsEmbedAsync(this TitlePatch patch, DiscordClient client, string productCode) { - var pkgs = patch.Tag?.Packages; - var title = pkgs?.Select(p => p.ParamSfo?.Title).LastOrDefault(t => !string.IsNullOrEmpty(t)) ?? patch.TitleId; - var thumbnailUrl = await client.GetThumbnailUrlAsync(patch.TitleId).ConfigureAwait(false); + var pkgs = patch?.Tag?.Packages; + var title = pkgs?.Select(p => p.ParamSfo?.Title).LastOrDefault(t => !string.IsNullOrEmpty(t)) ?? ThumbnailProvider.GetTitleName(productCode) ?? productCode; + var thumbnailUrl = await client.GetThumbnailUrlAsync(productCode).ConfigureAwait(false); var result = new DiscordEmbedBuilder { Title = title, Color = Config.Colors.DownloadLinks, ThumbnailUrl = thumbnailUrl, }; - if (pkgs.Length > 1) + if (pkgs?.Length > 1) { result.Description = $"Total download size of all packages is {pkgs.Sum(p => p.Size).AsStorageUnit()}"; foreach (var pkg in pkgs) { result.AddField($"Update v{pkg.Version} ({pkg.Size.AsStorageUnit()})", $"⏬ [{GetLinkName(pkg.Url)}]({pkg.Url})"); } - } - else + else if (pkgs?.Length == 1) { result.Title = $"{title} update v{pkgs[0].Version} ({pkgs[0].Size.AsStorageUnit()})"; result.Description = $"⏬ [{Path.GetFileName(GetLinkName(pkgs[0].Url))}]({pkgs[0].Url})"; } + else + result.Description = "No updates were found"; return result.Build(); }