aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers/Manager/ProviderManager.cs
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2017-10-24 01:20:09 -0400
committerGitHub <noreply@github.com>2017-10-24 01:20:09 -0400
commit0aac8045fb69ad1024859812a09e68070ea698f6 (patch)
tree6e8b55133b0eeee606df5049497b80a612843733 /MediaBrowser.Providers/Manager/ProviderManager.cs
parent7924bb7c9add449f61d8695add6f2f3fcbc18a0a (diff)
parent6c5f3ce07e8b36299a4143dc609999d880e7bdfd (diff)
Merge pull request #2974 from MediaBrowser/beta
Beta
Diffstat (limited to 'MediaBrowser.Providers/Manager/ProviderManager.cs')
-rw-r--r--MediaBrowser.Providers/Manager/ProviderManager.cs50
1 files changed, 32 insertions, 18 deletions
diff --git a/MediaBrowser.Providers/Manager/ProviderManager.cs b/MediaBrowser.Providers/Manager/ProviderManager.cs
index c36d4cf63..9dd5052da 100644
--- a/MediaBrowser.Providers/Manager/ProviderManager.cs
+++ b/MediaBrowser.Providers/Manager/ProviderManager.cs
@@ -118,7 +118,29 @@ namespace MediaBrowser.Providers.Manager
public Task<ItemUpdateType> RefreshSingleItem(IHasMetadata item, MetadataRefreshOptions options, CancellationToken cancellationToken)
{
- var service = _metadataServices.FirstOrDefault(i => i.CanRefresh(item));
+ IMetadataService service = null;
+ var type = item.GetType();
+
+ foreach (var current in _metadataServices)
+ {
+ if (current.CanRefreshPrimary(type))
+ {
+ service = current;
+ break;
+ }
+ }
+
+ if (service == null)
+ {
+ foreach (var current in _metadataServices)
+ {
+ if (current.CanRefresh(item))
+ {
+ service = current;
+ break;
+ }
+ }
+ }
if (service != null)
{
@@ -131,16 +153,16 @@ namespace MediaBrowser.Providers.Manager
public async Task SaveImage(IHasMetadata item, string url, ImageType type, int? imageIndex, CancellationToken cancellationToken)
{
- var response = await _httpClient.GetResponse(new HttpRequestOptions
+ using (var response = await _httpClient.GetResponse(new HttpRequestOptions
{
CancellationToken = cancellationToken,
Url = url,
BufferContent = false
- }).ConfigureAwait(false);
-
- await SaveImage(item, response.Content, response.ContentType, type, imageIndex, cancellationToken)
- .ConfigureAwait(false);
+ }).ConfigureAwait(false))
+ {
+ await SaveImage(item, response.Content, response.ContentType, type, imageIndex, cancellationToken).ConfigureAwait(false);
+ }
}
public Task SaveImage(IHasMetadata item, Stream source, string mimeType, ImageType type, int? imageIndex, CancellationToken cancellationToken)
@@ -452,6 +474,8 @@ namespace MediaBrowser.Providers.Manager
GetPluginSummary<MusicAlbum>(),
GetPluginSummary<MusicArtist>(),
GetPluginSummary<Audio>(),
+ GetPluginSummary<AudioBook>(),
+ GetPluginSummary<AudioPodcast>(),
GetPluginSummary<Genre>(),
GetPluginSummary<Studio>(),
GetPluginSummary<GameGenre>(),
@@ -560,30 +584,20 @@ namespace MediaBrowser.Providers.Manager
new MetadataOptions();
}
- private Task _completedTask = Task.FromResult(true);
/// <summary>
/// Saves the metadata.
/// </summary>
- /// <param name="item">The item.</param>
- /// <param name="updateType">Type of the update.</param>
- /// <returns>Task.</returns>
- public Task SaveMetadata(IHasMetadata item, ItemUpdateType updateType)
+ public void SaveMetadata(IHasMetadata item, ItemUpdateType updateType)
{
SaveMetadata(item, updateType, _savers);
- return _completedTask;
}
/// <summary>
/// Saves the metadata.
/// </summary>
- /// <param name="item">The item.</param>
- /// <param name="updateType">Type of the update.</param>
- /// <param name="savers">The savers.</param>
- /// <returns>Task.</returns>
- public Task SaveMetadata(IHasMetadata item, ItemUpdateType updateType, IEnumerable<string> savers)
+ public void SaveMetadata(IHasMetadata item, ItemUpdateType updateType, IEnumerable<string> savers)
{
SaveMetadata(item, updateType, _savers.Where(i => savers.Contains(i.Name, StringComparer.OrdinalIgnoreCase)));
- return _completedTask;
}
/// <summary>