aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.LocalMetadata
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2017-08-27 13:34:55 -0400
committerGitHub <noreply@github.com>2017-08-27 13:34:55 -0400
commitf3ee129bd9e88e8768221ba176bc8356f9b240e3 (patch)
tree72dc082f77629e8d70f764d175433b40ac4c02d0 /MediaBrowser.LocalMetadata
parent4f8684a16b1102056bd2b527dcbd585b78dd8000 (diff)
parentfa6bec94b59cf850246c5d0757b9279d080643d7 (diff)
Merge pull request #2847 from MediaBrowser/beta
Beta
Diffstat (limited to 'MediaBrowser.LocalMetadata')
-rw-r--r--MediaBrowser.LocalMetadata/Images/EpisodeLocalImageProvider.cs71
-rw-r--r--MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs78
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);
}