diff --git a/src/NzbDrone.Core/Notifications/Slack/Payloads/SlackPayload.cs b/src/NzbDrone.Core/Notifications/Slack/Payloads/SlackPayload.cs index 09953c115..ef0afaa21 100644 --- a/src/NzbDrone.Core/Notifications/Slack/Payloads/SlackPayload.cs +++ b/src/NzbDrone.Core/Notifications/Slack/Payloads/SlackPayload.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using Newtonsoft.Json; namespace NzbDrone.Core.Notifications.Slack.Payloads @@ -15,6 +15,8 @@ namespace NzbDrone.Core.Notifications.Slack.Payloads [JsonProperty("icon_url")] public string IconUrl { get; set; } + public string Channel { get; set; } + public List Attachments { get; set; } } } diff --git a/src/NzbDrone.Core/Notifications/Slack/Slack.cs b/src/NzbDrone.Core/Notifications/Slack/Slack.cs index cbb0cb975..c8afe6e00 100644 --- a/src/NzbDrone.Core/Notifications/Slack/Slack.cs +++ b/src/NzbDrone.Core/Notifications/Slack/Slack.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using FluentValidation.Results; using NLog; @@ -107,6 +107,7 @@ namespace NzbDrone.Core.Notifications.Slack private SlackPayload CreatePayload(string message, List attachments = null) { var icon = Settings.Icon; + var channel = Settings.Channel; var payload = new SlackPayload { @@ -128,6 +129,11 @@ namespace NzbDrone.Core.Notifications.Slack } } + if (channel.IsNotNullOrWhiteSpace()) + { + payload.Channel = channel; + } + return payload; } } diff --git a/src/NzbDrone.Core/Notifications/Slack/SlackSettings.cs b/src/NzbDrone.Core/Notifications/Slack/SlackSettings.cs index bef9b5d69..89608f083 100644 --- a/src/NzbDrone.Core/Notifications/Slack/SlackSettings.cs +++ b/src/NzbDrone.Core/Notifications/Slack/SlackSettings.cs @@ -1,4 +1,4 @@ -using FluentValidation; +using FluentValidation; using NzbDrone.Core.Annotations; using NzbDrone.Core.ThingiProvider; using NzbDrone.Core.Validation; @@ -27,6 +27,9 @@ namespace NzbDrone.Core.Notifications.Slack [FieldDefinition(2, Label = "Icon", HelpText = "Change the icon that is used for messages from this integration (Emoji or URL)", Type = FieldType.Textbox, HelpLink = "http://www.emoji-cheat-sheet.com/")] public string Icon { get; set; } + [FieldDefinition(3, Label = "Channel", HelpText = "Overrides the default channel for the incoming webhook (#other-channel)", Type = FieldType.Textbox)] + public string Channel { get; set; } + public NzbDroneValidationResult Validate() { return new NzbDroneValidationResult(Validator.Validate(this));