From bb265f129d58f1c171b8dae4505d5a378af89bf6 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 15 Oct 2013 18:16:50 -0400 Subject: [PATCH] support extrathumbs folder --- .../EpisodeImageFromMediaLocationProvider.cs | 43 +++++++++++++------ .../Library/CoreResolutionIgnoreRule.cs | 3 +- 2 files changed, 31 insertions(+), 15 deletions(-) diff --git a/MediaBrowser.Providers/TV/EpisodeImageFromMediaLocationProvider.cs b/MediaBrowser.Providers/TV/EpisodeImageFromMediaLocationProvider.cs index 32dd0cf384..00e8369362 100644 --- a/MediaBrowser.Providers/TV/EpisodeImageFromMediaLocationProvider.cs +++ b/MediaBrowser.Providers/TV/EpisodeImageFromMediaLocationProvider.cs @@ -29,7 +29,7 @@ namespace MediaBrowser.Providers.TV return ItemUpdateType.ImageUpdate; } } - + /// /// Supportses the specified item. /// @@ -72,7 +72,7 @@ namespace MediaBrowser.Providers.TV return BaseItem.SupportedImageExtensions; } } - + /// /// Fetches metadata and returns true or false indicating if any work that requires persistence was done /// @@ -104,7 +104,6 @@ namespace MediaBrowser.Providers.TV /// Validates the primary image path still exists /// /// The episode. - /// The metadata folder path. /// true if XXXX, false otherwise private void ValidateImage(Episode episode) { @@ -130,18 +129,34 @@ namespace MediaBrowser.Providers.TV /// Name of the episode file. private void SetPrimaryImagePath(Episode item, Folder parent, string metadataFolder, string episodeFileName) { - // Look for the image file in the metadata folder, and if found, set PrimaryImagePath - var imageFiles = new[] { - Path.Combine(metadataFolder, Path.ChangeExtension(episodeFileName, ".jpg")), - Path.Combine(metadataFolder, Path.ChangeExtension(episodeFileName, ".png")) - }; - - var file = parent.ResolveArgs.GetMetaFileByPath(imageFiles[0]) ?? - parent.ResolveArgs.GetMetaFileByPath(imageFiles[1]); - - if (file != null) + foreach (var extension in BaseItem.SupportedImageExtensions) { - item.PrimaryImagePath = file.FullName; + var path = Path.Combine(metadataFolder, Path.ChangeExtension(episodeFileName, extension)); + + var file = parent.ResolveArgs.GetMetaFileByPath(path); + + if (file != null) + { + item.PrimaryImagePath = file.FullName; + return; + } + } + + var seasonFolder = Path.GetDirectoryName(item.Path); + + foreach (var extension in BaseItem.SupportedImageExtensions) + { + var imageFilename = Path.GetFileNameWithoutExtension(episodeFileName) + "-thumb" + extension; + + var path = Path.Combine(seasonFolder, imageFilename); + + var file = parent.ResolveArgs.GetMetaFileByPath(path); + + if (file != null) + { + item.PrimaryImagePath = file.FullName; + return; + } } } } diff --git a/MediaBrowser.Server.Implementations/Library/CoreResolutionIgnoreRule.cs b/MediaBrowser.Server.Implementations/Library/CoreResolutionIgnoreRule.cs index ededca314e..ae4ae2fa92 100644 --- a/MediaBrowser.Server.Implementations/Library/CoreResolutionIgnoreRule.cs +++ b/MediaBrowser.Server.Implementations/Library/CoreResolutionIgnoreRule.cs @@ -24,7 +24,8 @@ namespace MediaBrowser.Server.Implementations.Library "ps3_update", "ps3_vprm", "adv_obj", - "extrafanart" + "extrafanart", + "extrathumbs" }.ToDictionary(i => i, StringComparer.OrdinalIgnoreCase);