From 7be4a376eff976ce239d127e945a96e2ac9df0bd Mon Sep 17 00:00:00 2001 From: Qstick Date: Sun, 3 Dec 2017 15:58:29 -0500 Subject: [PATCH] New: Channel setting for Slack notifications to override default channel --- .../Notifications/Slack/Payloads/SlackPayload.cs | 2 ++ src/NzbDrone.Core/Notifications/Slack/Slack.cs | 6 ++++++ src/NzbDrone.Core/Notifications/Slack/SlackSettings.cs | 3 +++ 3 files changed, 11 insertions(+) diff --git a/src/NzbDrone.Core/Notifications/Slack/Payloads/SlackPayload.cs b/src/NzbDrone.Core/Notifications/Slack/Payloads/SlackPayload.cs index c67f4c55a..ef0afaa21 100644 --- a/src/NzbDrone.Core/Notifications/Slack/Payloads/SlackPayload.cs +++ b/src/NzbDrone.Core/Notifications/Slack/Payloads/SlackPayload.cs @@ -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 44614c0ca..fdec42749 100644 --- a/src/NzbDrone.Core/Notifications/Slack/Slack.cs +++ b/src/NzbDrone.Core/Notifications/Slack/Slack.cs @@ -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 80fbfce0e..89608f083 100644 --- a/src/NzbDrone.Core/Notifications/Slack/SlackSettings.cs +++ b/src/NzbDrone.Core/Notifications/Slack/SlackSettings.cs @@ -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));