diff options
8 files changed, 17 insertions, 18 deletions
diff --git a/MediaBrowser.Controller/Entities/Audio/Audio.cs b/MediaBrowser.Controller/Entities/Audio/Audio.cs index 9e4129cd1..6f4a0c4d2 100644 --- a/MediaBrowser.Controller/Entities/Audio/Audio.cs +++ b/MediaBrowser.Controller/Entities/Audio/Audio.cs @@ -21,7 +21,7 @@ namespace MediaBrowser.Controller.Entities.Audio /// </summary> /// <value><c>true</c> if this instance has embedded image; otherwise, <c>false</c>.</value> public bool HasEmbeddedImage { get; set; } - + /// <summary> /// Override this to true if class should be grouped under a container in indicies /// The container class should be defined via IndexContainer @@ -37,10 +37,6 @@ namespace MediaBrowser.Controller.Entities.Audio } /// <summary> - /// The unknown album - /// </summary> - private static readonly MusicAlbum UnknownAlbum = new MusicAlbum { Name = "<Unknown>" }; - /// <summary> /// Override this to return the folder that should be used to construct a container /// for this item in an index. GroupInIndex should be true as well. /// </summary> @@ -50,7 +46,7 @@ namespace MediaBrowser.Controller.Entities.Audio { get { - return Parent is MusicAlbum ? Parent : Album != null ? new MusicAlbum { Name = Album, PrimaryImagePath = PrimaryImagePath } : UnknownAlbum; + return Parents.OfType<MusicAlbum>().FirstOrDefault() ?? new MusicAlbum { Name = "<Unknown>" }; } } diff --git a/MediaBrowser.Controller/Entities/IHasImages.cs b/MediaBrowser.Controller/Entities/IHasImages.cs index 2fef9a035..18e6afcd1 100644 --- a/MediaBrowser.Controller/Entities/IHasImages.cs +++ b/MediaBrowser.Controller/Entities/IHasImages.cs @@ -81,7 +81,7 @@ namespace MediaBrowser.Controller.Entities /// Gets or sets the primary image path. /// </summary> /// <value>The primary image path.</value> - string PrimaryImagePath { get; set; } + string PrimaryImagePath { get; } /// <summary> /// Gets the preferred metadata language. diff --git a/MediaBrowser.Controller/LiveTv/ILiveTvRecording.cs b/MediaBrowser.Controller/LiveTv/ILiveTvRecording.cs index c94a25a30..1bff5647b 100644 --- a/MediaBrowser.Controller/LiveTv/ILiveTvRecording.cs +++ b/MediaBrowser.Controller/LiveTv/ILiveTvRecording.cs @@ -1,6 +1,5 @@ using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Providers; -using MediaBrowser.Model.Entities; using System.Threading; using System.Threading.Tasks; diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs index 19f155a07..69f970891 100644 --- a/MediaBrowser.Providers/Manager/MetadataService.cs +++ b/MediaBrowser.Providers/Manager/MetadataService.cs @@ -164,7 +164,7 @@ namespace MediaBrowser.Providers.Manager protected virtual IEnumerable<IMetadataProvider> GetProviders(IHasMetadata item, bool hasRefreshedMetadata, MetadataRefreshOptions options) { // Get providers to refresh - var providers = ((ProviderManager) ProviderManager).GetMetadataProviders<TItemType>(item).ToList(); + var providers = ((ProviderManager)ProviderManager).GetMetadataProviders<TItemType>(item).ToList(); // Run all if either of these flags are true var runAllProviders = options.ReplaceAllMetadata || options.MetadataRefreshMode == MetadataRefreshMode.FullRefresh || !hasRefreshedMetadata; @@ -258,7 +258,7 @@ namespace MediaBrowser.Providers.Manager if (localItem.HasMetadata) { - MergeData(localItem.Item, temp, new List<MetadataFields>(), false, true); + MergeData(localItem.Item, temp, new List<MetadataFields>(), !options.ReplaceAllMetadata, true); refreshResult.UpdateType = refreshResult.UpdateType | ItemUpdateType.MetadataImport; // Only one local provider allowed per item @@ -287,7 +287,10 @@ namespace MediaBrowser.Providers.Manager await ExecuteRemoteProviders(item, temp, providers.OfType<IRemoteMetadataProvider<TItemType>>(), refreshResult, cancellationToken).ConfigureAwait(false); } - MergeData(temp, item, item.LockedFields, true, true); + if (refreshResult.UpdateType > ItemUpdateType.Unspecified) + { + MergeData(temp, item, item.LockedFields, true, true); + } return refreshResult; } diff --git a/MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs b/MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs index 8d768a6a0..ad3211650 100644 --- a/MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs +++ b/MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs @@ -177,7 +177,7 @@ namespace MediaBrowser.Providers.MediaInfo } // Image is already in the cache - item.PrimaryImagePath = path; + item.SetImagePath(ImageType.Primary, path); } /// <summary> diff --git a/MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs b/MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs index fc8826b61..21d3ae3e8 100644 --- a/MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs +++ b/MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs @@ -227,7 +227,7 @@ namespace MediaBrowser.Providers.MediaInfo } // Image is already in the cache - item.PrimaryImagePath = path; + item.SetImagePath(ImageType.Primary, path); } /// <summary> @@ -256,7 +256,7 @@ namespace MediaBrowser.Providers.MediaInfo await _mediaEncoder.ExtractImage(inputPath, type, false, video.Video3DFormat, imageOffset, path, cancellationToken).ConfigureAwait(false); - video.PrimaryImagePath = path; + video.SetImagePath(ImageType.Primary, path); } finally { diff --git a/MediaBrowser.Providers/TV/EpisodeImageFromMediaLocationProvider.cs b/MediaBrowser.Providers/TV/EpisodeImageFromMediaLocationProvider.cs index 83d36bb3c..f2aaa0f06 100644 --- a/MediaBrowser.Providers/TV/EpisodeImageFromMediaLocationProvider.cs +++ b/MediaBrowser.Providers/TV/EpisodeImageFromMediaLocationProvider.cs @@ -116,7 +116,7 @@ namespace MediaBrowser.Providers.TV if (!File.Exists(path)) { - episode.PrimaryImagePath = null; + episode.SetImagePath(ImageType.Primary, null); } } @@ -137,7 +137,7 @@ namespace MediaBrowser.Providers.TV if (file != null) { - item.PrimaryImagePath = file.FullName; + item.SetImagePath(ImageType.Primary, file.FullName); return; } } @@ -154,7 +154,7 @@ namespace MediaBrowser.Providers.TV if (file != null) { - item.PrimaryImagePath = file.FullName; + item.SetImagePath(ImageType.Primary, file.FullName); return; } } diff --git a/MediaBrowser.Providers/TV/EpisodeXmlParser.cs b/MediaBrowser.Providers/TV/EpisodeXmlParser.cs index 446c34f74..d0bf7bcde 100644 --- a/MediaBrowser.Providers/TV/EpisodeXmlParser.cs +++ b/MediaBrowser.Providers/TV/EpisodeXmlParser.cs @@ -2,6 +2,7 @@ using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; +using MediaBrowser.Model.Entities; using MediaBrowser.Model.Logging; using System.Globalization; using System.IO; @@ -90,7 +91,7 @@ namespace MediaBrowser.Providers.TV if (File.Exists(filename)) { - item.PrimaryImagePath = filename; + item.SetImagePath(ImageType.Primary, 0, filename); } } break; |
