From 371ea0d7332948e4c40bc5393f3b073d430ec302 Mon Sep 17 00:00:00 2001 From: Patrick Connolly Date: Thu, 15 Nov 2018 20:22:21 +0800 Subject: [PATCH] Added ability to handle cleared topics/purposes. --- bridge/slack/helpers.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/bridge/slack/helpers.go b/bridge/slack/helpers.go index 194832d4..4f58a46b 100644 --- a/bridge/slack/helpers.go +++ b/bridge/slack/helpers.go @@ -266,13 +266,19 @@ var ( channelRE = regexp.MustCompile(`<#[a-zA-Z0-9]+\|(.+?)>`) variableRE = regexp.MustCompile(``) urlRE = regexp.MustCompile(`<(.*?)(\|.*?)?>`) - topicOrPurposeRE = regexp.MustCompile(`(?s)^@.+ set the channel (topic|purpose): (.+?)$`) + topicOrPurposeRE = regexp.MustCompile(`(?s)(@.+) (cleared|set)(?: the)? channel (topic|purpose)(?:: (.*))?`) ) -func (b *Bslack) extractTopicOrPurpose(text string) (updateType string, extracted string) { +func (b *Bslack) extractTopicOrPurpose(text string) (string, string) { r := topicOrPurposeRE.FindStringSubmatch(text) - updateType, extracted = r[1], r[2] - return updateType, extracted + action, updateType, extracted := r[2], r[3], r[4] + switch action { + case "set": + return updateType, extracted + case "cleared": + return updateType, "" + } + return "", "" } // @see https://api.slack.com/docs/message-formatting#linking_to_channels_and_users