added theme song support

This commit is contained in:
Luke Pulverenti
2013-04-24 12:03:10 -04:00
parent 0d15e1d631
commit d78c378452
6 changed files with 171 additions and 9 deletions

View File

@@ -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;
@@ -36,7 +38,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)

View File

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