From a968ae838ca5d1bbd81bf7c9b71dd6d3443dcc7f Mon Sep 17 00:00:00 2001 From: DarkFighterLuke Date: Fri, 6 Sep 2024 09:49:12 +0200 Subject: [PATCH] Implement TA->JF watched status synchronization --- .../Tasks/TAToJellyfinProgressSyncTask.cs | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/Jellyfin.Plugin.TubeArchivistMetadata/Tasks/TAToJellyfinProgressSyncTask.cs b/Jellyfin.Plugin.TubeArchivistMetadata/Tasks/TAToJellyfinProgressSyncTask.cs index 368a84f..af98bb5 100644 --- a/Jellyfin.Plugin.TubeArchivistMetadata/Tasks/TAToJellyfinProgressSyncTask.cs +++ b/Jellyfin.Plugin.TubeArchivistMetadata/Tasks/TAToJellyfinProgressSyncTask.cs @@ -118,18 +118,22 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Tasks PlaybackPositionTicks = playbackProgress.Position * TimeSpan.TicksPerSecond }; - // TODO: Also last played datetime should be updated once TA will return it - if (userItemData.PlaybackPositionTicks >= video.RunTimeTicks) + var taVideoInfo = await taApi.GetVideo(Utils.GetVideoNameFromPath(video.Path)).ConfigureAwait(true); + if (taVideoInfo != null) { - userUpdateData.Played = true; - } - else - { - userUpdateData.Played = false; + if (taVideoInfo.Player.IsWatched) + { + userUpdateData.Played = true; + } + else + { + userUpdateData.Played = false; + } } _userDataManager.SaveUserData(user, video, userUpdateData, UserDataSaveReason.UpdateUserData); _logger.LogInformation("{Message}", $"Playback progress for video {video.Name} set to {userItemData.PlaybackPositionTicks / TimeSpan.TicksPerSecond} seconds for user {jfUsername}."); + _logger.LogInformation("{Message}", $"Watched status for video {video.Name} set to {userItemData.Played} seconds for user {jfUsername}."); } } }