Thumbnail

rani/matterbridge.git

Clone URL: https://git.buni.party/rani/matterbridge.git

commit c306b5086e920186052e87e82479351c8533f0a6 Author: Wim <wim@42.be> Date: Wed Apr 19 19:50:52 2017 +0000 Revert "Add support for edited messages (gitter)" This reverts commit 52ab543d5b9e2bcdaa36f726f3d573d4aab244d7. Reverted because of lingering file descriptors (memory leak) diff --git a/bridge/gitter/gitter.go b/bridge/gitter/gitter.go index a962f92..af71d89 100644 --- a/bridge/gitter/gitter.go +++ b/bridge/gitter/gitter.go @@ -212 +210 @@ package bgitter    import (   "fmt" - "strings" - "time" -   "github.com/42wim/matterbridge/bridge/config"   log "github.com/Sirupsen/logrus"   "github.com/sromku/go-gitter" + "strings"  )    type Bgitter struct { @@ -7348 +7127 @@ func (b *Bgitter) JoinChannel(channel string) error {   }   users, _ := b.c.GetUsersInRoom(roomID)   b.Users = append(b.Users, users...) - - // we need to use (experimental) faye for edits. - // streaming API doesn't show edits. - if !b.Config.EditDisable { - faye := b.c.Faye(roomID) - go faye.Listen() - go func(stream *gitter.Faye, room string) { - for event := range stream.Event { - b.handleEvent(event, room) - } - }(faye, room.Name) - return nil - }   stream := b.c.Stream(roomID)   go b.c.Listen(stream)     go func(stream *gitter.Stream, room string) {   for event := range stream.Event { - b.handleEvent(event, room) + switch ev := event.Data.(type) { + case *gitter.MessageReceived: + // check for ZWSP to see if it's not an echo + if !strings.HasSuffix(ev.Message.Text, "​") { + flog.Debugf("Sending message from %s on %s to gateway", ev.Message.From.Username, b.Account) + b.Remote <- config.Message{Username: ev.Message.From.Username, Text: ev.Message.Text, Channel: room, + Account: b.Account, Avatar: b.getAvatar(ev.Message.From.Username)} + } + case *gitter.GitterConnectionClosed: + flog.Errorf("connection with gitter closed for room %s", room) + }   }   }(stream, room.Name)   return nil  }   -func (b *Bgitter) handleEvent(event gitter.Event, room string) { - flog.Debugf("event: %#v %#v", event.Data, event.Data.(*gitter.MessageReceived).Message.EditedAt.Sub(time.Now()).String()) - switch ev := event.Data.(type) { - case *gitter.MessageReceived: - // check for ZWSP to see if it's not an echo - if !strings.HasSuffix(ev.Message.Text, "​") { - if !ev.Message.EditedAt.IsZero() && !b.Config.EditDisable { - ev.Message.Text = ev.Message.Text + b.Config.EditSuffix - } - flog.Debugf("Sending message from %s on %s to gateway", ev.Message.From.Username, b.Account) - b.Remote <- config.Message{Username: ev.Message.From.Username, Text: ev.Message.Text, Channel: room, - Account: b.Account, Avatar: b.getAvatar(ev.Message.From.Username)} - } - case *gitter.GitterConnectionClosed: - flog.Errorf("connection with gitter closed for room %s", room) - } -} -  func (b *Bgitter) Send(msg config.Message) error {   flog.Debugf("Receiving %#v", msg)   roomID := b.getRoomID(msg.Channel) diff --git a/changelog.md b/changelog.md index 035ac2e..485fdb3 100644 --- a/changelog.md +++ b/changelog.md @@ -118 +111 @@  # v0.12.0  ## Changes -* general: edited messages are now being sent by default on discord/mattermost/telegram/gitter/slack. See "New Features" -* gitter: The default support for edited messages enables experimental FAYE support for gitter. - If you need stable code add EditDisable=true to your gitter configuration. +* general: edited messages are now being sent by default on discord/mattermost/telegram/slack. See "New Features"    ## New features  * general: add support for edited messages.   Add new keyword EditDisable (false/true), default false. Which means by default edited messages will be sent to other bridges. - Add new keyword EditSuffix , default "". You can change this eg to " (edited)", this will be appended to every edit message. - -* discord: Add support for edited messages. See EditDisable/EditSuffix -* mattermost: Add support for edited messages. See EditDisable/EditSuffix -* telegram: Add support for edited messages. See EditDisable/EditSuffix -* gitter: Add support for edited messages. See EditDisable/EditSuffix + Add new keyword EditSuffix , default "". You can change this eg to "(edited)", this will be appended to every edit message.    ## Enhancements  * discord: Strip custom emoji metadata (discord). Closes #148 diff --git a/matterbridge.toml.sample b/matterbridge.toml.sample index 531dba7..33dfca0 100644 --- a/matterbridge.toml.sample +++ b/matterbridge.toml.sample @@ -28215 +2826 @@ ShowJoinPart=false  #REQUIRED  Token="Yourtokenhere"   -#Disable sending of edits to other bridges -#WARNING: the default uses FAYE which is experimental. If you need stability set EditDisable=true -#OPTIONAL (default false) -EditDisable=true - -#Message to be appended to every edited message -#OPTIONAL (default empty) -EditSuffix=" (edited)" -  #Nicks you want to ignore.  #Messages from those users will not be sent to other bridges.  #OPTIONAL