From 8594a93cf5d1b1504bb12737a581c5c9fb19e498 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Mon, 3 Sep 2018 11:13:15 -0700 Subject: [PATCH] New: Pushover device setting --- .../{PushoverService.cs => PushoverProxy.cs} | 3 ++- .../Notifications/Pushover/PushoverSettings.cs | 13 +++++++++---- src/NzbDrone.Core/NzbDrone.Core.csproj | 2 +- 3 files changed, 12 insertions(+), 6 deletions(-) rename src/NzbDrone.Core/Notifications/Pushover/{PushoverService.cs => PushoverProxy.cs} (95%) diff --git a/src/NzbDrone.Core/Notifications/Pushover/PushoverService.cs b/src/NzbDrone.Core/Notifications/Pushover/PushoverProxy.cs similarity index 95% rename from src/NzbDrone.Core/Notifications/Pushover/PushoverService.cs rename to src/NzbDrone.Core/Notifications/Pushover/PushoverProxy.cs index 63684f012..d032220eb 100644 --- a/src/NzbDrone.Core/Notifications/Pushover/PushoverService.cs +++ b/src/NzbDrone.Core/Notifications/Pushover/PushoverProxy.cs @@ -1,4 +1,4 @@ -using System; +using System; using FluentValidation.Results; using NLog; using NzbDrone.Common.Extensions; @@ -29,6 +29,7 @@ namespace NzbDrone.Core.Notifications.Pushover var request = new RestRequest(Method.POST); request.AddParameter("token", settings.ApiKey); request.AddParameter("user", settings.UserKey); + request.AddParameter("device", string.Join(",", settings.Devices)); request.AddParameter("title", title); request.AddParameter("message", message); request.AddParameter("priority", settings.Priority); diff --git a/src/NzbDrone.Core/Notifications/Pushover/PushoverSettings.cs b/src/NzbDrone.Core/Notifications/Pushover/PushoverSettings.cs index 18e3cfa6d..d6409d0e8 100644 --- a/src/NzbDrone.Core/Notifications/Pushover/PushoverSettings.cs +++ b/src/NzbDrone.Core/Notifications/Pushover/PushoverSettings.cs @@ -2,6 +2,7 @@ using FluentValidation; using NzbDrone.Core.Annotations; using NzbDrone.Core.ThingiProvider; using NzbDrone.Core.Validation; +using System.Collections.Generic; namespace NzbDrone.Core.Notifications.Pushover { @@ -22,6 +23,7 @@ namespace NzbDrone.Core.Notifications.Pushover public PushoverSettings() { Priority = 0; + Devices = new string[] { }; } //TODO: Get Pushover to change our app name (or create a new app) when we have a new logo @@ -31,16 +33,19 @@ namespace NzbDrone.Core.Notifications.Pushover [FieldDefinition(1, Label = "User Key", HelpLink = "https://pushover.net/")] public string UserKey { get; set; } - [FieldDefinition(2, Label = "Priority", Type = FieldType.Select, SelectOptions = typeof(PushoverPriority) )] + [FieldDefinition(2, Label = "Devices", HelpText = "List of device names (leave blank to send to all devices)", Type = FieldType.Tag)] + public IEnumerable Devices { get; set; } + + [FieldDefinition(3, Label = "Priority", Type = FieldType.Select, SelectOptions = typeof(PushoverPriority) )] public int Priority { get; set; } - [FieldDefinition(3, Label = "Retry", Type = FieldType.Textbox, HelpText = "Interval to retry Emergency alerts, minimum 30 seconds")] + [FieldDefinition(4, Label = "Retry", Type = FieldType.Textbox, HelpText = "Interval to retry Emergency alerts, minimum 30 seconds")] public int Retry { get; set; } - [FieldDefinition(4, Label = "Expire", Type = FieldType.Textbox, HelpText = "Maximum time to retry Emergency alerts, maximum 86400 seconds")] + [FieldDefinition(5, Label = "Expire", Type = FieldType.Textbox, HelpText = "Maximum time to retry Emergency alerts, maximum 86400 seconds")] public int Expire { get; set; } - [FieldDefinition(5, Label = "Sound", Type = FieldType.Textbox, HelpText = "Notification sound, leave blank to use the default", HelpLink = "https://pushover.net/api#sounds")] + [FieldDefinition(6, Label = "Sound", Type = FieldType.Textbox, HelpText = "Notification sound, leave blank to use the default", HelpLink = "https://pushover.net/api#sounds")] public string Sound { get; set; } public bool IsValid => !string.IsNullOrWhiteSpace(UserKey) && Priority >= -1 && Priority <= 2; diff --git a/src/NzbDrone.Core/NzbDrone.Core.csproj b/src/NzbDrone.Core/NzbDrone.Core.csproj index 728484f11..d7e0dfd51 100644 --- a/src/NzbDrone.Core/NzbDrone.Core.csproj +++ b/src/NzbDrone.Core/NzbDrone.Core.csproj @@ -1066,7 +1066,7 @@ - +