diff options
author | Patrick Connolly <patrick.c.connolly@gmail.com> | 2018-11-07 16:14:31 +0800 |
---|---|---|
committer | Wim <wim@42.be> | 2018-11-07 09:14:31 +0100 |
commit | a20b7895a9414882934d0160daefd5e6ef888a24 (patch) | |
tree | 0298ccedefe4a283f376f42153dc95318b91dcdd /bridge/slack | |
parent | 5666821e7bc02d5b3b5afb21355be911ff32bfbc (diff) | |
download | matterbridge-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.go | 2 | ||||
-rw-r--r-- | bridge/slack/slack.go | 4 |
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 } |