diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-04-28 12:25:14 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-04-28 12:25:14 -0400 |
| commit | f09902c6a7b279e08eb74adcb654276ad50fb442 (patch) | |
| tree | a77e46ed591e80b80a0827d0967abfe45bf72695 /MediaBrowser.Server.Implementations/Library | |
| parent | 08e4f959a215911e98c5f90c36e407e7fd2b4ed6 (diff) | |
added api methods for video backdrops
Diffstat (limited to 'MediaBrowser.Server.Implementations/Library')
3 files changed, 24 insertions, 7 deletions
diff --git a/MediaBrowser.Server.Implementations/Library/CoreResolutionIgnoreRule.cs b/MediaBrowser.Server.Implementations/Library/CoreResolutionIgnoreRule.cs index cb49dd1e6..c6beef957 100644 --- a/MediaBrowser.Server.Implementations/Library/CoreResolutionIgnoreRule.cs +++ b/MediaBrowser.Server.Implementations/Library/CoreResolutionIgnoreRule.cs @@ -39,10 +39,12 @@ namespace MediaBrowser.Server.Implementations.Library { var parentFolderName = Path.GetFileName(Path.GetDirectoryName(args.Path)); - if (!string.Equals(parentFolderName, BaseItem.ThemeSongsFolderName, StringComparison.OrdinalIgnoreCase)) + if (string.Equals(parentFolderName, BaseItem.ThemeSongsFolderName, StringComparison.OrdinalIgnoreCase) || string.Equals(parentFolderName, BaseItem.VideoBackdropsFolderName, StringComparison.OrdinalIgnoreCase)) { - return true; + return false; } + + return true; } if (args.IsDirectory) @@ -60,6 +62,11 @@ namespace MediaBrowser.Server.Implementations.Library return true; } + if (string.Equals(filename, BaseItem.VideoBackdropsFolderName, StringComparison.OrdinalIgnoreCase)) + { + return true; + } + if (string.Equals(filename, BaseItem.ThemeSongsFolderName, StringComparison.OrdinalIgnoreCase)) { return true; diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs index ceb4f90cf..4323c3467 100644 --- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs +++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs @@ -275,10 +275,12 @@ 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(); + var videoBackdrops = items.SelectMany(i => i.ThemeSongs).ToList(); items.AddRange(specialFeatures); items.AddRange(localTrailers); items.AddRange(themeSongs); + items.AddRange(videoBackdrops); // Need to use DistinctBy Id because there could be multiple instances with the same id // due to sharing the default library @@ -330,15 +332,22 @@ namespace MediaBrowser.Server.Implementations.Library foreach (var subItem in item.LocalTrailers) { // Prevent access to foreach variable in closure - var trailer1 = subItem; - LibraryItemsCache.AddOrUpdate(subItem.Id, subItem, delegate { return trailer1; }); + var copy = subItem; + LibraryItemsCache.AddOrUpdate(subItem.Id, subItem, delegate { return copy; }); } 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 copy = subItem; + LibraryItemsCache.AddOrUpdate(subItem.Id, subItem, delegate { return copy; }); + } + + foreach (var subItem in item.VideoBackdrops) + { + // Prevent access to foreach variable in closure + var copy = subItem; + LibraryItemsCache.AddOrUpdate(subItem.Id, subItem, delegate { return copy; }); } var movie = item as Movie; diff --git a/MediaBrowser.Server.Implementations/Library/Resolvers/Audio/MusicArtistResolver.cs b/MediaBrowser.Server.Implementations/Library/Resolvers/Audio/MusicArtistResolver.cs index ffb967fc1..8a7f596af 100644 --- a/MediaBrowser.Server.Implementations/Library/Resolvers/Audio/MusicArtistResolver.cs +++ b/MediaBrowser.Server.Implementations/Library/Resolvers/Audio/MusicArtistResolver.cs @@ -1,6 +1,7 @@ using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Resolvers; +using System.IO; using System.Linq; namespace MediaBrowser.Server.Implementations.Library.Resolvers.Audio @@ -33,7 +34,7 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Audio if (args.Parent.IsRoot) return null; // If we contain an album assume we are an artist folder - return args.FileSystemChildren.Any(i => MusicAlbumResolver.IsMusicAlbum(i.FullName)) ? new MusicArtist() : null; + return args.FileSystemChildren.Where(i => i.Attributes.HasFlag(FileAttributes.Directory)).Any(i => MusicAlbumResolver.IsMusicAlbum(i.FullName)) ? new MusicArtist() : null; } } |
