Fix TotalRecordCount calculation

pull/9818/head
Shadowghost 2 years ago
parent d67f10ba8c
commit 81746666de

@ -1264,7 +1264,14 @@ namespace Emby.Server.Implementations.Library
AddUserToQuery(query, query.User, allowExternalContent); AddUserToQuery(query, query.User, allowExternalContent);
} }
return _itemRepository.GetItemList(query); var itemList = _itemRepository.GetItemList(query);
var user = query.User;
if (user is not null)
{
return itemList.Where(i => i.IsVisible(user)).ToList();
}
return itemList;
} }
public List<BaseItem> GetItemList(InternalItemsQuery query) public List<BaseItem> GetItemList(InternalItemsQuery query)

@ -42,7 +42,7 @@ namespace Emby.Server.Implementations.Playlists
query.Recursive = true; query.Recursive = true;
query.IncludeItemTypes = new[] { BaseItemKind.Playlist }; query.IncludeItemTypes = new[] { BaseItemKind.Playlist };
return LibraryManager.GetItemsResult(query); return QueryWithPostFiltering2(query);
} }
public override string GetClientTypeName() public override string GetClientTypeName()

@ -512,12 +512,10 @@ public class ItemsController : BaseJellyfinApiController
result = new QueryResult<BaseItem>(itemsArray); result = new QueryResult<BaseItem>(itemsArray);
} }
// result might include items not accessible by the user, DtoService will remove them
var accessibleItems = _dtoService.GetBaseItemDtos(result.Items, dtoOptions, user);
return new QueryResult<BaseItemDto>( return new QueryResult<BaseItemDto>(
startIndex, startIndex,
accessibleItems.Count, result.TotalRecordCount,
accessibleItems); _dtoService.GetBaseItemDtos(result.Items, dtoOptions, user));
} }
/// <summary> /// <summary>

@ -730,7 +730,7 @@ namespace MediaBrowser.Controller.Entities
return LibraryManager.GetItemsResult(query); return LibraryManager.GetItemsResult(query);
} }
private QueryResult<BaseItem> QueryWithPostFiltering2(InternalItemsQuery query) protected QueryResult<BaseItem> QueryWithPostFiltering2(InternalItemsQuery query)
{ {
var startIndex = query.StartIndex; var startIndex = query.StartIndex;
var limit = query.Limit; var limit = query.Limit;
@ -1272,7 +1272,7 @@ namespace MediaBrowser.Controller.Entities
{ {
ArgumentNullException.ThrowIfNull(user); ArgumentNullException.ThrowIfNull(user);
return GetChildren(user, includeLinkedChildren, null); return GetChildren(user, includeLinkedChildren, new InternalItemsQuery(user));
} }
public virtual List<BaseItem> GetChildren(User user, bool includeLinkedChildren, InternalItemsQuery query) public virtual List<BaseItem> GetChildren(User user, bool includeLinkedChildren, InternalItemsQuery query)

Loading…
Cancel
Save