using System;
using System.Data;
using Jellyfin.Plugin.TubeArchivistMetadata.Utilities;
using MediaBrowser.Model.Plugins;
using Microsoft.Extensions.Logging;
namespace Jellyfin.Plugin.TubeArchivistMetadata.Configuration
{
///
/// Plugin configuration.
///
public class PluginConfiguration : BasePluginConfiguration
{
private ILogger _logger;
private string _tubeArchivistUrl;
private string _tubeArchivistApiKey;
///
/// Initializes a new instance of the class.
///
public PluginConfiguration()
{
if (Plugin.Instance == null)
{
throw new DataException("Uninitialized plugin!");
}
else
{
_logger = Plugin.Instance.Logger;
}
CollectionTitle = string.Empty;
_tubeArchivistUrl = string.Empty;
_tubeArchivistApiKey = string.Empty;
MaxDescriptionLength = 500;
}
///
/// Gets or sets TubeArchivist collection display name.
///
public string CollectionTitle { get; set; }
///
/// Gets or sets TubeArchivist URL.
///
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);
}
Plugin.Instance?.LogTAApiConnectionStatus();
}
}
///
/// Gets or sets TubeArchivist API key.
///
public string TubeArchivistApiKey
{
get
{
return _tubeArchivistApiKey;
}
set
{
_tubeArchivistApiKey = value;
Plugin.Instance?.LogTAApiConnectionStatus();
}
}
///
/// Gets or sets maximum series and episodes overviews length.
///
public int MaxDescriptionLength { get; set; }
}
}