diff options
| author | Luke <luke.pulverenti@gmail.com> | 2017-08-27 13:34:55 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-08-27 13:34:55 -0400 |
| commit | f3ee129bd9e88e8768221ba176bc8356f9b240e3 (patch) | |
| tree | 72dc082f77629e8d70f764d175433b40ac4c02d0 /MediaBrowser.LocalMetadata | |
| parent | 4f8684a16b1102056bd2b527dcbd585b78dd8000 (diff) | |
| parent | fa6bec94b59cf850246c5d0757b9279d080643d7 (diff) | |
Merge pull request #2847 from MediaBrowser/beta
Beta
Diffstat (limited to 'MediaBrowser.LocalMetadata')
| -rw-r--r-- | MediaBrowser.LocalMetadata/Images/EpisodeLocalImageProvider.cs | 71 | ||||
| -rw-r--r-- | MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs | 78 |
2 files changed, 91 insertions, 58 deletions
diff --git a/MediaBrowser.LocalMetadata/Images/EpisodeLocalImageProvider.cs b/MediaBrowser.LocalMetadata/Images/EpisodeLocalImageProvider.cs index 881d2a85a..9195a9cd4 100644 --- a/MediaBrowser.LocalMetadata/Images/EpisodeLocalImageProvider.cs +++ b/MediaBrowser.LocalMetadata/Images/EpisodeLocalImageProvider.cs @@ -4,10 +4,8 @@ using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Entities; using System; using System.Collections.Generic; -using System.IO; using System.Linq; -using MediaBrowser.Controller.IO; using MediaBrowser.Model.IO; namespace MediaBrowser.LocalMetadata.Images @@ -40,49 +38,50 @@ namespace MediaBrowser.LocalMetadata.Images { var parentPath = _fileSystem.GetDirectoryName(item.Path); - var parentPathFiles = directoryService.GetFiles(parentPath) - .ToList(); + var parentPathFiles = directoryService.GetFiles(parentPath); var nameWithoutExtension = _fileSystem.GetFileNameWithoutExtension(item.Path); return GetFilesFromParentFolder(nameWithoutExtension, parentPathFiles); } - private List<LocalImageInfo> GetFilesFromParentFolder(string filenameWithoutExtension, IEnumerable<FileSystemMetadata> parentPathFiles) + private List<LocalImageInfo> GetFilesFromParentFolder(string filenameWithoutExtension, List<FileSystemMetadata> parentPathFiles) { var thumbName = filenameWithoutExtension + "-thumb"; - return parentPathFiles - .Where(i => - { - if (i.IsDirectory) - { - return false; - } - - if (BaseItem.SupportedImageExtensions.Contains(i.Extension, StringComparer.OrdinalIgnoreCase)) - { - var currentNameWithoutExtension = _fileSystem.GetFileNameWithoutExtension(i); - - if (string.Equals(filenameWithoutExtension, currentNameWithoutExtension, StringComparison.OrdinalIgnoreCase)) - { - return true; - } - - if (string.Equals(thumbName, currentNameWithoutExtension, StringComparison.OrdinalIgnoreCase)) - { - return true; - } - } - - return false; - }) - .Select(i => new LocalImageInfo - { - FileInfo = i, - Type = ImageType.Primary - }) - .ToList(); + var list = new List<LocalImageInfo>(1); + + foreach (var i in parentPathFiles) + { + if (i.IsDirectory) + { + continue; + } + + if (BaseItem.SupportedImageExtensions.Contains(i.Extension, StringComparer.OrdinalIgnoreCase)) + { + var currentNameWithoutExtension = _fileSystem.GetFileNameWithoutExtension(i); + + if (string.Equals(filenameWithoutExtension, currentNameWithoutExtension, StringComparison.OrdinalIgnoreCase)) + { + list.Add(new LocalImageInfo + { + FileInfo = i, + Type = ImageType.Primary + }); + } + + else if (string.Equals(thumbName, currentNameWithoutExtension, StringComparison.OrdinalIgnoreCase)) + { + list.Add(new LocalImageInfo + { + FileInfo = i, + Type = ImageType.Primary + }); + } + } + } + return list; } } } diff --git a/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs b/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs index 1b61f079e..56a2c271f 100644 --- a/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs +++ b/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs @@ -7,7 +7,6 @@ using System; using System.Collections.Generic; using System.Globalization; using System.Linq; - using MediaBrowser.Controller.IO; using MediaBrowser.Model.IO; @@ -163,36 +162,71 @@ namespace MediaBrowser.LocalMetadata.Images PopulateScreenshots(images, files, imagePrefix, isInMixedFolder); } + private static readonly string[] CommonImageFileNames = new[] + { + "poster", + "folder", + "cover", + "default" + }; + + private static readonly string[] MusicImageFileNames = new[] + { + "folder", + "poster", + "cover", + "default" + }; + + private static readonly string[] PersonImageFileNames = new[] + { + "folder", + "poster" + }; + + private static readonly string[] SeriesImageFileNames = new[] + { + "poster", + "folder", + "cover", + "default", + "show" + }; + + private static readonly string[] VideoImageFileNames = new[] + { + "poster", + "folder", + "cover", + "default", + "movie" + }; + private void PopulatePrimaryImages(IHasMetadata item, List<LocalImageInfo> images, List<FileSystemMetadata> files, string imagePrefix, bool isInMixedFolder) { - var names = new List<string> - { - "cover", - "default" - }; + string[] imageFileNames; - if (item is MusicAlbum || item is MusicArtist || item is PhotoAlbum || item is Person) + if (item is MusicAlbum || item is MusicArtist || item is PhotoAlbum) { // these prefer folder - names.Insert(0, "poster"); - names.Insert(0, "folder"); + imageFileNames = MusicImageFileNames; } - else + else if (item is Person) { - names.Insert(0, "folder"); - names.Insert(0, "poster"); + // these prefer folder + imageFileNames = PersonImageFileNames; } - - // Support plex/kodi convention - if (item is Series) + else if (item is Series) { - names.Add("show"); + imageFileNames = SeriesImageFileNames; } - - // Support plex/kodi convention - if (item is Video && !(item is Episode)) + else if (item is Video && !(item is Episode)) + { + imageFileNames = VideoImageFileNames; + } + else { - names.Add("movie"); + imageFileNames = CommonImageFileNames; } var fileNameWithoutExtension = item.FileNameWithoutExtension; @@ -201,14 +235,14 @@ namespace MediaBrowser.LocalMetadata.Images AddImage(files, images, fileNameWithoutExtension, ImageType.Primary); } - foreach (var name in names) + foreach (var name in imageFileNames) { AddImage(files, images, imagePrefix + name, ImageType.Primary); } if (!isInMixedFolder) { - foreach (var name in names) + foreach (var name in imageFileNames) { AddImage(files, images, name, ImageType.Primary); } |
