mirror of
https://github.com/Radarr/Radarr.git
synced 2024-09-11 03:52:33 +02:00
parent
1ff147c541
commit
27e871656e
@ -61,7 +61,7 @@ public class CleanseLogMessageFixture
|
||||
[TestCase(@"OutputPath=/home/mySecret/Downloads")]
|
||||
[TestCase("Hardlinking episode file: /home/mySecret/Downloads to /media/abc.mkv")]
|
||||
[TestCase("Hardlink '/home/mySecret/Downloads/abs.mkv' to '/media/abc.mkv' failed.")]
|
||||
[TestCase("https://discordnotifier.com/notifier.php: api=1234530f-422f-4aac-b6b3-01233210aaaa&radarr_health_issue_message=Download")]
|
||||
[TestCase("https://notifiarr.com/notifier.php: api=1234530f-422f-4aac-b6b3-01233210aaaa&radarr_health_issue_message=Download")]
|
||||
|
||||
// Announce URLs (passkeys) Magnet & Tracker
|
||||
[TestCase(@"magnet_uri"":""magnet:?xt=urn:btih:9pr04sgkillroyimaveql2tyu8xyui&dn=&tr=https%3a%2f%2fxxx.yyy%2f9pr04sg601233210imaveql2tyu8xyui%2fannounce""}")]
|
||||
|
@ -0,0 +1,15 @@
|
||||
using FluentMigrator;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using NzbDrone.Core.Datastore.Migration.Framework;
|
||||
|
||||
namespace NzbDrone.Core.Datastore.Migration
|
||||
{
|
||||
[Migration(195)]
|
||||
public class update_notifiarr : NzbDroneMigrationBase
|
||||
{
|
||||
protected override void MainDbUpgrade()
|
||||
{
|
||||
Execute.Sql("UPDATE Notifications SET Implementation = Replace(Implementation, 'DiscordNotifier', 'Notifiarr'),ConfigContract = Replace(ConfigContract, 'DiscordNotifierSettings', 'NotifiarrSettings') WHERE Implementation = 'DiscordNotifier';");
|
||||
}
|
||||
}
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
using System;
|
||||
using NzbDrone.Common.Exceptions;
|
||||
|
||||
namespace NzbDrone.Core.Notifications.DiscordNotifier
|
||||
{
|
||||
public class DiscordNotifierException : NzbDroneException
|
||||
{
|
||||
public DiscordNotifierException(string message)
|
||||
: base(message)
|
||||
{
|
||||
}
|
||||
|
||||
public DiscordNotifierException(string message, Exception innerException, params object[] args)
|
||||
: base(message, innerException, args)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
@ -6,19 +6,19 @@
|
||||
using FluentValidation.Results;
|
||||
using NzbDrone.Common.Extensions;
|
||||
|
||||
namespace NzbDrone.Core.Notifications.DiscordNotifier
|
||||
namespace NzbDrone.Core.Notifications.Notifiarr
|
||||
{
|
||||
public class DiscordNotifier : NotificationBase<DiscordNotifierSettings>
|
||||
public class Notifiarr : NotificationBase<NotifiarrSettings>
|
||||
{
|
||||
private readonly IDiscordNotifierProxy _proxy;
|
||||
private readonly INotifiarrProxy _proxy;
|
||||
|
||||
public DiscordNotifier(IDiscordNotifierProxy proxy)
|
||||
public Notifiarr(INotifiarrProxy proxy)
|
||||
{
|
||||
_proxy = proxy;
|
||||
}
|
||||
|
||||
public override string Link => "https://discordnotifier.com";
|
||||
public override string Name => "DiscordNotifier.com";
|
||||
public override string Link => "https://notifiarr.com";
|
||||
public override string Name => "Notifiarr";
|
||||
|
||||
public override void OnGrab(GrabMessage message)
|
||||
{
|
@ -0,0 +1,18 @@
|
||||
using System;
|
||||
using NzbDrone.Common.Exceptions;
|
||||
|
||||
namespace NzbDrone.Core.Notifications.Notifiarr
|
||||
{
|
||||
public class NotifiarrException : NzbDroneException
|
||||
{
|
||||
public NotifiarrException(string message)
|
||||
: base(message)
|
||||
{
|
||||
}
|
||||
|
||||
public NotifiarrException(string message, Exception innerException, params object[] args)
|
||||
: base(message, innerException, args)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
@ -7,40 +7,40 @@
|
||||
using NzbDrone.Common.EnvironmentInfo;
|
||||
using NzbDrone.Common.Http;
|
||||
|
||||
namespace NzbDrone.Core.Notifications.DiscordNotifier
|
||||
namespace NzbDrone.Core.Notifications.Notifiarr
|
||||
{
|
||||
public interface IDiscordNotifierProxy
|
||||
public interface INotifiarrProxy
|
||||
{
|
||||
void SendNotification(StringDictionary message, DiscordNotifierSettings settings);
|
||||
ValidationFailure Test(DiscordNotifierSettings settings);
|
||||
void SendNotification(StringDictionary message, NotifiarrSettings settings);
|
||||
ValidationFailure Test(NotifiarrSettings settings);
|
||||
}
|
||||
|
||||
public class DiscordNotifierProxy : IDiscordNotifierProxy
|
||||
public class NotifiarrProxy : INotifiarrProxy
|
||||
{
|
||||
private const string URL = "https://discordnotifier.com/notifier.php";
|
||||
private const string URL = "https://notifiarr.com/notifier.php";
|
||||
private readonly IHttpClient _httpClient;
|
||||
private readonly Logger _logger;
|
||||
|
||||
public DiscordNotifierProxy(IHttpClient httpClient, Logger logger)
|
||||
public NotifiarrProxy(IHttpClient httpClient, Logger logger)
|
||||
{
|
||||
_httpClient = httpClient;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
public void SendNotification(StringDictionary message, DiscordNotifierSettings settings)
|
||||
public void SendNotification(StringDictionary message, NotifiarrSettings settings)
|
||||
{
|
||||
try
|
||||
{
|
||||
ProcessNotification(message, settings);
|
||||
}
|
||||
catch (DiscordNotifierException ex)
|
||||
catch (NotifiarrException ex)
|
||||
{
|
||||
_logger.Error(ex, "Unable to send notification");
|
||||
throw new DiscordNotifierException("Unable to send notification");
|
||||
throw new NotifiarrException("Unable to send notification");
|
||||
}
|
||||
}
|
||||
|
||||
public ValidationFailure Test(DiscordNotifierSettings settings)
|
||||
public ValidationFailure Test(NotifiarrSettings settings)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -68,7 +68,7 @@ public ValidationFailure Test(DiscordNotifierSettings settings)
|
||||
}
|
||||
}
|
||||
|
||||
private void ProcessNotification(StringDictionary message, DiscordNotifierSettings settings)
|
||||
private void ProcessNotification(StringDictionary message, NotifiarrSettings settings)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -92,7 +92,7 @@ private void ProcessNotification(StringDictionary message, DiscordNotifierSettin
|
||||
throw;
|
||||
}
|
||||
|
||||
throw new DiscordNotifierException("Unable to send notification", ex);
|
||||
throw new NotifiarrException("Unable to send notification", ex);
|
||||
}
|
||||
}
|
||||
}
|
@ -3,21 +3,21 @@
|
||||
using NzbDrone.Core.ThingiProvider;
|
||||
using NzbDrone.Core.Validation;
|
||||
|
||||
namespace NzbDrone.Core.Notifications.DiscordNotifier
|
||||
namespace NzbDrone.Core.Notifications.Notifiarr
|
||||
{
|
||||
public class DiscordNotifierSettingsValidator : AbstractValidator<DiscordNotifierSettings>
|
||||
public class NotifiarrSettingsValidator : AbstractValidator<NotifiarrSettings>
|
||||
{
|
||||
public DiscordNotifierSettingsValidator()
|
||||
public NotifiarrSettingsValidator()
|
||||
{
|
||||
RuleFor(c => c.APIKey).NotEmpty();
|
||||
}
|
||||
}
|
||||
|
||||
public class DiscordNotifierSettings : IProviderConfig
|
||||
public class NotifiarrSettings : IProviderConfig
|
||||
{
|
||||
private static readonly DiscordNotifierSettingsValidator Validator = new DiscordNotifierSettingsValidator();
|
||||
private static readonly NotifiarrSettingsValidator Validator = new NotifiarrSettingsValidator();
|
||||
|
||||
[FieldDefinition(0, Label = "API Key", Privacy = PrivacyLevel.ApiKey, HelpText = "Your API key from your profile", HelpLink = "https://discordnotifier.com")]
|
||||
[FieldDefinition(0, Label = "API Key", Privacy = PrivacyLevel.ApiKey, HelpText = "Your API key from your profile", HelpLink = "https://notifiarr.com")]
|
||||
public string APIKey { get; set; }
|
||||
|
||||
public NzbDroneValidationResult Validate()
|
Loading…
Reference in New Issue
Block a user