aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Server.Implementations
diff options
context:
space:
mode:
authordkanada <dkanada@users.noreply.github.com>2026-05-04 12:06:11 +0900
committerdkanada <dkanada@users.noreply.github.com>2026-05-04 12:06:11 +0900
commitec990be12af3856eea597ba7ebdd5dbfa5b01ace (patch)
treef79b91990e49bddf74e8fcd7fb25471f09d0494a /Jellyfin.Server.Implementations
parenteacdc83fda01b712d2f9821e6624449304395486 (diff)
fix person TotalRecordCount when limit is applied
Diffstat (limited to 'Jellyfin.Server.Implementations')
-rw-r--r--Jellyfin.Server.Implementations/Item/PeopleRepository.cs18
1 files changed, 14 insertions, 4 deletions
diff --git a/Jellyfin.Server.Implementations/Item/PeopleRepository.cs b/Jellyfin.Server.Implementations/Item/PeopleRepository.cs
index ad9953d1b6..576e786cb7 100644
--- a/Jellyfin.Server.Implementations/Item/PeopleRepository.cs
+++ b/Jellyfin.Server.Implementations/Item/PeopleRepository.cs
@@ -1,14 +1,13 @@
using System;
using System.Collections.Generic;
-using System.Collections.Immutable;
using System.Linq;
using Jellyfin.Data.Enums;
using Jellyfin.Database.Implementations;
using Jellyfin.Database.Implementations.Entities;
-using Jellyfin.Database.Implementations.Entities.Libraries;
using Jellyfin.Extensions;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Persistence;
+using MediaBrowser.Model.Querying;
using Microsoft.EntityFrameworkCore;
namespace Jellyfin.Server.Implementations.Item;
@@ -30,7 +29,7 @@ public class PeopleRepository(IDbContextFactory<JellyfinDbContext> dbProvider, I
private readonly IDbContextFactory<JellyfinDbContext> _dbProvider = dbProvider;
/// <inheritdoc/>
- public IReadOnlyList<PersonInfo> GetPeople(InternalPeopleQuery filter)
+ public QueryResult<PersonInfo> GetPeople(InternalPeopleQuery filter)
{
using var context = _dbProvider.CreateDbContext();
var dbQuery = TranslateQuery(context.Peoples.AsNoTracking(), context, filter);
@@ -48,12 +47,23 @@ public class PeopleRepository(IDbContextFactory<JellyfinDbContext> dbProvider, I
dbQuery = dbQuery.OrderBy(e => e.Name);
}
+ var count = dbQuery.Count();
+ if (filter.StartIndex.HasValue && filter.StartIndex > 0)
+ {
+ dbQuery = dbQuery.Skip(filter.StartIndex.Value);
+ }
+
if (filter.Limit > 0)
{
dbQuery = dbQuery.Take(filter.Limit);
}
- return dbQuery.AsEnumerable().Select(Map).ToArray();
+ return new QueryResult<PersonInfo>
+ {
+ StartIndex = filter.StartIndex ?? 0,
+ TotalRecordCount = count,
+ Items = dbQuery.AsEnumerable().Select(Map).ToArray(),
+ };
}
/// <inheritdoc/>