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.