New: Pushover device setting

This commit is contained in:
Mark McDowall 2018-09-03 11:13:15 -07:00 committed by Taloth Saldono
parent a86397f4bd
commit 8594a93cf5
3 changed files with 12 additions and 6 deletions

View File

@ -1,4 +1,4 @@
using System; using System;
using FluentValidation.Results; using FluentValidation.Results;
using NLog; using NLog;
using NzbDrone.Common.Extensions; using NzbDrone.Common.Extensions;
@ -29,6 +29,7 @@ namespace NzbDrone.Core.Notifications.Pushover
var request = new RestRequest(Method.POST); var request = new RestRequest(Method.POST);
request.AddParameter("token", settings.ApiKey); request.AddParameter("token", settings.ApiKey);
request.AddParameter("user", settings.UserKey); request.AddParameter("user", settings.UserKey);
request.AddParameter("device", string.Join(",", settings.Devices));
request.AddParameter("title", title); request.AddParameter("title", title);
request.AddParameter("message", message); request.AddParameter("message", message);
request.AddParameter("priority", settings.Priority); request.AddParameter("priority", settings.Priority);

View File

@ -2,6 +2,7 @@ using FluentValidation;
using NzbDrone.Core.Annotations; using NzbDrone.Core.Annotations;
using NzbDrone.Core.ThingiProvider; using NzbDrone.Core.ThingiProvider;
using NzbDrone.Core.Validation; using NzbDrone.Core.Validation;
using System.Collections.Generic;
namespace NzbDrone.Core.Notifications.Pushover namespace NzbDrone.Core.Notifications.Pushover
{ {
@ -22,6 +23,7 @@ namespace NzbDrone.Core.Notifications.Pushover
public PushoverSettings() public PushoverSettings()
{ {
Priority = 0; Priority = 0;
Devices = new string[] { };
} }
//TODO: Get Pushover to change our app name (or create a new app) when we have a new logo //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/")] [FieldDefinition(1, Label = "User Key", HelpLink = "https://pushover.net/")]
public string UserKey { get; set; } 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<string> Devices { get; set; }
[FieldDefinition(3, Label = "Priority", Type = FieldType.Select, SelectOptions = typeof(PushoverPriority) )]
public int Priority { get; set; } 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; } 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; } 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 string Sound { get; set; }
public bool IsValid => !string.IsNullOrWhiteSpace(UserKey) && Priority >= -1 && Priority <= 2; public bool IsValid => !string.IsNullOrWhiteSpace(UserKey) && Priority >= -1 && Priority <= 2;

View File

@ -1066,7 +1066,7 @@
<Compile Include="Notifications\Pushover\InvalidResponseException.cs" /> <Compile Include="Notifications\Pushover\InvalidResponseException.cs" />
<Compile Include="Notifications\Pushover\Pushover.cs" /> <Compile Include="Notifications\Pushover\Pushover.cs" />
<Compile Include="Notifications\Pushover\PushoverPriority.cs" /> <Compile Include="Notifications\Pushover\PushoverPriority.cs" />
<Compile Include="Notifications\Pushover\PushoverService.cs" /> <Compile Include="Notifications\Pushover\PushoverProxy.cs" />
<Compile Include="Notifications\Pushover\PushoverSettings.cs" /> <Compile Include="Notifications\Pushover\PushoverSettings.cs" />
<Compile Include="Notifications\Xbmc\XbmcJsonException.cs" /> <Compile Include="Notifications\Xbmc\XbmcJsonException.cs" />
<Compile Include="Notifications\Xbmc\HttpApiProvider.cs" /> <Compile Include="Notifications\Xbmc\HttpApiProvider.cs" />