diff options
Diffstat (limited to 'MediaBrowser.Providers/Manager/ItemImageProvider.cs')
| -rw-r--r-- | MediaBrowser.Providers/Manager/ItemImageProvider.cs | 37 |
1 files changed, 20 insertions, 17 deletions
diff --git a/MediaBrowser.Providers/Manager/ItemImageProvider.cs b/MediaBrowser.Providers/Manager/ItemImageProvider.cs index e8bae1d2fa..7f0dc8b89d 100644 --- a/MediaBrowser.Providers/Manager/ItemImageProvider.cs +++ b/MediaBrowser.Providers/Manager/ItemImageProvider.cs @@ -1,4 +1,6 @@ -using MediaBrowser.Common.Extensions; +using System.IO; +using MediaBrowser.Common.Extensions; +using MediaBrowser.Common.IO; using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; @@ -21,6 +23,7 @@ namespace MediaBrowser.Providers.Manager private readonly ILogger _logger; private readonly IProviderManager _providerManager; private readonly IServerConfigurationManager _config; + private readonly IFileSystem _fileSystem; public ItemImageProvider(ILogger logger, IProviderManager providerManager, IServerConfigurationManager config) { @@ -97,9 +100,21 @@ namespace MediaBrowser.Providers.Manager if (response.HasImage) { - var mimeType = "image/" + response.Format.ToString().ToLower(); + if (!string.IsNullOrEmpty(response.Path)) + { + var mimeType = "image/" + Path.GetExtension(response.Path).TrimStart('.').ToLower(); - await _providerManager.SaveImage((BaseItem)item, response.Stream, mimeType, imageType, null, Guid.NewGuid().ToString(), cancellationToken).ConfigureAwait(false); + var stream = _fileSystem.GetFileStream(response.Path, FileMode.Open, FileAccess.Read, + FileShare.Read, true); + + await _providerManager.SaveImage((BaseItem)item, stream, mimeType, imageType, null, Guid.NewGuid().ToString(), cancellationToken).ConfigureAwait(false); + } + else + { + var mimeType = "image/" + response.Format.ToString().ToLower(); + + await _providerManager.SaveImage((BaseItem)item, response.Stream, mimeType, imageType, null, Guid.NewGuid().ToString(), cancellationToken).ConfigureAwait(false); + } result.UpdateType = result.UpdateType | ItemUpdateType.ImageUpdate; } @@ -227,26 +242,14 @@ namespace MediaBrowser.Providers.Manager /// <returns>IEnumerable{IImageProvider}.</returns> private IEnumerable<IImageProvider> GetImageProviders(IHasImages item, IEnumerable<IImageProvider> imageProviders) { - var providers = imageProviders.Where(i => - { - try - { - return i.Supports(item); - } - catch (Exception ex) - { - _logger.ErrorException("Error in ImageProvider.Supports", ex, i.Name); - - return false; - } - }); + var providers = imageProviders; if (!_config.Configuration.EnableInternetProviders) { providers = providers.Where(i => !(i is IRemoteImageProvider)); } - return providers.OrderBy(i => i.Order); + return providers; } private bool MergeImages(IHasImages item, List<LocalImageInfo> images) |
