aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Library
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/Library')
-rw-r--r--MediaBrowser.Server.Implementations/Library/CoreResolutionIgnoreRule.cs22
-rw-r--r--MediaBrowser.Server.Implementations/Library/LibraryManager.cs21
2 files changed, 34 insertions, 9 deletions
diff --git a/MediaBrowser.Server.Implementations/Library/CoreResolutionIgnoreRule.cs b/MediaBrowser.Server.Implementations/Library/CoreResolutionIgnoreRule.cs
index cebd5e192..04c247f7e 100644
--- a/MediaBrowser.Server.Implementations/Library/CoreResolutionIgnoreRule.cs
+++ b/MediaBrowser.Server.Implementations/Library/CoreResolutionIgnoreRule.cs
@@ -1,4 +1,6 @@
-using MediaBrowser.Controller.Library;
+using System.IO;
+using MediaBrowser.Controller.Entities;
+using MediaBrowser.Controller.Library;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -16,7 +18,6 @@ namespace MediaBrowser.Server.Implementations.Library
/// </summary>
private static readonly List<string> IgnoreFolders = new List<string>
{
- "trailers",
"metadata",
"certificate",
"backup",
@@ -36,7 +37,12 @@ namespace MediaBrowser.Server.Implementations.Library
// Ignore hidden files and folders
if (args.IsHidden)
{
- return true;
+ var parentFolderName = Path.GetFileName(Path.GetDirectoryName(args.Path));
+
+ if (!string.Equals(parentFolderName, BaseItem.ThemeSongsFolderName, StringComparison.OrdinalIgnoreCase))
+ {
+ return true;
+ }
}
if (args.IsDirectory)
@@ -48,6 +54,16 @@ namespace MediaBrowser.Server.Implementations.Library
{
return true;
}
+
+ if (string.Equals(filename, BaseItem.TrailerFolderName, StringComparison.OrdinalIgnoreCase))
+ {
+ return true;
+ }
+
+ if (string.Equals(filename, BaseItem.ThemeSongsFolderName, StringComparison.OrdinalIgnoreCase))
+ {
+ return true;
+ }
}
return false;
diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
index 132dca4e2..5f07e0d87 100644
--- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
+++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
@@ -274,9 +274,11 @@ namespace MediaBrowser.Server.Implementations.Library
var specialFeatures = items.OfType<Movie>().SelectMany(i => i.SpecialFeatures).ToList();
var localTrailers = items.SelectMany(i => i.LocalTrailers).ToList();
+ var themeSongs = items.SelectMany(i => i.ThemeSongs).ToList();
items.AddRange(specialFeatures);
items.AddRange(localTrailers);
+ items.AddRange(themeSongs);
// Need to use DistinctBy Id because there could be multiple instances with the same id
// due to sharing the default library
@@ -325,22 +327,29 @@ namespace MediaBrowser.Server.Implementations.Library
{
LibraryItemsCache.AddOrUpdate(item.Id, item, delegate { return item; });
- foreach (var trailer in item.LocalTrailers)
+ foreach (var subItem in item.LocalTrailers)
{
// Prevent access to foreach variable in closure
- var trailer1 = trailer;
- LibraryItemsCache.AddOrUpdate(trailer.Id, trailer, delegate { return trailer1; });
+ var trailer1 = subItem;
+ LibraryItemsCache.AddOrUpdate(subItem.Id, subItem, delegate { return trailer1; });
+ }
+
+ foreach (var subItem in item.ThemeSongs)
+ {
+ // Prevent access to foreach variable in closure
+ var trailer1 = subItem;
+ LibraryItemsCache.AddOrUpdate(subItem.Id, subItem, delegate { return trailer1; });
}
var movie = item as Movie;
if (movie != null)
{
- foreach (var special in movie.SpecialFeatures)
+ foreach (var subItem in movie.SpecialFeatures)
{
// Prevent access to foreach variable in closure
- var special1 = special;
- LibraryItemsCache.AddOrUpdate(special.Id, special, delegate { return special1; });
+ var special1 = subItem;
+ LibraryItemsCache.AddOrUpdate(subItem.Id, subItem, delegate { return special1; });
}
}
}