From 78564eea987b13f03b2fc3330a848e0daf2d3ab6 Mon Sep 17 00:00:00 2001 From: DarkFighterLuke Date: Wed, 13 Mar 2024 10:58:36 +0100 Subject: [PATCH] Add schema to TubeArchivist URL if not present in settings --- .../Configuration/PluginConfiguration.cs | 39 ++++++++++++++++++- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/Jellyfin.Plugin.TubeArchivistMetadata/Configuration/PluginConfiguration.cs b/Jellyfin.Plugin.TubeArchivistMetadata/Configuration/PluginConfiguration.cs index ad535fc..1d1097f 100644 --- a/Jellyfin.Plugin.TubeArchivistMetadata/Configuration/PluginConfiguration.cs +++ b/Jellyfin.Plugin.TubeArchivistMetadata/Configuration/PluginConfiguration.cs @@ -1,4 +1,8 @@ +using System; +using System.Data; +using Jellyfin.Plugin.TubeArchivistMetadata.Utilities; using MediaBrowser.Model.Plugins; +using Microsoft.Extensions.Logging; namespace Jellyfin.Plugin.TubeArchivistMetadata.Configuration { @@ -7,13 +11,25 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Configuration /// public class PluginConfiguration : BasePluginConfiguration { + private ILogger _logger; + private string _tubeArchivistUrl; + /// /// Initializes a new instance of the class. /// public PluginConfiguration() { + if (Plugin.Instance == null) + { + throw new DataException("Uninitialized plugin!"); + } + else + { + _logger = Plugin.Instance.Logger; + } + CollectionTitle = "YouTube"; - TubeArchivistUrl = string.Empty; + _tubeArchivistUrl = string.Empty; TubeArchivistApiKey = string.Empty; } @@ -25,7 +41,26 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Configuration /// /// Gets or sets TubeArchivist URL. /// - public string TubeArchivistUrl { get; set; } + public string TubeArchivistUrl + { + get + { + return _tubeArchivistUrl; + } + + set + { + if (value.StartsWith("http://", StringComparison.CurrentCulture) || value.StartsWith("https://", StringComparison.CurrentCulture)) + { + _tubeArchivistUrl = Utils.SanitizeUrl(value); + } + else + { + _logger.LogInformation("{Message}", "Given TubeArchivist URL contains no schema. Adding http://..."); + _tubeArchivistUrl = Utils.SanitizeUrl("http://" + value); + } + } + } /// /// Gets or sets TubeArchivist API key.