mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-06-04 06:48:35 +01:00
update folder queries
This commit is contained in:
@@ -112,7 +112,7 @@ namespace MediaBrowser.Controller.Entities.Audio
|
||||
|
||||
public IEnumerable<BaseItem> GetTaggedItems(InternalItemsQuery query)
|
||||
{
|
||||
query.Genres = new[] { Name };
|
||||
query.GenreIds = new[] { Id.ToString("N") };
|
||||
query.IncludeItemTypes = new[] { typeof(MusicVideo).Name, typeof(Audio).Name, typeof(MusicAlbum).Name, typeof(MusicArtist).Name };
|
||||
|
||||
return LibraryManager.GetItemList(query);
|
||||
|
||||
@@ -81,7 +81,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
|
||||
public IEnumerable<BaseItem> GetTaggedItems(InternalItemsQuery query)
|
||||
{
|
||||
query.Genres = new[] { Name };
|
||||
query.GenreIds = new[] { Id.ToString("N") };
|
||||
query.IncludeItemTypes = new[] { typeof(Game).Name };
|
||||
|
||||
return LibraryManager.GetItemList(query);
|
||||
|
||||
@@ -93,7 +93,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
|
||||
public IEnumerable<BaseItem> GetTaggedItems(InternalItemsQuery query)
|
||||
{
|
||||
query.Genres = new[] { Name };
|
||||
query.GenreIds = new[] { Id.ToString("N") };
|
||||
query.ExcludeItemTypes = new[] { typeof(Game).Name, typeof(MusicVideo).Name, typeof(Audio.Audio).Name, typeof(MusicAlbum).Name, typeof(MusicArtist).Name };
|
||||
|
||||
return LibraryManager.GetItemList(query);
|
||||
|
||||
@@ -152,9 +152,7 @@ namespace MediaBrowser.Controller.Entities.Movies
|
||||
var currentOfficialRating = OfficialRating;
|
||||
|
||||
// Gather all possible ratings
|
||||
var ratings = GetRecursiveChildren()
|
||||
.Concat(GetLinkedChildren())
|
||||
.Where(i => i is Movie || i is Series || i is MusicAlbum || i is Game)
|
||||
var ratings = GetRecursiveChildren(i => i is Movie || i is Series || i is MusicAlbum || i is Game)
|
||||
.Select(i => i.OfficialRating)
|
||||
.Where(i => !string.IsNullOrEmpty(i))
|
||||
.Distinct(StringComparer.OrdinalIgnoreCase)
|
||||
|
||||
@@ -586,7 +586,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
{
|
||||
query.Recursive = true;
|
||||
query.ParentId = queryParent.Id;
|
||||
query.Genres = new[] { displayParent.Name };
|
||||
query.GenreIds = new[] { displayParent.Id.ToString("N") };
|
||||
query.SetUser(user);
|
||||
|
||||
query.IncludeItemTypes = new[] { typeof(Movie).Name };
|
||||
@@ -729,7 +729,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
{
|
||||
query.Recursive = true;
|
||||
query.ParentId = queryParent.Id;
|
||||
query.Genres = new[] { displayParent.Name };
|
||||
query.GenreIds = new[] { displayParent.Id.ToString("N") };
|
||||
query.SetUser(user);
|
||||
|
||||
query.IncludeItemTypes = new[] { typeof(Series).Name };
|
||||
@@ -905,6 +905,11 @@ namespace MediaBrowser.Controller.Entities
|
||||
return false;
|
||||
}
|
||||
|
||||
if (request.GenreIds.Length > 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (request.HasImdbId.HasValue)
|
||||
{
|
||||
return false;
|
||||
@@ -1768,26 +1773,6 @@ namespace MediaBrowser.Controller.Entities
|
||||
return new List<Folder> { parent };
|
||||
}
|
||||
|
||||
private IEnumerable<BaseItem> GetRecursiveChildren(Folder parent, User user, IEnumerable<string> viewTypes)
|
||||
{
|
||||
if (parent == null || parent is UserView)
|
||||
{
|
||||
if (user == null)
|
||||
{
|
||||
return GetMediaFolders(null, viewTypes).SelectMany(i => i.GetRecursiveChildren());
|
||||
}
|
||||
|
||||
return GetMediaFolders(user, viewTypes).SelectMany(i => i.GetRecursiveChildren(user));
|
||||
}
|
||||
|
||||
if (user == null)
|
||||
{
|
||||
return parent.GetRecursiveChildren();
|
||||
}
|
||||
|
||||
return parent.GetRecursiveChildren(user);
|
||||
}
|
||||
|
||||
private async Task<QueryResult<BaseItem>> GetLiveTvView(Folder queryParent, User user, InternalItemsQuery query)
|
||||
{
|
||||
if (query.Recursive)
|
||||
|
||||
@@ -134,34 +134,27 @@ namespace MediaBrowser.Controller.Playlists
|
||||
var musicGenre = item as MusicGenre;
|
||||
if (musicGenre != null)
|
||||
{
|
||||
var items = LibraryManager.GetItemList(new InternalItemsQuery(user)
|
||||
return LibraryManager.GetItemList(new InternalItemsQuery(user)
|
||||
{
|
||||
Recursive = true,
|
||||
IncludeItemTypes = new[] { typeof(Audio).Name },
|
||||
Genres = new[] { musicGenre.Name }
|
||||
GenreIds = new[] { musicGenre.Id.ToString("N") },
|
||||
SortBy = new[] { ItemSortBy.AlbumArtist, ItemSortBy.Album, ItemSortBy.SortName },
|
||||
SortOrder = SortOrder.Ascending
|
||||
});
|
||||
|
||||
return LibraryManager.Sort(items, user, new[] { ItemSortBy.AlbumArtist, ItemSortBy.Album, ItemSortBy.SortName }, SortOrder.Ascending);
|
||||
}
|
||||
|
||||
var musicArtist = item as MusicArtist;
|
||||
if (musicArtist != null)
|
||||
{
|
||||
Func<BaseItem, bool> filter = i =>
|
||||
return LibraryManager.GetItemList(new InternalItemsQuery(user)
|
||||
{
|
||||
var audio = i as Audio;
|
||||
return audio != null && audio.HasAnyArtist(musicArtist.Name);
|
||||
};
|
||||
|
||||
var items = user == null
|
||||
? LibraryManager.RootFolder.GetRecursiveChildren(filter)
|
||||
: user.RootFolder.GetRecursiveChildren(user, new InternalItemsQuery(user)
|
||||
{
|
||||
IncludeItemTypes = new[] { typeof(Audio).Name },
|
||||
ArtistIds = new[] { musicArtist.Id.ToString("N") }
|
||||
});
|
||||
|
||||
return LibraryManager.Sort(items, user, new[] { ItemSortBy.AlbumArtist, ItemSortBy.Album, ItemSortBy.SortName }, SortOrder.Ascending);
|
||||
Recursive = true,
|
||||
IncludeItemTypes = new[] { typeof(Audio).Name },
|
||||
ArtistIds = new[] { musicArtist.Id.ToString("N") },
|
||||
SortBy = new[] { ItemSortBy.AlbumArtist, ItemSortBy.Album, ItemSortBy.SortName },
|
||||
SortOrder = SortOrder.Ascending
|
||||
});
|
||||
}
|
||||
|
||||
var folder = item as Folder;
|
||||
|
||||
Reference in New Issue
Block a user