diff options
| author | Luke <luke.pulverenti@gmail.com> | 2017-04-07 15:26:59 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-04-07 15:26:59 -0400 |
| commit | 7c55cd08cbfc1c4a6ba2823007432316e1efce8d (patch) | |
| tree | b045a71d84deeb89a85975d34a7a2ded2642c0d5 /MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs | |
| parent | 66e901ef93942c631c3ee3b222cc75265e1b17fb (diff) | |
| parent | 6f7d8bb742f3594bdca16fa5c20c55707edad158 (diff) | |
Merge pull request #2567 from MediaBrowser/beta
Beta
Diffstat (limited to 'MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs')
| -rw-r--r-- | MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs | 57 |
1 files changed, 28 insertions, 29 deletions
diff --git a/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs b/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs index c986e2005..f147f1d61 100644 --- a/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs +++ b/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs @@ -96,27 +96,37 @@ namespace MediaBrowser.LocalMetadata.Images return list; } - public List<LocalImageInfo> GetImages(IHasImages item, string path, IDirectoryService directoryService) + public List<LocalImageInfo> GetImages(IHasImages item, string path, bool isPathInMediaFolder, IDirectoryService directoryService) { - return GetImages(item, new[] { path }, directoryService); + return GetImages(item, new[] { path }, isPathInMediaFolder, directoryService); } - public List<LocalImageInfo> GetImages(IHasImages item, IEnumerable<string> paths, IDirectoryService directoryService) + public List<LocalImageInfo> GetImages(IHasImages item, IEnumerable<string> paths, bool arePathsInMediaFolders, IDirectoryService directoryService) { - var files = paths.SelectMany(directoryService.GetFiles) - .Where(i => - { - var ext = i.Extension; + IEnumerable<FileSystemMetadata> files; + + if (arePathsInMediaFolders) + { + files = paths.SelectMany(i => _fileSystem.GetFiles(i, BaseItem.SupportedImageExtensions, true, false)); + } + else + { + files = paths.SelectMany(directoryService.GetFiles) + .Where(i => + { + var ext = i.Extension; + + return !string.IsNullOrEmpty(ext) && + BaseItem.SupportedImageExtensions.Contains(ext, StringComparer.OrdinalIgnoreCase); + }); + } - return !string.IsNullOrEmpty(ext) && - BaseItem.SupportedImageExtensions.Contains(ext, StringComparer.OrdinalIgnoreCase); - }) - .OrderBy(i => BaseItem.SupportedImageExtensionsList.IndexOf(i.Extension ?? string.Empty)) - .ToList(); + files = files + .OrderBy(i => BaseItem.SupportedImageExtensionsList.IndexOf(i.Extension ?? string.Empty)); var list = new List<LocalImageInfo>(); - PopulateImages(item, list, files, false, directoryService); + PopulateImages(item, list, files.ToList(), false, directoryService); return list; } @@ -132,7 +142,7 @@ namespace MediaBrowser.LocalMetadata.Images PopulateSeasonImagesFromSeriesFolder(season, images, directoryService); } } - + var imagePrefix = item.FileNameWithoutExtension + "-"; var isInMixedFolder = item.DetectIsInMixedFolder(); @@ -188,7 +198,7 @@ namespace MediaBrowser.LocalMetadata.Images names.Insert(0, "folder"); names.Insert(0, "poster"); } - + // Support plex/kodi convention if (item is Series) { @@ -256,20 +266,9 @@ namespace MediaBrowser.LocalMetadata.Images private void PopulateBackdropsFromExtraFanart(string path, List<LocalImageInfo> images, IDirectoryService directoryService) { - var imageFiles = directoryService.GetFiles(path) - .Where(i => - { - var extension = i.Extension; - - if (string.IsNullOrEmpty(extension)) - { - return false; - } - - return BaseItem.SupportedImageExtensions.Contains(extension, StringComparer.OrdinalIgnoreCase); - }); + var imageFiles = _fileSystem.GetFiles(path, BaseItem.SupportedImageExtensions, false, false); - images.AddRange(imageFiles.Select(i => new LocalImageInfo + images.AddRange(imageFiles.Where(i => i.Length > 0).Select(i => new LocalImageInfo { FileInfo = i, Type = ImageType.Backdrop @@ -399,7 +398,7 @@ namespace MediaBrowser.LocalMetadata.Images private FileSystemMetadata GetImage(IEnumerable<FileSystemMetadata> files, string name) { - return files.FirstOrDefault(i => !i.IsDirectory && string.Equals(name, _fileSystem.GetFileNameWithoutExtension(i), StringComparison.OrdinalIgnoreCase)); + return files.FirstOrDefault(i => !i.IsDirectory && string.Equals(name, _fileSystem.GetFileNameWithoutExtension(i), StringComparison.OrdinalIgnoreCase) && i.Length > 0); } } } |
