diff --git a/Jellyfin.Plugin.TubeArchivistMetadata/Jellyfin.Plugin.TubeArchivistMetadata.csproj b/Jellyfin.Plugin.TubeArchivistMetadata/Jellyfin.Plugin.TubeArchivistMetadata.csproj index 302d3ff..233879e 100644 --- a/Jellyfin.Plugin.TubeArchivistMetadata/Jellyfin.Plugin.TubeArchivistMetadata.csproj +++ b/Jellyfin.Plugin.TubeArchivistMetadata/Jellyfin.Plugin.TubeArchivistMetadata.csproj @@ -11,8 +11,8 @@ - - + + diff --git a/Jellyfin.Plugin.TubeArchivistMetadata/Plugin.cs b/Jellyfin.Plugin.TubeArchivistMetadata/Plugin.cs index 4fd566f..d1713ea 100644 --- a/Jellyfin.Plugin.TubeArchivistMetadata/Plugin.cs +++ b/Jellyfin.Plugin.TubeArchivistMetadata/Plugin.cs @@ -186,9 +186,16 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata } var user = _userManager.GetUserById(eventArgs.UserId); + if (user == null) + { + Logger.LogError("OnWatchedStatusChange callback called without user id for item {ItemName}", eventArgs.Item.Name); + return; + } + + var userItemData = _userDataManager.GetUserData(user, eventArgs.Item); if (Configuration.JFTASync && user != null && Configuration.GetJFUsernamesToArray().Contains(user!.Username)) { - var isPlayed = eventArgs.Item.IsPlayed(user); + var isPlayed = eventArgs.Item.IsPlayed(user, userItemData); Logger.LogDebug("User {UserId} changed watched status to {Status} for the item {ItemName}", eventArgs.UserId, isPlayed, eventArgs.Item.Name); string itemYTId; try diff --git a/Jellyfin.Plugin.TubeArchivistMetadata/Tasks/JFToTubeArchivistProgressSyncTask.cs b/Jellyfin.Plugin.TubeArchivistMetadata/Tasks/JFToTubeArchivistProgressSyncTask.cs index 741496a..972ad92 100644 --- a/Jellyfin.Plugin.TubeArchivistMetadata/Tasks/JFToTubeArchivistProgressSyncTask.cs +++ b/Jellyfin.Plugin.TubeArchivistMetadata/Tasks/JFToTubeArchivistProgressSyncTask.cs @@ -155,10 +155,11 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Tasks var videoYTId = Utils.GetVideoNameFromPath(video.Path); _logger.LogDebug("{VideoYtId}", videoYTId); HttpStatusCode statusCode; + var userItemData = _userDataManager.GetUserData(user, channel); - if (!isChannelCheckedForWatched && channel.IsPlayed(user)) + if (!isChannelCheckedForWatched && channel.IsPlayed(user, userItemData)) { - var isChannelPlayed = channel.IsPlayed(user); + var isChannelPlayed = channel.IsPlayed(user, userItemData); statusCode = await taApi.SetWatchedStatus(channelYTId, isChannelPlayed).ConfigureAwait(true); if (statusCode != System.Net.HttpStatusCode.OK) { @@ -174,7 +175,7 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Tasks if (!isChannelWatched) { - var isVideoPlayed = video.IsPlayed(user); + var isVideoPlayed = video.IsPlayed(user, userItemData); statusCode = await taApi.SetWatchedStatus(videoYTId, isVideoPlayed).ConfigureAwait(true); if (statusCode != System.Net.HttpStatusCode.OK) {