Implement TA->JF watched status synchronization

This commit is contained in:
DarkFighterLuke
2024-09-06 09:49:12 +02:00
parent 44d00af16f
commit a968ae838c
@@ -118,8 +118,10 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Tasks
PlaybackPositionTicks = playbackProgress.Position * TimeSpan.TicksPerSecond PlaybackPositionTicks = playbackProgress.Position * TimeSpan.TicksPerSecond
}; };
// TODO: Also last played datetime should be updated once TA will return it var taVideoInfo = await taApi.GetVideo(Utils.GetVideoNameFromPath(video.Path)).ConfigureAwait(true);
if (userItemData.PlaybackPositionTicks >= video.RunTimeTicks) if (taVideoInfo != null)
{
if (taVideoInfo.Player.IsWatched)
{ {
userUpdateData.Played = true; userUpdateData.Played = true;
} }
@@ -127,9 +129,11 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Tasks
{ {
userUpdateData.Played = false; userUpdateData.Played = false;
} }
}
_userDataManager.SaveUserData(user, video, userUpdateData, UserDataSaveReason.UpdateUserData); _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}", $"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}.");
} }
} }
} }