added api methods for video backdrops

This commit is contained in:
Luke Pulverenti
2013-04-28 12:25:14 -04:00
parent 08e4f959a2
commit f09902c6a7
10 changed files with 174 additions and 19 deletions

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;
}
}