mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-09-29 15:31:04 -04:00
Revert IsPlayed optimization, pass UserItemData to IsPlayed when available (#14786)
This commit is contained in:
parent
7c6cedd90a
commit
4d36bd635d
@ -6,7 +6,6 @@ using Jellyfin.Database.Implementations.Entities;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Library;
|
||||
using MediaBrowser.Controller.Sorting;
|
||||
using MediaBrowser.Model.Querying;
|
||||
|
||||
namespace Emby.Server.Implementations.Sorting
|
||||
{
|
||||
@ -54,7 +53,7 @@ namespace Emby.Server.Implementations.Sorting
|
||||
/// <returns>DateTime.</returns>
|
||||
private int GetValue(BaseItem x)
|
||||
{
|
||||
return x.IsFavoriteOrLiked(User) ? 0 : 1;
|
||||
return x.IsFavoriteOrLiked(User, userItemData: null) ? 0 : 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -7,7 +7,6 @@ using Jellyfin.Database.Implementations.Entities;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Library;
|
||||
using MediaBrowser.Controller.Sorting;
|
||||
using MediaBrowser.Model.Querying;
|
||||
|
||||
namespace Emby.Server.Implementations.Sorting
|
||||
{
|
||||
@ -55,7 +54,7 @@ namespace Emby.Server.Implementations.Sorting
|
||||
/// <returns>DateTime.</returns>
|
||||
private int GetValue(BaseItem x)
|
||||
{
|
||||
return x.IsPlayed(User) ? 0 : 1;
|
||||
return x.IsPlayed(User, userItemData: null) ? 0 : 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -7,7 +7,6 @@ using Jellyfin.Database.Implementations.Entities;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Library;
|
||||
using MediaBrowser.Controller.Sorting;
|
||||
using MediaBrowser.Model.Querying;
|
||||
|
||||
namespace Emby.Server.Implementations.Sorting
|
||||
{
|
||||
@ -55,7 +54,7 @@ namespace Emby.Server.Implementations.Sorting
|
||||
/// <returns>DateTime.</returns>
|
||||
private int GetValue(BaseItem x)
|
||||
{
|
||||
return x.IsUnplayed(User) ? 0 : 1;
|
||||
return x.IsUnplayed(User, userItemData: null) ? 0 : 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2315,27 +2315,27 @@ namespace MediaBrowser.Controller.Entities
|
||||
return UpdateToRepositoryAsync(ItemUpdateType.ImageUpdate, CancellationToken.None);
|
||||
}
|
||||
|
||||
public virtual bool IsPlayed(User user)
|
||||
public virtual bool IsPlayed(User user, UserItemData userItemData)
|
||||
{
|
||||
var userdata = UserDataManager.GetUserData(user, this);
|
||||
userItemData ??= UserDataManager.GetUserData(user, this);
|
||||
|
||||
return userdata is not null && userdata.Played;
|
||||
return userItemData is not null && userItemData.Played;
|
||||
}
|
||||
|
||||
public bool IsFavoriteOrLiked(User user)
|
||||
public bool IsFavoriteOrLiked(User user, UserItemData userItemData)
|
||||
{
|
||||
var userdata = UserDataManager.GetUserData(user, this);
|
||||
userItemData ??= UserDataManager.GetUserData(user, this);
|
||||
|
||||
return userdata is not null && (userdata.IsFavorite || (userdata.Likes ?? false));
|
||||
return userItemData is not null && (userItemData.IsFavorite || (userItemData.Likes ?? false));
|
||||
}
|
||||
|
||||
public virtual bool IsUnplayed(User user)
|
||||
public virtual bool IsUnplayed(User user, UserItemData userItemData)
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(user);
|
||||
|
||||
var userdata = UserDataManager.GetUserData(user, this);
|
||||
userItemData ??= UserDataManager.GetUserData(user, this);
|
||||
|
||||
return userdata is null || !userdata.Played;
|
||||
return userItemData is null || !userItemData.Played;
|
||||
}
|
||||
|
||||
ItemLookupInfo IHasLookupInfo<ItemLookupInfo>.GetLookupInfo()
|
||||
|
@ -1666,7 +1666,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
}
|
||||
}
|
||||
|
||||
public override bool IsPlayed(User user)
|
||||
public override bool IsPlayed(User user, UserItemData userItemData)
|
||||
{
|
||||
var itemsResult = GetItemList(new InternalItemsQuery(user)
|
||||
{
|
||||
@ -1677,12 +1677,12 @@ namespace MediaBrowser.Controller.Entities
|
||||
});
|
||||
|
||||
return itemsResult
|
||||
.All(i => i.IsPlayed(user));
|
||||
.All(i => i.IsPlayed(user, userItemData: null));
|
||||
}
|
||||
|
||||
public override bool IsUnplayed(User user)
|
||||
public override bool IsUnplayed(User user, UserItemData userItemData)
|
||||
{
|
||||
return !IsPlayed(user);
|
||||
return !IsPlayed(user, userItemData);
|
||||
}
|
||||
|
||||
public override void FillUserDataDtoValues(UserItemDataDto dto, UserItemData userData, BaseItemDto itemDto, User user, DtoOptions fields)
|
||||
|
@ -542,7 +542,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
if (query.IsPlayed.HasValue)
|
||||
{
|
||||
userData ??= userDataManager.GetUserData(user, item);
|
||||
if (userData.Played != query.IsPlayed.Value)
|
||||
if (item.IsPlayed(user, userData) != query.IsPlayed.Value)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user