commit a501a5e5a19ea6bff02916c4c6059d456014beaa
Author: Wim <wim@42.be>
Date: Fri Nov 24 23:27:13 2017 +0000
diff --git a/bridge/config/config.go b/bridge/config/config.go
index 8a13b48..47e2a1d 100644
--- a/bridge/config/config.go
+++ b/bridge/config/config.go
@@ -6210 +6211 @@ type Protocol struct {
Login string // mattermost, matrix
MediaServerDownload string
MediaServerUpload string
- MessageQueue int // IRC, size of message queue for flood control
MessageDelay int // IRC, time in millisecond to wait between messages
- MessageLength int // IRC, max length of a message allowed
MessageFormat string // telegram
+ MessageLength int // IRC, max length of a message allowed
+ MessageQueue int // IRC, size of message queue for flood control
+ MessageSplit bool // IRC, split long messages with newlines on MessageLength instead of clipping
Muc string // xmpp
Name string // all protocols
Nick string // all protocols
diff --git a/bridge/helper/helper.go b/bridge/helper/helper.go
index ecfc4df..0b6be4f 100644
--- a/bridge/helper/helper.go
+++ b/bridge/helper/helper.go
@@ -263 +2615 @@ func DownloadFile(url string) (*[]byte, error) {
resp.Body.Close()
return &data, nil
}
+
+func SplitStringLength(input string, length int) string {
+ a := []rune(input)
+ str := ""
+ for i, r := range a {
+ str = str + string(r)
+ if i > 0 && (i+1)%length == 0 {
+ str += "\n"
+ }
+ }
+ return str
+}
diff --git a/bridge/irc/irc.go b/bridge/irc/irc.go
index 2d56bbc..4fd5a8a 100644
--- a/bridge/irc/irc.go
+++ b/bridge/irc/irc.go
@@ -56 +57 @@ import (
"crypto/tls"
"fmt"
"github.com/42wim/matterbridge/bridge/config"
+ "github.com/42wim/matterbridge/bridge/helper"
log "github.com/Sirupsen/logrus"
"github.com/lrstanley/girc"
"github.com/paulrosania/go-charset/charset"
@@ -1916 +19210 @@ func (b *Birc) Send(msg config.Message) (string, error) {
}
}
+ // split long messages on messageLength, to avoid clipped messages #281
+ if b.Config.MessageSplit {
+ msg.Text = helper.SplitStringLength(msg.Text, b.Config.MessageLength)
+ }
for _, text := range strings.Split(msg.Text, "\n") {
if len(text) > b.Config.MessageLength {
text = text[:b.Config.MessageLength] + " <message clipped>"
diff --git a/matterbridge.toml.sample b/matterbridge.toml.sample
index b6a674e..7552d39 100644
--- a/matterbridge.toml.sample
+++ b/matterbridge.toml.sample
@@ -806 +8011 @@ MessageQueue=30
#OPTIONAL (default 400)
MessageLength=400
+#Split messages on MessageLength instead of showing the <message clipped>
+#WARNING: this could lead to flooding
+#OPTIONAL (default false)
+MessageSplit=false
+
#Nicks you want to ignore.
#Messages from those users will not be sent to other bridges.
#OPTIONAL