From b07ffb2a83e4ae0aaa23372e9a4a59447f120bcf Mon Sep 17 00:00:00 2001 From: DarkFighterLuke Date: Wed, 4 Sep 2024 17:20:02 +0200 Subject: [PATCH] Enhance tasks startup --- .../Plugin.cs | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/Jellyfin.Plugin.TubeArchivistMetadata/Plugin.cs b/Jellyfin.Plugin.TubeArchivistMetadata/Plugin.cs index 07ff757..471a410 100644 --- a/Jellyfin.Plugin.TubeArchivistMetadata/Plugin.cs +++ b/Jellyfin.Plugin.TubeArchivistMetadata/Plugin.cs @@ -57,9 +57,24 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata SessionManager = sessionManager; sessionManager.PlaybackProgress += OnPlaybackProgress; LibraryManager = libraryManager; - taskManager.AddTasks([new TAToJellyfinProgressSyncTask(logger, libraryManager, userManager, userDataManager)]); - taskManager.Execute(); - logger.LogInformation("Enabled tasks: {Tasks}", string.Join(", ", taskManager.ScheduledTasks.ToList().Select(t => t.Name))); + + var taToJellyfinProgressSyncTask = new TAToJellyfinProgressSyncTask(logger, libraryManager, userManager, userDataManager); + var jfToTubearchivistProgressSyncTask = new JFToTubearchivistProgressSyncTask(logger, libraryManager, userManager, userDataManager); + var isTAJFTaskPresent = taskManager.ScheduledTasks.Any(t => t.Name.Equals(taToJellyfinProgressSyncTask.Name, StringComparison.Ordinal)); + if (Instance!.Configuration.TAJFSync && !isTAJFTaskPresent) + { + logger.LogInformation("Queueing task {TaskName}.", taToJellyfinProgressSyncTask.Name); + taskManager.AddTasks([taToJellyfinProgressSyncTask]); + taskManager.Execute(); + } + + var isJFTATaskPresent = taskManager.ScheduledTasks.Any(t => t.Name.Equals(jfToTubearchivistProgressSyncTask.Name, StringComparison.Ordinal)); + if (Instance!.Configuration.JFTASync && !isJFTATaskPresent) + { + logger.LogInformation("Queueing task {TaskName}.", jfToTubearchivistProgressSyncTask.Name); + taskManager.AddTasks([jfToTubearchivistProgressSyncTask]); + taskManager.Execute(); + } logger.LogInformation("{Message}", "Collection display name: " + Instance?.Configuration.CollectionTitle); logger.LogInformation("{Message}", "TubeArchivist API URL: " + Instance?.Configuration.TubeArchivistUrl);