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 | |
| parent | 66e901ef93942c631c3ee3b222cc75265e1b17fb (diff) | |
| parent | 6f7d8bb742f3594bdca16fa5c20c55707edad158 (diff) | |
Merge pull request #2567 from MediaBrowser/beta
Beta
Diffstat (limited to 'MediaBrowser.LocalMetadata/Images')
5 files changed, 33 insertions, 33 deletions
diff --git a/MediaBrowser.LocalMetadata/Images/CollectionFolderImageProvider.cs b/MediaBrowser.LocalMetadata/Images/CollectionFolderImageProvider.cs index 651273eb0..d393b98d9 100644 --- a/MediaBrowser.LocalMetadata/Images/CollectionFolderImageProvider.cs +++ b/MediaBrowser.LocalMetadata/Images/CollectionFolderImageProvider.cs @@ -39,7 +39,7 @@ namespace MediaBrowser.LocalMetadata.Images { var collectionFolder = (CollectionFolder)item; - return new LocalImageProvider(_fileSystem).GetImages(item, collectionFolder.PhysicalLocations, directoryService); + return new LocalImageProvider(_fileSystem).GetImages(item, collectionFolder.PhysicalLocations, true, directoryService); } } } diff --git a/MediaBrowser.LocalMetadata/Images/EpisodeLocalImageProvider.cs b/MediaBrowser.LocalMetadata/Images/EpisodeLocalImageProvider.cs index e02326838..e005ad224 100644 --- a/MediaBrowser.LocalMetadata/Images/EpisodeLocalImageProvider.cs +++ b/MediaBrowser.LocalMetadata/Images/EpisodeLocalImageProvider.cs @@ -56,7 +56,8 @@ namespace MediaBrowser.LocalMetadata.Images if (parentPathFiles.Any(i => string.Equals(i.FullName, metadataPath, StringComparison.OrdinalIgnoreCase))) { - return GetFilesFromParentFolder(nameWithoutExtension, directoryService.GetFiles(metadataPath)); + var filesInMetadataFolder = _fileSystem.GetFiles(metadataPath, BaseItem.SupportedImageExtensions, false, false); + return GetFilesFromParentFolder(nameWithoutExtension, filesInMetadataFolder); } return new List<LocalImageInfo>(); diff --git a/MediaBrowser.LocalMetadata/Images/ImagesByNameImageProvider.cs b/MediaBrowser.LocalMetadata/Images/ImagesByNameImageProvider.cs index 8a6dde6c4..7e3a05683 100644 --- a/MediaBrowser.LocalMetadata/Images/ImagesByNameImageProvider.cs +++ b/MediaBrowser.LocalMetadata/Images/ImagesByNameImageProvider.cs @@ -47,7 +47,7 @@ namespace MediaBrowser.LocalMetadata.Images try { - return new LocalImageProvider(_fileSystem).GetImages(item, path, directoryService); + return new LocalImageProvider(_fileSystem).GetImages(item, path, false, directoryService); } catch (IOException) { diff --git a/MediaBrowser.LocalMetadata/Images/InternalMetadataFolderImageProvider.cs b/MediaBrowser.LocalMetadata/Images/InternalMetadataFolderImageProvider.cs index b29182d96..8003803ea 100644 --- a/MediaBrowser.LocalMetadata/Images/InternalMetadataFolderImageProvider.cs +++ b/MediaBrowser.LocalMetadata/Images/InternalMetadataFolderImageProvider.cs @@ -67,7 +67,7 @@ namespace MediaBrowser.LocalMetadata.Images try { - return new LocalImageProvider(_fileSystem).GetImages(item, path, directoryService); + return new LocalImageProvider(_fileSystem).GetImages(item, path, false, directoryService); } catch (IOException) { 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); } } } |
