mirror of https://github.com/Radarr/Radarr
50 lines
1.8 KiB
C#
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));
|
|
}
|
|
}
|
|
}
|