From c058a35abe90d1387e59e2f7b9fe618e741bc04a Mon Sep 17 00:00:00 2001 From: Matt Duran Date: Mon, 3 Mar 2025 09:48:10 -0800 Subject: [PATCH 1/3] Added new method for auth headers --- .../Configuration/PluginConfiguration.cs | 3 ++- .../Plugin.cs | 23 +++++++++++++++++-- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/Jellyfin.Plugin.TubeArchivistMetadata/Configuration/PluginConfiguration.cs b/Jellyfin.Plugin.TubeArchivistMetadata/Configuration/PluginConfiguration.cs index 18b5f23..cbc98ad 100644 --- a/Jellyfin.Plugin.TubeArchivistMetadata/Configuration/PluginConfiguration.cs +++ b/Jellyfin.Plugin.TubeArchivistMetadata/Configuration/PluginConfiguration.cs @@ -87,7 +87,8 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Configuration set { _tubeArchivistApiKey = value; - Plugin.Instance?.LogTAApiConnectionStatus(); + Plugin.Instance?.LogTAApiConnectionStatus(); + Plugin.Instance?.UpdateAuthorizationHeader(); } } diff --git a/Jellyfin.Plugin.TubeArchivistMetadata/Plugin.cs b/Jellyfin.Plugin.TubeArchivistMetadata/Plugin.cs index bf21ab0..83153ea 100644 --- a/Jellyfin.Plugin.TubeArchivistMetadata/Plugin.cs +++ b/Jellyfin.Plugin.TubeArchivistMetadata/Plugin.cs @@ -57,7 +57,9 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata handler.AllowAutoRedirect = false; handler.CheckCertificateRevocationList = true; HttpClient = new HttpClient(handler); - HttpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Token", Instance?.Configuration.TubeArchivistApiKey); + + UpdateAuthorizationHeader(); + SessionManager = sessionManager; sessionManager.PlaybackProgress += OnPlaybackProgress; LibraryManager = libraryManager; @@ -128,6 +130,23 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata } }; + /// + /// Updates the HTTP client's Authorization header with the current API key. + /// + public void UpdateAuthorizationHeader() + { + if (!string.IsNullOrEmpty(Configuration.TubeArchivistApiKey)) + { + HttpClient.DefaultRequestHeaders.Authorization = + new System.Net.Http.Headers.AuthenticationHeaderValue("Token", Configuration.TubeArchivistApiKey); + Logger.LogInformation("{Message}", "Updated Authorization header with API key"); + } + else + { + Logger.LogWarning("{Message}", "No TubeArchivist API key configured"); + } + } + /// /// Logs the TubeArchivist API connection status. /// @@ -207,4 +226,4 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata } } } -} +} \ No newline at end of file From ebb2cdfcc61e7a1273f9a69b1e10ca23b8ac98dc Mon Sep 17 00:00:00 2001 From: Matt Duran Date: Thu, 6 Mar 2025 20:58:19 -0800 Subject: [PATCH 2/3] Modified setter to allow for usernames with spaces --- .../Configuration/PluginConfiguration.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Jellyfin.Plugin.TubeArchivistMetadata/Configuration/PluginConfiguration.cs b/Jellyfin.Plugin.TubeArchivistMetadata/Configuration/PluginConfiguration.cs index cbc98ad..7d35854 100644 --- a/Jellyfin.Plugin.TubeArchivistMetadata/Configuration/PluginConfiguration.cs +++ b/Jellyfin.Plugin.TubeArchivistMetadata/Configuration/PluginConfiguration.cs @@ -125,7 +125,19 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Configuration set { - value.Replace(" ", string.Empty, StringComparison.CurrentCulture).Split(',').ToList().ForEach(u => _jfUsernamesTo.Add(u)); + // Clear existing usernames + _jfUsernamesTo.Clear(); + + // Split by comma, then trim each part to remove leading/trailing spaces + foreach (var username in value.Split(',')) + { + var trimmedUsername = username.Trim(); + if (!string.IsNullOrEmpty(trimmedUsername)) + { + _jfUsernamesTo.Add(trimmedUsername); + } + } + _logger.LogDebug("Set JFUsernamesTo to: {Message}", value); } } From 76ac750de283750dee91aba23f082cd0c7cf96ae Mon Sep 17 00:00:00 2001 From: DarkFighterLuke Date: Mon, 10 Mar 2025 22:44:37 +0100 Subject: [PATCH 3/3] Fix UpdateAuthorizationHeader method --- .../Configuration/PluginConfiguration.cs | 10 +++++----- Jellyfin.Plugin.TubeArchivistMetadata/Plugin.cs | 15 +++++++-------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/Jellyfin.Plugin.TubeArchivistMetadata/Configuration/PluginConfiguration.cs b/Jellyfin.Plugin.TubeArchivistMetadata/Configuration/PluginConfiguration.cs index 7d35854..e946fba 100644 --- a/Jellyfin.Plugin.TubeArchivistMetadata/Configuration/PluginConfiguration.cs +++ b/Jellyfin.Plugin.TubeArchivistMetadata/Configuration/PluginConfiguration.cs @@ -87,8 +87,8 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Configuration set { _tubeArchivistApiKey = value; - Plugin.Instance?.LogTAApiConnectionStatus(); - Plugin.Instance?.UpdateAuthorizationHeader(); + Plugin.Instance?.LogTAApiConnectionStatus(); + Plugin.Instance?.UpdateAuthorizationHeader(value); } } @@ -127,7 +127,7 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Configuration { // Clear existing usernames _jfUsernamesTo.Clear(); - + // Split by comma, then trim each part to remove leading/trailing spaces foreach (var username in value.Split(',')) { @@ -137,8 +137,8 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Configuration _jfUsernamesTo.Add(trimmedUsername); } } - - _logger.LogDebug("Set JFUsernamesTo to: {Message}", value); + + _logger.LogDebug("Set JFUsernamesTo to: {Message}", string.Join(", ", _jfUsernamesTo)); } } diff --git a/Jellyfin.Plugin.TubeArchivistMetadata/Plugin.cs b/Jellyfin.Plugin.TubeArchivistMetadata/Plugin.cs index ce6da64..0f4f0da 100644 --- a/Jellyfin.Plugin.TubeArchivistMetadata/Plugin.cs +++ b/Jellyfin.Plugin.TubeArchivistMetadata/Plugin.cs @@ -57,9 +57,8 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata handler.AllowAutoRedirect = false; handler.CheckCertificateRevocationList = true; HttpClient = new HttpClient(handler); - - UpdateAuthorizationHeader(); - + UpdateAuthorizationHeader(Configuration.TubeArchivistApiKey); + SessionManager = sessionManager; sessionManager.PlaybackProgress += OnPlaybackProgress; LibraryManager = libraryManager; @@ -133,12 +132,12 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata /// /// Updates the HTTP client's Authorization header with the current API key. /// - public void UpdateAuthorizationHeader() + /// TubeArchivist API key. + public void UpdateAuthorizationHeader(string apiKey) { - if (!string.IsNullOrEmpty(Configuration.TubeArchivistApiKey)) + if (!string.IsNullOrEmpty(apiKey)) { - HttpClient.DefaultRequestHeaders.Authorization = - new System.Net.Http.Headers.AuthenticationHeaderValue("Token", Configuration.TubeArchivistApiKey); + HttpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Token", apiKey); Logger.LogInformation("{Message}", "Updated Authorization header with API key"); } else @@ -233,4 +232,4 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata } } } -} \ No newline at end of file +}