mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-04-21 09:34:44 +01:00
added api methods for video backdrops
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user