aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Controller/Entities/Audio/Audio.cs8
-rw-r--r--MediaBrowser.Controller/Entities/IHasImages.cs2
-rw-r--r--MediaBrowser.Controller/LiveTv/ILiveTvRecording.cs1
-rw-r--r--MediaBrowser.Providers/Manager/MetadataService.cs9
-rw-r--r--MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs2
-rw-r--r--MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs4
-rw-r--r--MediaBrowser.Providers/TV/EpisodeImageFromMediaLocationProvider.cs6
-rw-r--r--MediaBrowser.Providers/TV/EpisodeXmlParser.cs3
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;