aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.LocalMetadata
diff options
context:
space:
mode:
authorcvium <clausvium@gmail.com>2021-12-07 15:18:17 +0100
committercvium <clausvium@gmail.com>2021-12-07 15:24:57 +0100
commitfde84a1e00b0c781ce10acc73a9103db51aab67b (patch)
tree6a2ed0bd065704f8444acc910fa5ae6b3556d16d /MediaBrowser.LocalMetadata
parent9cafa2cab4c1a87598983db069b3aa55d5f42125 (diff)
Refactor extras parsing
Diffstat (limited to 'MediaBrowser.LocalMetadata')
-rw-r--r--MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs23
1 files changed, 12 insertions, 11 deletions
diff --git a/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs b/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs
index f79147803..46f1fede3 100644
--- a/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs
+++ b/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs
@@ -106,7 +106,7 @@ namespace MediaBrowser.LocalMetadata.Images
{
if (!item.IsFileProtocol)
{
- return Enumerable.Empty<FileSystemMetadata>();
+ yield break;
}
var path = item.ContainingFolderPath;
@@ -114,20 +114,21 @@ namespace MediaBrowser.LocalMetadata.Images
// Exit if the cache dir does not exist, alternative solution is to create it, but that's a lot of empty dirs...
if (!Directory.Exists(path))
{
- return Enumerable.Empty<FileSystemMetadata>();
+ yield break;
}
- if (includeDirectories)
+ var files = directoryService.GetFileSystemEntries(path).OrderBy(i => Array.IndexOf(BaseItem.SupportedImageExtensions, i.Extension ?? string.Empty));
+ var count = BaseItem.SupportedImageExtensions.Length;
+ foreach (var file in files)
{
- return directoryService.GetFileSystemEntries(path)
- .Where(i => BaseItem.SupportedImageExtensions.Contains(i.Extension, StringComparer.OrdinalIgnoreCase) || i.IsDirectory)
-
- .OrderBy(i => Array.IndexOf(BaseItem.SupportedImageExtensions, i.Extension ?? string.Empty));
+ for (var i = 0; i < count; i++)
+ {
+ if ((includeDirectories && file.IsDirectory) || string.Equals(BaseItem.SupportedImageExtensions[i], file.Extension, StringComparison.OrdinalIgnoreCase))
+ {
+ yield return file;
+ }
+ }
}
-
- return directoryService.GetFiles(path)
- .Where(i => BaseItem.SupportedImageExtensions.Contains(i.Extension, StringComparer.OrdinalIgnoreCase))
- .OrderBy(i => Array.IndexOf(BaseItem.SupportedImageExtensions, i.Extension ?? string.Empty));
}
/// <inheritdoc />