summaryrefslogtreecommitdiffstats
path: root/bridge/slack
diff options
context:
space:
mode:
authorPatrick Connolly <patrick.c.connolly@gmail.com>2018-11-07 16:14:31 +0800
committerWim <wim@42.be>2018-11-07 09:14:31 +0100
commita20b7895a9414882934d0160daefd5e6ef888a24 (patch)
tree0298ccedefe4a283f376f42153dc95318b91dcdd /bridge/slack
parent5666821e7bc02d5b3b5afb21355be911ff32bfbc (diff)
downloadmatterbridge-msglm-a20b7895a9414882934d0160daefd5e6ef888a24.tar.gz
matterbridge-msglm-a20b7895a9414882934d0160daefd5e6ef888a24.tar.bz2
matterbridge-msglm-a20b7895a9414882934d0160daefd5e6ef888a24.zip
Preserve threading between Slack instances (#529)
* Opportunistically preserve Slack threading when parent thread in cache. [#529] * Removed slack-specific processing from gateway. * Added docs. * Add option to enable threading, with default to off. * Did cleanup on @42wim's comments. * Update gateway/gateway.go Co-Authored-By: patcon <patrick.c.connolly@gmail.com> * Suggestion from @42wim :) * Suggestions from @42wim. * More suggestions.
Diffstat (limited to 'bridge/slack')
-rw-r--r--bridge/slack/handlers.go2
-rw-r--r--bridge/slack/slack.go4
2 files changed, 6 insertions, 0 deletions
diff --git a/bridge/slack/handlers.go b/bridge/slack/handlers.go
index b6400a80..1428cba2 100644
--- a/bridge/slack/handlers.go
+++ b/bridge/slack/handlers.go
@@ -171,8 +171,10 @@ func (b *Bslack) handleMessageEvent(ev *slack.MessageEvent) (*config.Message, er
Account: b.Account,
ID: "slack " + ev.Timestamp,
Extra: map[string][]interface{}{},
+ ParentID: ev.ThreadTimestamp,
}
+
if b.useChannelID {
rmsg.Channel = "ID:" + channelInfo.ID
}
diff --git a/bridge/slack/slack.go b/bridge/slack/slack.go
index 2022ebce..d2d118b2 100644
--- a/bridge/slack/slack.go
+++ b/bridge/slack/slack.go
@@ -310,6 +310,10 @@ func (b *Bslack) prepareMessageParameters(msg *config.Message) *slack.PostMessag
params.Username = msg.Username
params.LinkNames = 1 // replace mentions
params.IconURL = config.GetIconURL(msg, b.GetString(iconURLConfig))
+ msgFields := strings.Fields(msg.ParentID)
+ if len(msgFields) >= 2 {
+ params.ThreadTimestamp = msgFields[1]
+ }
if msg.Avatar != "" {
params.IconURL = msg.Avatar
}