diff options
author | Wim <wim@42.be> | 2017-05-29 21:54:34 +0200 |
---|---|---|
committer | Wim <wim@42.be> | 2017-05-29 21:54:34 +0200 |
commit | 9d9cb32f4efa78fcdbb49a84d221b5e731c336c2 (patch) | |
tree | 8b317d3921d70e75169511f8c853ac65458b3c0a | |
parent | 87229bab13d89d87284993f27a4c5c2afa762aa2 (diff) | |
download | matterbridge-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.go | 1 | ||||
-rw-r--r-- | bridge/irc/irc.go | 6 | ||||
-rw-r--r-- | matterbridge.toml.sample | 7 |
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 |