mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-03-26 20:16:33 +00:00
optimize series display
This commit is contained in:
@@ -681,6 +681,19 @@ namespace MediaBrowser.Controller.Entities
|
||||
return result.TotalRecordCount;
|
||||
}
|
||||
|
||||
public virtual int GetRecursiveChildCount(User user)
|
||||
{
|
||||
return GetItems(new InternalItemsQuery(user)
|
||||
{
|
||||
Recursive = true,
|
||||
IsFolder = false,
|
||||
IsVirtualItem = false,
|
||||
EnableTotalRecordCount = true,
|
||||
Limit = 0
|
||||
|
||||
}).Result.TotalRecordCount;
|
||||
}
|
||||
|
||||
public QueryResult<BaseItem> QueryRecursive(InternalItemsQuery query)
|
||||
{
|
||||
var user = query.User;
|
||||
@@ -1404,20 +1417,11 @@ namespace MediaBrowser.Controller.Entities
|
||||
return;
|
||||
}
|
||||
|
||||
var allItemsQueryResult = await GetItems(new InternalItemsQuery(user)
|
||||
{
|
||||
Recursive = true,
|
||||
IsFolder = false,
|
||||
IsVirtualItem = false,
|
||||
EnableTotalRecordCount = true,
|
||||
Limit = 0
|
||||
|
||||
}).ConfigureAwait(false);
|
||||
var recursiveItemCount = allItemsQueryResult.TotalRecordCount;
|
||||
var recursiveItemCount = GetRecursiveChildCount(user);
|
||||
|
||||
if (itemDto != null)
|
||||
{
|
||||
itemDto.RecursiveItemCount = allItemsQueryResult.TotalRecordCount;
|
||||
itemDto.RecursiveItemCount = recursiveItemCount;
|
||||
}
|
||||
|
||||
if (recursiveItemCount > 0 && SupportsPlayedStatus)
|
||||
|
||||
@@ -142,6 +142,24 @@ namespace MediaBrowser.Controller.Entities.TV
|
||||
return result.TotalRecordCount;
|
||||
}
|
||||
|
||||
public override int GetRecursiveChildCount(User user)
|
||||
{
|
||||
var query = new InternalItemsQuery(user);
|
||||
|
||||
query.AncestorWithPresentationUniqueKey = GetUniqueSeriesKey(this);
|
||||
if (query.SortBy.Length == 0)
|
||||
{
|
||||
query.SortBy = new[] { ItemSortBy.SortName };
|
||||
}
|
||||
if (query.IncludeItemTypes.Length == 0)
|
||||
{
|
||||
query.IncludeItemTypes = new[] { typeof(Episode).Name, typeof(Season).Name };
|
||||
}
|
||||
query.IsVirtualItem = false;
|
||||
query.Limit = 0;
|
||||
return LibraryManager.GetItemsResult(query).TotalRecordCount;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the user data key.
|
||||
/// </summary>
|
||||
@@ -369,7 +387,10 @@ namespace MediaBrowser.Controller.Entities.TV
|
||||
|
||||
public IEnumerable<Episode> GetSeasonEpisodes(Season parentSeason, User user)
|
||||
{
|
||||
var seriesKey = GetUniqueSeriesKey(this);
|
||||
// add optimization when this setting is not enabled
|
||||
var seriesKey = ConfigurationManager.Configuration.DisplaySpecialsWithinSeasons ?
|
||||
GetUniqueSeriesKey(this) :
|
||||
GetUniqueSeriesKey(parentSeason);
|
||||
|
||||
var query = new InternalItemsQuery(user)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user