aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Providers/ProviderManager.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/Providers/ProviderManager.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Providers/ProviderManager.cs16
1 files changed, 11 insertions, 5 deletions
diff --git a/MediaBrowser.Server.Implementations/Providers/ProviderManager.cs b/MediaBrowser.Server.Implementations/Providers/ProviderManager.cs
index cc586ccbf..9e6a14442 100644
--- a/MediaBrowser.Server.Implementations/Providers/ProviderManager.cs
+++ b/MediaBrowser.Server.Implementations/Providers/ProviderManager.cs
@@ -357,16 +357,22 @@ namespace MediaBrowser.Server.Implementations.Providers
throw new ArgumentNullException("resourcePool");
}
+ var img = await _httpClient.Get(source, resourcePool, cancellationToken).ConfigureAwait(false);
+
+ //download and save locally
+ return await SaveImage(item, img, targetName, saveLocally, cancellationToken).ConfigureAwait(false);
+ }
+
+ public async Task<string> SaveImage(BaseItem item, Stream source, string targetName, bool saveLocally, CancellationToken cancellationToken)
+ {
//download and save locally
var localPath = (saveLocally && item.MetaLocation != null) ?
Path.Combine(item.MetaLocation, targetName) :
_remoteImageCache.GetResourcePath(item.GetType().FullName + item.Path.ToLower(), targetName);
- var img = await _httpClient.Get(source, resourcePool, cancellationToken).ConfigureAwait(false);
-
if (saveLocally) // queue to media directories
{
- await SaveToLibraryFilesystem(item, localPath, img, cancellationToken).ConfigureAwait(false);
+ await SaveToLibraryFilesystem(item, localPath, source, cancellationToken).ConfigureAwait(false);
}
else
{
@@ -376,7 +382,7 @@ namespace MediaBrowser.Server.Implementations.Providers
{
using (var fs = new FileStream(localPath, FileMode.Create, FileAccess.Write, FileShare.Read, StreamDefaults.DefaultFileStreamBufferSize, FileOptions.Asynchronous))
{
- await img.CopyToAsync(fs, StreamDefaults.DefaultCopyToBufferSize, cancellationToken).ConfigureAwait(false);
+ await source.CopyToAsync(fs, StreamDefaults.DefaultCopyToBufferSize, cancellationToken).ConfigureAwait(false);
}
}
catch (OperationCanceledException)
@@ -390,7 +396,7 @@ namespace MediaBrowser.Server.Implementations.Providers
}
finally
{
- img.Dispose();
+ source.Dispose();
}
}