aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers/Manager
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Providers/Manager')
-rw-r--r--MediaBrowser.Providers/Manager/ImageSaver.cs2
-rw-r--r--MediaBrowser.Providers/Manager/ItemImageProvider.cs4
-rw-r--r--MediaBrowser.Providers/Manager/MetadataService.cs20
-rw-r--r--MediaBrowser.Providers/Manager/ProviderManager.cs22
4 files changed, 32 insertions, 16 deletions
diff --git a/MediaBrowser.Providers/Manager/ImageSaver.cs b/MediaBrowser.Providers/Manager/ImageSaver.cs
index 22178434f..624736779 100644
--- a/MediaBrowser.Providers/Manager/ImageSaver.cs
+++ b/MediaBrowser.Providers/Manager/ImageSaver.cs
@@ -208,7 +208,7 @@ namespace MediaBrowser.Providers.Manager
try
{
- Directory.CreateDirectory(Path.GetDirectoryName(path));
+ _fileSystem.CreateDirectory(Path.GetDirectoryName(path));
// If the file is currently hidden we'll have to remove that or the save will fail
var file = new FileInfo(path);
diff --git a/MediaBrowser.Providers/Manager/ItemImageProvider.cs b/MediaBrowser.Providers/Manager/ItemImageProvider.cs
index 92fc1c2a8..3c412b788 100644
--- a/MediaBrowser.Providers/Manager/ItemImageProvider.cs
+++ b/MediaBrowser.Providers/Manager/ItemImageProvider.cs
@@ -358,7 +358,7 @@ namespace MediaBrowser.Providers.Manager
if (deleted)
{
- item.ValidateImages(new DirectoryService(_logger));
+ item.ValidateImages(new DirectoryService(_logger, _fileSystem));
}
}
@@ -392,7 +392,7 @@ namespace MediaBrowser.Providers.Manager
else
{
var existing = item.GetImageInfo(type, 0);
- if (existing != null && !File.Exists(existing.Path))
+ if (existing != null && !_fileSystem.FileExists(existing.Path))
{
item.RemoveImage(existing);
changed = true;
diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs
index cddc6f894..8a60ea78f 100644
--- a/MediaBrowser.Providers/Manager/MetadataService.cs
+++ b/MediaBrowser.Providers/Manager/MetadataService.cs
@@ -147,7 +147,14 @@ namespace MediaBrowser.Providers.Manager
updateType = updateType | result.UpdateType;
refreshResult.AddStatus(result.Status, result.ErrorMessage);
- refreshResult.SetDateLastMetadataRefresh(DateTime.UtcNow);
+ if (result.Failures == 0)
+ {
+ refreshResult.SetDateLastMetadataRefresh(DateTime.UtcNow);
+ }
+ else
+ {
+ refreshResult.SetDateLastMetadataRefresh(null);
+ }
MergeIdentities(itemOfType, id);
}
@@ -164,7 +171,14 @@ namespace MediaBrowser.Providers.Manager
updateType = updateType | result.UpdateType;
refreshResult.AddStatus(result.Status, result.ErrorMessage);
- refreshResult.SetDateLastImagesRefresh(DateTime.UtcNow);
+ if (result.Failures == 0)
+ {
+ refreshResult.SetDateLastImagesRefresh(DateTime.UtcNow);
+ }
+ else
+ {
+ refreshResult.SetDateLastImagesRefresh(null);
+ }
}
}
@@ -503,7 +517,7 @@ namespace MediaBrowser.Providers.Manager
{
return false;
}
-
+
return true;
}
diff --git a/MediaBrowser.Providers/Manager/ProviderManager.cs b/MediaBrowser.Providers/Manager/ProviderManager.cs
index fe0e4890c..80264d848 100644
--- a/MediaBrowser.Providers/Manager/ProviderManager.cs
+++ b/MediaBrowser.Providers/Manager/ProviderManager.cs
@@ -283,17 +283,17 @@ namespace MediaBrowser.Providers.Manager
{
var options = GetMetadataOptions(item);
- return GetMetadataProvidersInternal<T>(item, options, false);
+ return GetMetadataProvidersInternal<T>(item, options, false, true);
}
- private IEnumerable<IMetadataProvider<T>> GetMetadataProvidersInternal<T>(IHasMetadata item, MetadataOptions options, bool includeDisabled)
+ private IEnumerable<IMetadataProvider<T>> GetMetadataProvidersInternal<T>(IHasMetadata item, MetadataOptions options, bool includeDisabled, bool checkIsOwnedItem)
where T : IHasMetadata
{
// Avoid implicitly captured closure
var currentOptions = options;
return _metadataProviders.OfType<IMetadataProvider<T>>()
- .Where(i => CanRefresh(i, item, currentOptions, includeDisabled))
+ .Where(i => CanRefresh(i, item, currentOptions, includeDisabled, checkIsOwnedItem))
.OrderBy(i => GetConfiguredOrder(i, options))
.ThenBy(GetDefaultOrder);
}
@@ -318,7 +318,7 @@ namespace MediaBrowser.Providers.Manager
return GetImageProviders(item, options, includeDisabled).OfType<IRemoteImageProvider>();
}
- private bool CanRefresh(IMetadataProvider provider, IHasMetadata item, MetadataOptions options, bool includeDisabled)
+ private bool CanRefresh(IMetadataProvider provider, IHasMetadata item, MetadataOptions options, bool includeDisabled, bool checkIsOwnedItem)
{
if (!includeDisabled)
{
@@ -348,7 +348,7 @@ namespace MediaBrowser.Providers.Manager
}
// If this restriction is ever lifted, movie xml providers will have to be updated to prevent owned items like trailers from reading those files
- if (item.IsOwnedItem)
+ if (checkIsOwnedItem && item.IsOwnedItem)
{
if (provider is ILocalMetadataProvider || provider is IRemoteMetadataProvider)
{
@@ -491,7 +491,8 @@ namespace MediaBrowser.Providers.Manager
// Give it a dummy path just so that it looks like a file system item
var dummy = new T()
{
- Path = Path.Combine(_appPaths.InternalMetadataPath, "dummy")
+ Path = Path.Combine(_appPaths.InternalMetadataPath, "dummy"),
+ ParentId = Guid.NewGuid()
};
dummy.SetParent(new Folder());
@@ -523,7 +524,7 @@ namespace MediaBrowser.Providers.Manager
private void AddMetadataPlugins<T>(List<MetadataPlugin> list, T item, MetadataOptions options)
where T : IHasMetadata
{
- var providers = GetMetadataProvidersInternal<T>(item, options, true).ToList();
+ var providers = GetMetadataProvidersInternal<T>(item, options, true, false).ToList();
// Locals
list.AddRange(providers.Where(i => (i is ILocalMetadataProvider)).Select(i => new MetadataPlugin
@@ -701,7 +702,7 @@ namespace MediaBrowser.Providers.Manager
// Manual edit occurred
// Even if save local is off, save locally anyway if the metadata file already exists
- if (fileSaver == null || !isEnabledFor || !File.Exists(fileSaver.GetSavePath(item)))
+ if (fileSaver == null || !isEnabledFor || !_fileSystem.FileExists(fileSaver.GetSavePath(item)))
{
return false;
}
@@ -732,14 +733,15 @@ namespace MediaBrowser.Providers.Manager
// Give it a dummy path just so that it looks like a file system item
var dummy = new TItemType
{
- Path = Path.Combine(_appPaths.InternalMetadataPath, "dummy")
+ Path = Path.Combine(_appPaths.InternalMetadataPath, "dummy"),
+ ParentId = Guid.NewGuid()
};
dummy.SetParent(new Folder());
var options = GetMetadataOptions(dummy);
- var providers = GetMetadataProvidersInternal<TItemType>(dummy, options, searchInfo.IncludeDisabledProviders)
+ var providers = GetMetadataProvidersInternal<TItemType>(dummy, options, searchInfo.IncludeDisabledProviders, false)
.OfType<IRemoteSearchProvider<TLookupType>>();
if (!string.IsNullOrEmpty(searchInfo.SearchProviderName))