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.