diff options
author | Wim <wim@42.be> | 2019-03-02 22:58:14 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-02 22:58:14 +0100 |
commit | 53aa0765554a899ba57acd4cb7086b4e69fe8ac8 (patch) | |
tree | 5ce268731c5e8476612f1d348c24e56d0592dd17 /bridge/rocketchat/handlers.go | |
parent | f57370f33abf7e2d61d39f4867c9c95f9fc6cd8c (diff) | |
download | matterbridge-msglm-53aa0765554a899ba57acd4cb7086b4e69fe8ac8.tar.gz matterbridge-msglm-53aa0765554a899ba57acd4cb7086b4e69fe8ac8.tar.bz2 matterbridge-msglm-53aa0765554a899ba57acd4cb7086b4e69fe8ac8.zip |
Do not send duplicate messages (rocketchat). Fixes #745 (#752)
For an unknown reason we get duplicate messages (from the same channel)
using the realtime API when we have > 1 channel subscribed on.
Solution for now is caching the message ID in a LRU cache and ignoring
the duplicates.
This should be reviewed when we have actual editing support from the
realtime API
Diffstat (limited to 'bridge/rocketchat/handlers.go')
-rw-r--r-- | bridge/rocketchat/handlers.go | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/bridge/rocketchat/handlers.go b/bridge/rocketchat/handlers.go index b44ea46f..a41004d4 100644 --- a/bridge/rocketchat/handlers.go +++ b/bridge/rocketchat/handlers.go @@ -40,6 +40,11 @@ func (b *Brocketchat) handleRocketHook(messages chan *config.Message) { func (b *Brocketchat) handleRocketClient(messages chan *config.Message) { for message := range b.messageChan { + // skip messages with same ID, apparently messages get duplicated for an unknown reason + if _, ok := b.cache.Get(message.ID); ok { + continue + } + b.cache.Add(message.ID, true) b.Log.Debugf("message %#v", message) m := message if b.skipMessage(&m) { |