diff --git a/src/NzbDrone.Core/MediaCover/MediaCoverService.cs b/src/NzbDrone.Core/MediaCover/MediaCoverService.cs index c0b692ce32..8a2a32a39c 100644 --- a/src/NzbDrone.Core/MediaCover/MediaCoverService.cs +++ b/src/NzbDrone.Core/MediaCover/MediaCoverService.cs @@ -81,9 +81,9 @@ public Dictionary GetCoverFileInfos() return new Dictionary(); } - return _diskProvider - .GetFileInfos(_coverRootFolder, true) - .ToDictionary(x => x.FullName, PathEqualityComparer.Instance); + return _diskProvider + .GetFileInfos(_coverRootFolder, true) + .ToDictionary(x => x.FullName, PathEqualityComparer.Instance); } public void ConvertToLocalUrls(int movieId, IEnumerable covers, Dictionary fileInfos = null) @@ -109,22 +109,20 @@ public void ConvertToLocalUrls(int movieId, IEnumerable covers, Dict mediaCover.Url = _configFileProvider.UrlBase + @"/MediaCover/" + movieId + "/" + mediaCover.CoverType.ToString().ToLower() + GetExtension(mediaCover.CoverType); - FileInfo file; - var fileExists = false; - if (fileInfos != null) + DateTime? lastWrite = null; + + if (fileInfos != null && fileInfos.TryGetValue(filePath, out var file)) { - fileExists = fileInfos.TryGetValue(filePath, out file); + lastWrite = file.LastWriteTimeUtc; } - else + else if (_diskProvider.FileExists(filePath)) { - file = _diskProvider.GetFileInfo(filePath); - fileExists = file.Exists; + lastWrite = _diskProvider.FileGetLastWrite(filePath); } - if (fileExists) + if (lastWrite.HasValue) { - var lastWrite = file.LastWriteTimeUtc; - mediaCover.Url += "?lastWrite=" + lastWrite.Ticks; + mediaCover.Url += "?lastWrite=" + lastWrite.Value.Ticks; } } } diff --git a/src/Radarr.Api.V3/Movies/MovieController.cs b/src/Radarr.Api.V3/Movies/MovieController.cs index 5d5a308c36..7bc3ea3c12 100644 --- a/src/Radarr.Api.V3/Movies/MovieController.cs +++ b/src/Radarr.Api.V3/Movies/MovieController.cs @@ -118,8 +118,6 @@ public List AllMovie(int? tmdbId, bool excludeLocalCovers = false { var moviesResources = new List(); - Dictionary coverFileInfos = null; - var translationLanguage = languageId is > 0 ? Language.All.Single(l => l.Id == languageId.Value) : (Language)_configService.MovieInfoLanguage; @@ -146,11 +144,6 @@ public List AllMovie(int? tmdbId, bool excludeLocalCovers = false var tdict = translations.ToDictionaryIgnoreDuplicates(x => x.MovieMetadataId); var sdict = movieStats.ToDictionary(x => x.MovieId); - if (!excludeLocalCovers) - { - coverFileInfos = _coverMapper.GetCoverFileInfos(); - } - var movies = movieTask.GetAwaiter().GetResult(); moviesResources = new List(movies.Count); @@ -163,6 +156,8 @@ public List AllMovie(int? tmdbId, bool excludeLocalCovers = false if (!excludeLocalCovers) { + var coverFileInfos = _coverMapper.GetCoverFileInfos(); + MapCoversToLocal(moviesResources, coverFileInfos); }