From 525e855038424a1dfc727bd2ccb8b22e2d12d242 Mon Sep 17 00:00:00 2001 From: Taloth Saldono Date: Sun, 22 Mar 2020 11:59:26 +0100 Subject: [PATCH] Fixed: Return remote image links for RemotePoster and RemoteCover (cherry picked from commit 4219cdb3644f96e1e8f3178fe0a50430c1004506) Fixes #4101 Closes #212 --- src/NzbDrone.Core/MediaCover/MediaCover.cs | 7 +++---- src/NzbDrone.Core/MediaCover/MediaCoverService.cs | 5 ++++- src/Readarr.Api.V1/Author/AuthorLookupController.cs | 4 ++-- src/Readarr.Api.V1/Books/BookLookupController.cs | 4 ++-- src/Readarr.Api.V1/Search/SearchController.cs | 8 ++++---- 5 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/NzbDrone.Core/MediaCover/MediaCover.cs b/src/NzbDrone.Core/MediaCover/MediaCover.cs index edddb5648..093bab76c 100644 --- a/src/NzbDrone.Core/MediaCover/MediaCover.cs +++ b/src/NzbDrone.Core/MediaCover/MediaCover.cs @@ -30,13 +30,11 @@ public class MediaCover : MemberwiseEquatable, IEmbeddedDocument private string _url; public string Url { - get - { - return _url; - } + get => _url; set { _url = value; + if (Extension.IsNullOrWhiteSpace()) { Extension = Path.GetExtension(value); @@ -46,6 +44,7 @@ public string Url public MediaCoverTypes CoverType { get; set; } public string Extension { get; private set; } + public string RemoteUrl { get; set; } public MediaCover() { diff --git a/src/NzbDrone.Core/MediaCover/MediaCoverService.cs b/src/NzbDrone.Core/MediaCover/MediaCoverService.cs index ca12a8b9a..c53409451 100644 --- a/src/NzbDrone.Core/MediaCover/MediaCoverService.cs +++ b/src/NzbDrone.Core/MediaCover/MediaCoverService.cs @@ -90,7 +90,8 @@ public void ConvertToLocalUrls(int entityId, MediaCoverEntity coverEntity, IEnum // Author isn't in Readarr yet, map via a proxy to circument referrer issues foreach (var mediaCover in covers) { - mediaCover.Url = _mediaCoverProxy.RegisterUrl(mediaCover.Url); + mediaCover.RemoteUrl = mediaCover.Url; + mediaCover.Url = _mediaCoverProxy.RegisterUrl(mediaCover.RemoteUrl); } } else @@ -104,6 +105,8 @@ public void ConvertToLocalUrls(int entityId, MediaCoverEntity coverEntity, IEnum var filePath = GetCoverPath(entityId, coverEntity, mediaCover.CoverType, mediaCover.Extension, null); + mediaCover.RemoteUrl = mediaCover.Url; + if (coverEntity == MediaCoverEntity.Book) { mediaCover.Url = _configFileProvider.UrlBase + @"/MediaCover/Books/" + entityId + "/" + mediaCover.CoverType.ToString().ToLower() + GetExtension(mediaCover.CoverType, mediaCover.Extension); diff --git a/src/Readarr.Api.V1/Author/AuthorLookupController.cs b/src/Readarr.Api.V1/Author/AuthorLookupController.cs index a6a5e5b09..bd6dfb0b0 100644 --- a/src/Readarr.Api.V1/Author/AuthorLookupController.cs +++ b/src/Readarr.Api.V1/Author/AuthorLookupController.cs @@ -37,11 +37,11 @@ private IEnumerable MapToResource(IEnumerable c.CoverType == MediaCoverTypes.Poster); + var poster = resource.Images.FirstOrDefault(c => c.CoverType == MediaCoverTypes.Poster); if (poster != null) { - resource.RemotePoster = poster.Url; + resource.RemotePoster = poster.RemoteUrl; } resource.Folder = _fileNameBuilder.GetAuthorFolder(currentAuthor); diff --git a/src/Readarr.Api.V1/Books/BookLookupController.cs b/src/Readarr.Api.V1/Books/BookLookupController.cs index 260990919..5f20a19da 100644 --- a/src/Readarr.Api.V1/Books/BookLookupController.cs +++ b/src/Readarr.Api.V1/Books/BookLookupController.cs @@ -34,11 +34,11 @@ private IEnumerable MapToResource(IEnumerable x.Monitored).Images.FirstOrDefault(c => c.CoverType == MediaCoverTypes.Cover); + var cover = resource.Images.FirstOrDefault(c => c.CoverType == MediaCoverTypes.Cover); if (cover != null) { - resource.RemoteCover = cover.Url; + resource.RemoteCover = cover.RemoteUrl; } yield return resource; diff --git a/src/Readarr.Api.V1/Search/SearchController.cs b/src/Readarr.Api.V1/Search/SearchController.cs index a1c3d85ef..b9e1a4daf 100644 --- a/src/Readarr.Api.V1/Search/SearchController.cs +++ b/src/Readarr.Api.V1/Search/SearchController.cs @@ -47,11 +47,11 @@ private IEnumerable MapToResource(IEnumerable results) _coverMapper.ConvertToLocalUrls(resource.Author.Id, MediaCoverEntity.Author, resource.Author.Images); - var poster = author.Metadata.Value.Images.FirstOrDefault(c => c.CoverType == MediaCoverTypes.Poster); + var poster = resource.Author.Images.FirstOrDefault(c => c.CoverType == MediaCoverTypes.Poster); if (poster != null) { - resource.Author.RemotePoster = poster.Url; + resource.Author.RemotePoster = poster.RemoteUrl; } resource.Author.Folder = _fileNameBuilder.GetAuthorFolder(author); @@ -66,11 +66,11 @@ private IEnumerable MapToResource(IEnumerable results) _coverMapper.ConvertToLocalUrls(resource.Book.Id, MediaCoverEntity.Book, resource.Book.Images); - var cover = book.Editions.Value.Single(x => x.Monitored).Images.FirstOrDefault(c => c.CoverType == MediaCoverTypes.Cover); + var cover = resource.Book.Images.FirstOrDefault(c => c.CoverType == MediaCoverTypes.Cover); if (cover != null) { - resource.Book.RemoteCover = cover.Url; + resource.Book.RemoteCover = cover.RemoteUrl; } resource.Book.Author.Folder = _fileNameBuilder.GetAuthorFolder(book.Author);