mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-01-15 08:23:28 -03:00
Revert IsPlayed optimization, pass UserItemData to IsPlayed when available (#14786)
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user