mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-05-14 20:56:45 +01:00
fix person TotalRecordCount when limit is applied
This commit is contained in:
@@ -34,14 +34,11 @@ using MediaBrowser.Controller.IO;
|
||||
using MediaBrowser.Controller.Library;
|
||||
using MediaBrowser.Controller.LiveTv;
|
||||
using MediaBrowser.Controller.MediaEncoding;
|
||||
using MediaBrowser.Controller.MediaSegments;
|
||||
using MediaBrowser.Controller.Persistence;
|
||||
using MediaBrowser.Controller.Providers;
|
||||
using MediaBrowser.Controller.Resolvers;
|
||||
using MediaBrowser.Controller.Sorting;
|
||||
using MediaBrowser.Controller.Trickplay;
|
||||
using MediaBrowser.Model.Configuration;
|
||||
using MediaBrowser.Model.Dlna;
|
||||
using MediaBrowser.Model.Drawing;
|
||||
using MediaBrowser.Model.Dto;
|
||||
using MediaBrowser.Model.Entities;
|
||||
@@ -2918,7 +2915,7 @@ namespace Emby.Server.Implementations.Library
|
||||
|
||||
public IReadOnlyList<PersonInfo> GetPeople(InternalPeopleQuery query)
|
||||
{
|
||||
return _peopleRepository.GetPeople(query);
|
||||
return _peopleRepository.GetPeople(query).Items;
|
||||
}
|
||||
|
||||
public IReadOnlyList<PersonInfo> GetPeople(BaseItem item)
|
||||
@@ -2939,24 +2936,33 @@ namespace Emby.Server.Implementations.Library
|
||||
return [];
|
||||
}
|
||||
|
||||
public IReadOnlyList<Person> GetPeopleItems(InternalPeopleQuery query)
|
||||
public QueryResult<BaseItem> GetPeopleItems(InternalPeopleQuery query)
|
||||
{
|
||||
return _peopleRepository.GetPeopleNames(query)
|
||||
.Select(i =>
|
||||
var queryResult = _peopleRepository.GetPeople(query);
|
||||
var baseItems = queryResult.Items.Select(i =>
|
||||
{
|
||||
try
|
||||
{
|
||||
return GetPerson(i.Name);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, "error retrieving BaseItem for person: {0}", i.Name);
|
||||
return null;
|
||||
}
|
||||
})
|
||||
.Where(i => i is not null)
|
||||
.Where(i => query.User is null || i!.IsVisible(query.User))
|
||||
.OfType<BaseItem>()
|
||||
.ToList()
|
||||
.AsReadOnly();
|
||||
|
||||
return new QueryResult<BaseItem>
|
||||
{
|
||||
try
|
||||
{
|
||||
return GetPerson(i);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, "Error getting person");
|
||||
return null;
|
||||
}
|
||||
})
|
||||
.Where(i => i is not null)
|
||||
.Where(i => query.User is null || i!.IsVisible(query.User))
|
||||
.ToList()!; // null values are filtered out
|
||||
StartIndex = queryResult.StartIndex,
|
||||
TotalRecordCount = queryResult.TotalRecordCount,
|
||||
Items = baseItems,
|
||||
};
|
||||
}
|
||||
|
||||
public IReadOnlyList<string> GetPeopleNames(InternalPeopleQuery query)
|
||||
|
||||
Reference in New Issue
Block a user