summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWim <wim@42.be>2017-05-29 21:54:34 +0200
committerWim <wim@42.be>2017-05-29 21:54:34 +0200
commit9d9cb32f4efa78fcdbb49a84d221b5e731c336c2 (patch)
tree8b317d3921d70e75169511f8c853ac65458b3c0a
parent87229bab13d89d87284993f27a4c5c2afa762aa2 (diff)
downloadmatterbridge-msglm-9d9cb32f4efa78fcdbb49a84d221b5e731c336c2.tar.gz
matterbridge-msglm-9d9cb32f4efa78fcdbb49a84d221b5e731c336c2.tar.bz2
matterbridge-msglm-9d9cb32f4efa78fcdbb49a84d221b5e731c336c2.zip
Limit message length (irc). Closes #179
-rw-r--r--bridge/config/config.go1
-rw-r--r--bridge/irc/irc.go6
-rw-r--r--matterbridge.toml.sample7
3 files changed, 13 insertions, 1 deletions
diff --git a/bridge/config/config.go b/bridge/config/config.go
index 2cd53666..243f6601 100644
--- a/bridge/config/config.go
+++ b/bridge/config/config.go
@@ -59,6 +59,7 @@ type Protocol struct {
Protocol string //all protocols
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
RemoteNickFormat string // all protocols
Server string // IRC,mattermost,XMPP,discord
diff --git a/bridge/irc/irc.go b/bridge/irc/irc.go
index a9a23529..8bb8896e 100644
--- a/bridge/irc/irc.go
+++ b/bridge/irc/irc.go
@@ -46,6 +46,9 @@ func New(cfg config.Protocol, account string, c chan config.Message) *Birc {
if b.Config.MessageQueue == 0 {
b.Config.MessageQueue = 30
}
+ if b.Config.MessageLength == 0 {
+ b.Config.MessageLength = 400
+ }
return b
}
@@ -111,6 +114,9 @@ func (b *Birc) Send(msg config.Message) error {
b.Command(&msg)
}
for _, text := range strings.Split(msg.Text, "\n") {
+ if len(text) > b.Config.MessageLength {
+ text = text[:b.Config.MessageLength] + " <message clipped>"
+ }
if len(b.Local) < b.Config.MessageQueue {
if len(b.Local) == b.Config.MessageQueue-1 {
text = text + " <message clipped>"
diff --git a/matterbridge.toml.sample b/matterbridge.toml.sample
index f4d9af7a..4e1a3f70 100644
--- a/matterbridge.toml.sample
+++ b/matterbridge.toml.sample
@@ -48,10 +48,15 @@ MessageDelay=1300
#Maximum amount of messages to hold in queue. If queue is full
#messages will be dropped.
-#<clipped> will be add to the message that fills the queue.
+#<message clipped> will be add to the message that fills the queue.
#OPTIONAL (default 30)
MessageQueue=30
+#Maximum length of message sent to irc server. If it exceeds
+#<message clipped> will be add to the message.
+#OPTIONAL (default 400)
+MessageLength=400
+
#Nicks you want to ignore.
#Messages from those users will not be sent to other bridges.
#OPTIONAL