diff --git a/Jellyfin.Plugin.TubeArchivistMetadata/Plugin.cs b/Jellyfin.Plugin.TubeArchivistMetadata/Plugin.cs index 08a9b4e..600fabb 100644 --- a/Jellyfin.Plugin.TubeArchivistMetadata/Plugin.cs +++ b/Jellyfin.Plugin.TubeArchivistMetadata/Plugin.cs @@ -28,6 +28,7 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata public class Plugin : BasePlugin, IHasWebPages { private readonly IUserManager _userManager; + private readonly IUserDataManager _userDataManager; /// /// Initializes a new instance of the class. @@ -63,6 +64,7 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata sessionManager.PlaybackProgress += OnPlaybackProgress; LibraryManager = libraryManager; _userManager = userManager; + _userDataManager = userDataManager; userDataManager.UserDataSaved += OnWatchedStatusChange; var taToJellyfinProgressSyncTask = new TAToJellyfinProgressSyncTask(logger, libraryManager, userManager, userDataManager); @@ -225,6 +227,17 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata { Logger.LogCritical("POST /watched returned {StatusCode} for item {ItemName} ({VideoYTId}) with watched status {IsPlayed}", statusCode, eventArgs.Item.Name, itemYTId, isPlayed); } + + if (eventArgs.Item is Episode) + { + var progress = _userDataManager.GetUserData(user, eventArgs.Item).PlaybackPositionTicks / TimeSpan.TicksPerSecond; + var videoId = Utils.GetVideoNameFromPath(eventArgs.Item.Path); + statusCode = await TubeArchivistApi.GetInstance().SetProgress(videoId, progress).ConfigureAwait(true); + if (statusCode != System.Net.HttpStatusCode.OK) + { + Logger.LogCritical("{Message}", $"POST /video/{videoId}/progress returned {statusCode} for video {eventArgs.Item.Name} with progress {progress} seconds"); + } + } } catch (Exception ex) {