From 3171c6f1953f2a9b47ac7ae026df89dc4ca2122f Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Mon, 22 May 2023 10:28:18 -0700 Subject: [PATCH] Rename Clearart to Clearlogo, use png for Clearlogo (cherry picked from commit 349f7cf4c934fbf53516f7e92026282750180a16) Fixes #2536 --- src/NzbDrone.Core/MediaCover/MediaCover.cs | 2 +- .../MediaCover/MediaCoverService.cs | 30 +++++++++++++------ 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/NzbDrone.Core/MediaCover/MediaCover.cs b/src/NzbDrone.Core/MediaCover/MediaCover.cs index 446864716..edddb5648 100644 --- a/src/NzbDrone.Core/MediaCover/MediaCover.cs +++ b/src/NzbDrone.Core/MediaCover/MediaCover.cs @@ -16,7 +16,7 @@ namespace NzbDrone.Core.MediaCover Cover = 6, Disc = 7, Logo = 8, - Clearart = 9 + Clearlogo = 9 } public enum MediaCoverEntity diff --git a/src/NzbDrone.Core/MediaCover/MediaCoverService.cs b/src/NzbDrone.Core/MediaCover/MediaCoverService.cs index ac423e415..680321d8c 100644 --- a/src/NzbDrone.Core/MediaCover/MediaCoverService.cs +++ b/src/NzbDrone.Core/MediaCover/MediaCoverService.cs @@ -19,7 +19,7 @@ namespace NzbDrone.Core.MediaCover public interface IMapCoversToLocal { void ConvertToLocalUrls(int entityId, MediaCoverEntity coverEntity, IEnumerable covers); - string GetCoverPath(int entityId, MediaCoverEntity coverEntity, MediaCoverTypes mediaCoverTypes, string extension, int? height = null); + string GetCoverPath(int entityId, MediaCoverEntity coverEntity, MediaCoverTypes coverType, string extension, int? height = null); void EnsureBookCovers(Book book); } @@ -68,33 +68,36 @@ namespace NzbDrone.Core.MediaCover _coverRootFolder = appFolderInfo.GetMediaCoverPath(); } - public string GetCoverPath(int entityId, MediaCoverEntity coverEntity, MediaCoverTypes coverTypes, string extension, int? height = null) + public string GetCoverPath(int entityId, MediaCoverEntity coverEntity, MediaCoverTypes coverType, string extension, int? height = null) { var heightSuffix = height.HasValue ? "-" + height.ToString() : ""; if (coverEntity == MediaCoverEntity.Book) { - return Path.Combine(GetBookCoverPath(entityId), coverTypes.ToString().ToLower() + heightSuffix + extension); - } - else - { - return Path.Combine(GetAuthorCoverPath(entityId), coverTypes.ToString().ToLower() + heightSuffix + extension); + return Path.Combine(GetBookCoverPath(entityId), coverType.ToString().ToLower() + heightSuffix + GetExtension(coverType, extension)); } + + return Path.Combine(GetAuthorCoverPath(entityId), coverType.ToString().ToLower() + heightSuffix + GetExtension(coverType, extension)); } public void ConvertToLocalUrls(int entityId, MediaCoverEntity coverEntity, IEnumerable covers) { foreach (var mediaCover in covers) { + if (mediaCover.CoverType == MediaCoverTypes.Unknown) + { + continue; + } + var filePath = GetCoverPath(entityId, coverEntity, mediaCover.CoverType, mediaCover.Extension, null); if (coverEntity == MediaCoverEntity.Book) { - mediaCover.Url = _configFileProvider.UrlBase + @"/MediaCover/Books/" + entityId + "/" + mediaCover.CoverType.ToString().ToLower() + mediaCover.Extension; + mediaCover.Url = _configFileProvider.UrlBase + @"/MediaCover/Books/" + entityId + "/" + mediaCover.CoverType.ToString().ToLower() + GetExtension(mediaCover.CoverType, mediaCover.Extension); } else { - mediaCover.Url = _configFileProvider.UrlBase + @"/MediaCover/" + entityId + "/" + mediaCover.CoverType.ToString().ToLower() + mediaCover.Extension; + mediaCover.Url = _configFileProvider.UrlBase + @"/MediaCover/" + entityId + "/" + mediaCover.CoverType.ToString().ToLower() + GetExtension(mediaCover.CoverType, mediaCover.Extension); } if (_diskProvider.FileExists(filePath)) @@ -283,6 +286,15 @@ namespace NzbDrone.Core.MediaCover } } + private string GetExtension(MediaCoverTypes coverType, string defaultExtension) + { + return coverType switch + { + MediaCoverTypes.Clearlogo => ".png", + _ => defaultExtension + }; + } + private HttpHeader GetServerHeaders(string url) { // Goodreads doesn't allow a HEAD, so request a zero byte range instead