diff options
Diffstat (limited to 'MediaBrowser.LocalMetadata/Images/InternalMetadataFolderImageProvider.cs')
| -rw-r--r-- | MediaBrowser.LocalMetadata/Images/InternalMetadataFolderImageProvider.cs | 43 |
1 files changed, 35 insertions, 8 deletions
diff --git a/MediaBrowser.LocalMetadata/Images/InternalMetadataFolderImageProvider.cs b/MediaBrowser.LocalMetadata/Images/InternalMetadataFolderImageProvider.cs index c0706ceeb..10d691b3e 100644 --- a/MediaBrowser.LocalMetadata/Images/InternalMetadataFolderImageProvider.cs +++ b/MediaBrowser.LocalMetadata/Images/InternalMetadataFolderImageProvider.cs @@ -1,26 +1,48 @@ using System.Collections.Generic; using System.IO; +using System.Linq; using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.IO; +using Microsoft.Extensions.Logging; namespace MediaBrowser.LocalMetadata.Images { - public class InternalMetadataFolderImageProvider : ILocalImageFileProvider, IHasOrder + /// <summary> + /// Internal metadata folder image provider. + /// </summary> + public class InternalMetadataFolderImageProvider : ILocalImageProvider, IHasOrder { private readonly IServerConfigurationManager _config; private readonly IFileSystem _fileSystem; + private readonly ILogger<InternalMetadataFolderImageProvider> _logger; - public InternalMetadataFolderImageProvider(IServerConfigurationManager config, IFileSystem fileSystem) + /// <summary> + /// Initializes a new instance of the <see cref="InternalMetadataFolderImageProvider"/> class. + /// </summary> + /// <param name="config">Instance of the <see cref="IServerConfigurationManager"/> interface.</param> + /// <param name="fileSystem">Instance of the <see cref="IFileSystem"/> interface.</param> + /// <param name="logger">Instance of the <see cref="ILogger{InternalMetadataFolderImageProvider}"/> interface.</param> + public InternalMetadataFolderImageProvider( + IServerConfigurationManager config, + IFileSystem fileSystem, + ILogger<InternalMetadataFolderImageProvider> logger) { _config = config; _fileSystem = fileSystem; + _logger = logger; } + /// Make sure this is last so that all other locations are scanned first + /// <inheritdoc /> + public int Order => 1000; + + /// <inheritdoc /> public string Name => "Internal Images"; + /// <inheritdoc /> public bool Supports(BaseItem item) { if (item is Photo) @@ -46,20 +68,25 @@ namespace MediaBrowser.LocalMetadata.Images return true; } - // Make sure this is last so that all other locations are scanned first - public int Order => 1000; - public List<LocalImageInfo> GetImages(BaseItem item, IDirectoryService directoryService) + /// <inheritdoc /> + public IEnumerable<LocalImageInfo> GetImages(BaseItem item, IDirectoryService directoryService) { var path = item.GetInternalMetadataPath(); + if (!Directory.Exists(path)) + { + return Enumerable.Empty<LocalImageInfo>(); + } + try { - return new LocalImageProvider(_fileSystem).GetImages(item, path, false, directoryService); + return new LocalImageProvider(_fileSystem).GetImages(item, path, directoryService); } - catch (IOException) + catch (IOException ex) { - return new List<LocalImageInfo>(); + _logger.LogError(ex, "Error while getting images for {Library}", item.Name); + return Enumerable.Empty<LocalImageInfo>(); } } } |
