Radarr/src/NzbDrone.Core/ImportLists/CouchPotato/CouchPotatoSettings.cs

50 lines
1.8 KiB
C#

using FluentValidation;
using NzbDrone.Core.Annotations;
using NzbDrone.Core.Validation;
namespace NzbDrone.Core.ImportLists.CouchPotato
{
public class CouchPotatoSettingsValidator : AbstractValidator<CouchPotatoSettings>
{
public CouchPotatoSettingsValidator()
{
RuleFor(c => c.Link).ValidRootUrl();
RuleFor(c => c.Port).InclusiveBetween(1, 65535);
RuleFor(c => c.ApiKey).NotEmpty();
}
}
public class CouchPotatoSettings : ImportListSettingsBase<CouchPotatoSettings>
{
private static readonly CouchPotatoSettingsValidator Validator = new ();
public CouchPotatoSettings()
{
Link = "http://localhost";
Port = 5050;
UrlBase = "";
OnlyActive = true;
}
[FieldDefinition(0, Label = "CouchPotato URL", HelpText = "URL to access your CouchPotato instance.")]
public string Link { get; set; }
[FieldDefinition(1, Label = "CouchPotato Port", HelpText = "Port your CouchPotato instance uses.")]
public int Port { get; set; }
[FieldDefinition(2, Label = "CouchPotato Url Base", HelpText = "If you have CouchPotato configured via reverse proxy put the base path here. e.g. couchpotato. Leave blank for no base URL.")]
public string UrlBase { get; set; }
[FieldDefinition(3, Label = "CouchPotato API Key", Privacy = PrivacyLevel.ApiKey, HelpText = "CouchPotato API Key. This can found within Settings > General")]
public string ApiKey { get; set; }
[FieldDefinition(4, Label = "Only Wanted", HelpText = "Only add wanted movies.", Type = FieldType.Checkbox)]
public bool OnlyActive { get; set; }
public override NzbDroneValidationResult Validate()
{
return new NzbDroneValidationResult(Validator.Validate(this));
}
}
}