diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations/Providers/ProviderManager.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Providers/ProviderManager.cs | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/MediaBrowser.Server.Implementations/Providers/ProviderManager.cs b/MediaBrowser.Server.Implementations/Providers/ProviderManager.cs index 97548140c..e4f57e8d9 100644 --- a/MediaBrowser.Server.Implementations/Providers/ProviderManager.cs +++ b/MediaBrowser.Server.Implementations/Providers/ProviderManager.cs @@ -202,7 +202,7 @@ namespace MediaBrowser.Server.Implementations.Providers { item.ProviderData[_supportedProvidersKey] = supportedProvidersInfo; } - + return result || providersChanged; } @@ -282,7 +282,7 @@ namespace MediaBrowser.Server.Implementations.Providers } catch (ObjectDisposedException) { - + } } @@ -358,7 +358,7 @@ namespace MediaBrowser.Server.Implementations.Providers Path.Combine(item.MetaLocation, targetName) : _remoteImageCache.GetResourcePath(item.GetType().FullName + item.Path.ToLower(), targetName); - var img = await _httpClient.GetMemoryStream(source, resourcePool, cancellationToken).ConfigureAwait(false); + var img = await _httpClient.Get(source, resourcePool, cancellationToken).ConfigureAwait(false); if (ConfigurationManager.Configuration.SaveLocalMeta) // queue to media directories { @@ -422,12 +422,32 @@ namespace MediaBrowser.Server.Implementations.Providers throw new ArgumentNullException(); } - cancellationToken.ThrowIfCancellationRequested(); + if (cancellationToken.IsCancellationRequested) + { + dataToSave.Dispose(); + cancellationToken.ThrowIfCancellationRequested(); + } //Tell the watchers to ignore _directoryWatchers.TemporarilyIgnore(path); - dataToSave.Position = 0; + if (dataToSave.CanSeek) + { + dataToSave.Position = 0; + } + + if (!(dataToSave is MemoryStream || dataToSave is FileStream)) + { + var ms = new MemoryStream(); + + using (var input = dataToSave) + { + await input.CopyToAsync(ms).ConfigureAwait(false); + } + + ms.Position = 0; + dataToSave = ms; + } try { |
