diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-05-19 14:42:58 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-05-19 14:42:58 -0400 |
| commit | 25314e1fc93a1ea4a1401bd6f7cca3cee5435c7f (patch) | |
| tree | 3b471768d31449a9221b38467bc856451b68a6c2 /MediaBrowser.Server.Implementations/Providers/ProviderManager.cs | |
| parent | 13d997a97a68ba5fb8c58a775e6eb84b91ded3b7 (diff) | |
limit number of tmdb requests per second
Diffstat (limited to 'MediaBrowser.Server.Implementations/Providers/ProviderManager.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Providers/ProviderManager.cs | 16 |
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(); } } |
