aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-01-29 12:23:38 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-01-29 12:23:38 -0500
commiteced7ed0687f4defe0dec08160786552743c6432 (patch)
treecc8b160d2cc46c298c83a269d7a252f0e61f975e
parentc0f606683a045e463f518ec466b9fc9a85f8d4fd (diff)
updated nuget
-rw-r--r--MediaBrowser.Providers/Manager/MetadataService.cs61
-rw-r--r--MediaBrowser.Server.Implementations/LiveTv/ProgramImageProvider.cs2
-rw-r--r--Nuget/MediaBrowser.Common.Internal.nuspec4
-rw-r--r--Nuget/MediaBrowser.Common.nuspec2
-rw-r--r--Nuget/MediaBrowser.Server.Core.nuspec4
5 files changed, 51 insertions, 22 deletions
diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs
index 7916d7e86..e8b3a6ad6 100644
--- a/MediaBrowser.Providers/Manager/MetadataService.cs
+++ b/MediaBrowser.Providers/Manager/MetadataService.cs
@@ -76,7 +76,6 @@ namespace MediaBrowser.Providers.Manager
refreshResult.LastErrorMessage = string.Empty;
refreshResult.LastStatus = ProviderRefreshStatus.Success;
- var imageProviders = GetImageProviders(item).ToList();
var itemImageProvider = new ItemImageProvider(Logger, ProviderManager, ServerConfigurationManager);
var localImagesFailed = false;
@@ -84,7 +83,7 @@ namespace MediaBrowser.Providers.Manager
try
{
// Always validate images and check for new locally stored ones.
- if (itemImageProvider.ValidateImages(item, imageProviders))
+ if (itemImageProvider.ValidateImages(item, GetLocalImageProviders(item)))
{
updateType = updateType | ItemUpdateType.ImageUpdate;
}
@@ -113,12 +112,13 @@ namespace MediaBrowser.Providers.Manager
}
// Next run remote image providers, but only if local image providers didn't throw an exception
- if (!localImagesFailed)
+ if (!localImagesFailed && options.ImageRefreshMode != MetadataRefreshMode.None)
{
- if ((options.ImageRefreshMode == MetadataRefreshMode.EnsureMetadata && !lastResult.DateLastImagesRefresh.HasValue) ||
- options.ImageRefreshMode == MetadataRefreshMode.FullRefresh)
+ var providers = GetNonLocalImageProviders(item, lastResult.DateLastImagesRefresh.HasValue, options).ToList();
+
+ if (providers.Count > 0)
{
- var result = await itemImageProvider.RefreshImages(itemOfType, imageProviders, options, cancellationToken).ConfigureAwait(false);
+ var result = await itemImageProvider.RefreshImages(itemOfType, providers, options, cancellationToken).ConfigureAwait(false);
updateType = updateType | result.UpdateType;
refreshResult.AddStatus(result.Status, result.ErrorMessage);
@@ -173,13 +173,49 @@ namespace MediaBrowser.Providers.Manager
// If local providers are the only ones with changes, then just run those
if (providersWithChanges.All(i => i is ILocalMetadataProvider))
{
- providers = providers.Where(i => i is ILocalMetadataProvider).ToList();
+ providers = providersWithChanges.Count == 0 ?
+ new List<IMetadataProvider<TItemType>>() :
+ providers.Where(i => i is ILocalMetadataProvider).ToList();
}
}
return providers;
}
+ protected virtual IEnumerable<IImageProvider> GetNonLocalImageProviders(IHasMetadata item, bool hasRefreshedImages, ImageRefreshOptions options)
+ {
+ // Get providers to refresh
+ var providers = _imageProviders.Where(i =>
+ {
+ try
+ {
+ return !(i is ILocalImageProvider) && i.Supports(item);
+ }
+ catch (Exception ex)
+ {
+ Logger.ErrorException("Error in ImageProvider.Supports", ex, i.Name);
+
+ return false;
+ }
+ }).ToList();
+
+ // Run all if either of these flags are true
+ var runAllProviders = options.ImageRefreshMode == MetadataRefreshMode.FullRefresh || !hasRefreshedImages;
+
+ if (!runAllProviders)
+ {
+ // Avoid implicitly captured closure
+ var currentItem = item;
+
+ providers = providers.OfType<IHasChangeMonitor>()
+ .Where(i => i.HasChanged(currentItem, currentItem.DateLastSaved))
+ .Cast<IImageProvider>()
+ .ToList();
+ }
+
+ return providers;
+ }
+
/// <summary>
/// Determines whether this instance can refresh the specified provider.
/// </summary>
@@ -323,9 +359,9 @@ namespace MediaBrowser.Providers.Manager
}
}
- private IEnumerable<IImageProvider> GetImageProviders(IHasImages item)
+ private IEnumerable<ILocalImageProvider> GetLocalImageProviders(IHasImages item)
{
- var providers = _imageProviders.Where(i =>
+ return _imageProviders.OfType<ILocalImageProvider>().Where(i =>
{
try
{
@@ -338,13 +374,6 @@ namespace MediaBrowser.Providers.Manager
return false;
}
});
-
- if (!ServerConfigurationManager.Configuration.EnableInternetProviders)
- {
- providers = providers.Where(i => !(i is IRemoteImageProvider));
- }
-
- return providers.OrderBy(i => i.Order);
}
}
diff --git a/MediaBrowser.Server.Implementations/LiveTv/ProgramImageProvider.cs b/MediaBrowser.Server.Implementations/LiveTv/ProgramImageProvider.cs
index 117cb1da7..1dd6eb272 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/ProgramImageProvider.cs
+++ b/MediaBrowser.Server.Implementations/LiveTv/ProgramImageProvider.cs
@@ -105,7 +105,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
public bool HasChanged(IHasMetadata item, DateTime date)
{
- return !item.HasImage(ImageType.Primary) && (DateTime.UtcNow - date).TotalHours >= 12;
+ return !item.HasImage(ImageType.Primary) && (DateTime.UtcNow - date).TotalHours >= 6;
}
}
}
diff --git a/Nuget/MediaBrowser.Common.Internal.nuspec b/Nuget/MediaBrowser.Common.Internal.nuspec
index 6729d8c72..607b286ed 100644
--- a/Nuget/MediaBrowser.Common.Internal.nuspec
+++ b/Nuget/MediaBrowser.Common.Internal.nuspec
@@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>MediaBrowser.Common.Internal</id>
- <version>3.0.309</version>
+ <version>3.0.310</version>
<title>MediaBrowser.Common.Internal</title>
<authors>Luke</authors>
<owners>ebr,Luke,scottisafool</owners>
@@ -12,7 +12,7 @@
<description>Contains common components shared by Media Browser Theater and Media Browser Server. Not intended for plugin developer consumption.</description>
<copyright>Copyright © Media Browser 2013</copyright>
<dependencies>
- <dependency id="MediaBrowser.Common" version="3.0.309" />
+ <dependency id="MediaBrowser.Common" version="3.0.310" />
<dependency id="NLog" version="2.1.0" />
<dependency id="SimpleInjector" version="2.4.1" />
<dependency id="sharpcompress" version="0.10.2" />
diff --git a/Nuget/MediaBrowser.Common.nuspec b/Nuget/MediaBrowser.Common.nuspec
index 376cc722d..3222e429b 100644
--- a/Nuget/MediaBrowser.Common.nuspec
+++ b/Nuget/MediaBrowser.Common.nuspec
@@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>MediaBrowser.Common</id>
- <version>3.0.309</version>
+ <version>3.0.310</version>
<title>MediaBrowser.Common</title>
<authors>Media Browser Team</authors>
<owners>ebr,Luke,scottisafool</owners>
diff --git a/Nuget/MediaBrowser.Server.Core.nuspec b/Nuget/MediaBrowser.Server.Core.nuspec
index 22dd1aa9a..abfd72ff3 100644
--- a/Nuget/MediaBrowser.Server.Core.nuspec
+++ b/Nuget/MediaBrowser.Server.Core.nuspec
@@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>MediaBrowser.Server.Core</id>
- <version>3.0.309</version>
+ <version>3.0.310</version>
<title>Media Browser.Server.Core</title>
<authors>Media Browser Team</authors>
<owners>ebr,Luke,scottisafool</owners>
@@ -12,7 +12,7 @@
<description>Contains core components required to build plugins for Media Browser Server.</description>
<copyright>Copyright © Media Browser 2013</copyright>
<dependencies>
- <dependency id="MediaBrowser.Common" version="3.0.309" />
+ <dependency id="MediaBrowser.Common" version="3.0.310" />
</dependencies>
</metadata>
<files>