diff options
Diffstat (limited to 'MediaBrowser.Providers/Manager')
| -rw-r--r-- | MediaBrowser.Providers/Manager/ImageSaver.cs | 10 | ||||
| -rw-r--r-- | MediaBrowser.Providers/Manager/ItemImageProvider.cs | 26 |
2 files changed, 26 insertions, 10 deletions
diff --git a/MediaBrowser.Providers/Manager/ImageSaver.cs b/MediaBrowser.Providers/Manager/ImageSaver.cs index 4106d3dca..9d183c880 100644 --- a/MediaBrowser.Providers/Manager/ImageSaver.cs +++ b/MediaBrowser.Providers/Manager/ImageSaver.cs @@ -136,7 +136,7 @@ namespace MediaBrowser.Providers.Manager source = memoryStream; - var currentPath = GetCurrentImagePath(item, type, index); + var currentImage = GetCurrentImage(item, type, index); using (source) { @@ -160,8 +160,10 @@ namespace MediaBrowser.Providers.Manager SetImagePath(item, type, imageIndex, paths[0]); // Delete the current path - if (!string.IsNullOrEmpty(currentPath) && !paths.Contains(currentPath, StringComparer.OrdinalIgnoreCase)) + if (currentImage != null && currentImage.IsLocalFile && !paths.Contains(currentImage.Path, StringComparer.OrdinalIgnoreCase)) { + var currentPath = currentImage.Path; + _libraryMonitor.ReportFileSystemChangeBeginning(currentPath); try @@ -301,9 +303,9 @@ namespace MediaBrowser.Providers.Manager /// or /// imageIndex /// </exception> - private string GetCurrentImagePath(IHasImages item, ImageType type, int imageIndex) + private ItemImageInfo GetCurrentImage(IHasImages item, ImageType type, int imageIndex) { - return item.GetImagePath(type, imageIndex); + return item.GetImageInfo(type, imageIndex); } /// <summary> diff --git a/MediaBrowser.Providers/Manager/ItemImageProvider.cs b/MediaBrowser.Providers/Manager/ItemImageProvider.cs index b39deba89..cfa3e67f5 100644 --- a/MediaBrowser.Providers/Manager/ItemImageProvider.cs +++ b/MediaBrowser.Providers/Manager/ItemImageProvider.cs @@ -17,6 +17,7 @@ using System.Net; using System.Threading; using System.Threading.Tasks; using CommonIO; +using MediaBrowser.Model.MediaInfo; namespace MediaBrowser.Providers.Manager { @@ -138,11 +139,24 @@ namespace MediaBrowser.Providers.Manager { if (!string.IsNullOrEmpty(response.Path)) { - var mimeType = MimeTypes.GetMimeType(response.Path); - - var stream = _fileSystem.GetFileStream(response.Path, FileMode.Open, FileAccess.Read, FileShare.Read, true); - - await _providerManager.SaveImage(item, stream, mimeType, imageType, null, response.InternalCacheKey, cancellationToken).ConfigureAwait(false); + if (response.Protocol == MediaProtocol.Http) + { + _logger.Debug("Setting image url into item {0}", item.Id); + item.SetImage(new ItemImageInfo + { + Path = response.Path, + Type = imageType + + }, 0); + } + else + { + var mimeType = MimeTypes.GetMimeType(response.Path); + + var stream = _fileSystem.GetFileStream(response.Path, FileMode.Open, FileAccess.Read, FileShare.Read, true); + + await _providerManager.SaveImage(item, stream, mimeType, imageType, null, response.InternalCacheKey, cancellationToken).ConfigureAwait(false); + } } else { @@ -391,7 +405,7 @@ namespace MediaBrowser.Providers.Manager else { var existing = item.GetImageInfo(type, 0); - if (existing != null && !_fileSystem.FileExists(existing.Path)) + if (existing != null && !_fileSystem.FileExists(existing.Path)) { item.RemoveImage(existing); changed = true; |
