summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bridge/config/config.go1
-rw-r--r--gateway/gateway.go18
-rw-r--r--matterbridge.toml.sample60
3 files changed, 79 insertions, 0 deletions
diff --git a/bridge/config/config.go b/bridge/config/config.go
index 4b3c4250..f79c40d0 100644
--- a/bridge/config/config.go
+++ b/bridge/config/config.go
@@ -44,6 +44,7 @@ type Protocol struct {
EditDisable bool // mattermost, slack, discord, telegram, gitter
IconURL string // mattermost, slack
IgnoreNicks string // all protocols
+ IgnoreMessages string // all protocols
Jid string // xmpp
Login string // mattermost, matrix
Muc string // xmpp
diff --git a/gateway/gateway.go b/gateway/gateway.go
index 2fa5a0bb..d2c6c220 100644
--- a/gateway/gateway.go
+++ b/gateway/gateway.go
@@ -5,6 +5,7 @@ import (
"github.com/42wim/matterbridge/bridge"
"github.com/42wim/matterbridge/bridge/config"
log "github.com/Sirupsen/logrus"
+ "regexp"
"strings"
"time"
)
@@ -197,6 +198,9 @@ func (gw *Gateway) handleMessage(msg config.Message, dest *bridge.Bridge) {
log.Debug("empty channel")
return
}
+ // hide message from bridge
+ //if msg.Text HideMessagesPrefix
+
originchannel := msg.Channel
origmsg := msg
for _, channel := range gw.DestChannelFunc(&msg, *dest) {
@@ -230,6 +234,20 @@ func (gw *Gateway) ignoreMessage(msg *config.Message) bool {
return true
}
}
+ // TODO do not compile regexps everytime
+ for _, entry := range strings.Fields(gw.Bridges[msg.Account].Config.IgnoreMessages) {
+ if entry != "" {
+ re, err := regexp.Compile(entry)
+ if err != nil {
+ log.Errorf("incorrect regexp %s for %s", entry, msg.Account)
+ continue
+ }
+ if re.MatchString(msg.Text) {
+ log.Debugf("matching %s. ignoring %s from %s", entry, msg.Text, msg.Account)
+ return true
+ }
+ }
+ }
return false
}
diff --git a/matterbridge.toml.sample b/matterbridge.toml.sample
index bcbab627..ecc921b1 100644
--- a/matterbridge.toml.sample
+++ b/matterbridge.toml.sample
@@ -63,6 +63,12 @@ MessageLength=400
#OPTIONAL
IgnoreNicks="ircspammer1 ircspammer2"
+#Messages you want to ignore.
+#Messages matching these regexp will be ignored and not sent to other bridges
+#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
+#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
+IgnoreMessages="^~~ badword"
+
#RemoteNickFormat defines how remote users appear on this bridge
#The string "{NICK}" (case sensitive) will be replaced by the actual nick / username.
#The string "{BRIDGE}" (case sensitive) will be replaced by the sending bridge
@@ -115,6 +121,12 @@ SkipTLSVerify=true
#OPTIONAL
IgnoreNicks="ircspammer1 ircspammer2"
+#Messages you want to ignore.
+#Messages matching these regexp will be ignored and not sent to other bridges
+#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
+#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
+IgnoreMessages="^~~ badword"
+
#RemoteNickFormat defines how remote users appear on this bridge
#The string "{NICK}" (case sensitive) will be replaced by the actual nick / username.
#The string "{BRIDGE}" (case sensitive) will be replaced by the sending bridge
@@ -159,6 +171,12 @@ Nick="yourlogin"
#OPTIONAL
IgnoreNicks="spammer1 spammer2"
+#Messages you want to ignore.
+#Messages matching these regexp will be ignored and not sent to other bridges
+#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
+#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
+IgnoreMessages="^~~ badword"
+
#RemoteNickFormat defines how remote users appear on this bridge
#The string "{NICK}" (case sensitive) will be replaced by the actual nick / username.
#The string "{BRIDGE}" (case sensitive) will be replaced by the sending bridge
@@ -261,6 +279,12 @@ EditSuffix=" (edited)"
#OPTIONAL
IgnoreNicks="ircspammer1 ircspammer2"
+#Messages you want to ignore.
+#Messages matching these regexp will be ignored and not sent to other bridges
+#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
+#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
+IgnoreMessages="^~~ badword"
+
#RemoteNickFormat defines how remote users appear on this bridge
#The string "{NICK}" (case sensitive) will be replaced by the actual nick / username.
#The string "{BRIDGE}" (case sensitive) will be replaced by the sending bridge
@@ -294,6 +318,12 @@ Token="Yourtokenhere"
#OPTIONAL
IgnoreNicks="ircspammer1 ircspammer2"
+#Messages you want to ignore.
+#Messages matching these regexp will be ignored and not sent to other bridges
+#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
+#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
+IgnoreMessages="^~~ badword"
+
#RemoteNickFormat defines how remote users appear on this bridge
#The string "{NICK}" (case sensitive) will be replaced by the actual nick / username.
#The string "{BRIDGE}" (case sensitive) will be replaced by the sending bridge
@@ -383,6 +413,12 @@ PrefixMessagesWithNick=false
#OPTIONAL
IgnoreNicks="ircspammer1 ircspammer2"
+#Messages you want to ignore.
+#Messages matching these regexp will be ignored and not sent to other bridges
+#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
+#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
+IgnoreMessages="^~~ badword"
+
#RemoteNickFormat defines how remote users appear on this bridge
#The string "{NICK}" (case sensitive) will be replaced by the actual nick / username.
#The string "{BRIDGE}" (case sensitive) will be replaced by the sending bridge
@@ -427,6 +463,12 @@ EditSuffix=" (edited)"
#OPTIONAL
IgnoreNicks="ircspammer1 ircspammer2"
+#Messages you want to ignore.
+#Messages matching these regexp will be ignored and not sent to other bridges
+#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
+#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
+IgnoreMessages="^~~ badword"
+
#RemoteNickFormat defines how remote users appear on this bridge
#The string "{NICK}" (case sensitive) will be replaced by the actual nick / username.
#The string "{BRIDGE}" (case sensitive) will be replaced by the sending bridge
@@ -477,6 +519,12 @@ EditSuffix=" (edited)"
#OPTIONAL
IgnoreNicks="spammer1 spammer2"
+#Messages you want to ignore.
+#Messages matching these regexp will be ignored and not sent to other bridges
+#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
+#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
+IgnoreMessages="^~~ badword"
+
#RemoteNickFormat defines how remote users appear on this bridge
#The string "{NICK}" (case sensitive) will be replaced by the actual nick / username.
#The string "{BRIDGE}" (case sensitive) will be replaced by the sending bridge
@@ -535,6 +583,12 @@ PrefixMessagesWithNick=false
#OPTIONAL
IgnoreNicks="ircspammer1 ircspammer2"
+#Messages you want to ignore.
+#Messages matching these regexp will be ignored and not sent to other bridges
+#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
+#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
+IgnoreMessages="^~~ badword"
+
#RemoteNickFormat defines how remote users appear on this bridge
#The string "{NICK}" (case sensitive) will be replaced by the actual nick / username.
#The string "{BRIDGE}" (case sensitive) will be replaced by the sending bridge
@@ -584,6 +638,12 @@ PrefixMessagesWithNick=false
#OPTIONAL
IgnoreNicks="spammer1 spammer2"
+#Messages you want to ignore.
+#Messages matching these regexp will be ignored and not sent to other bridges
+#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
+#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
+IgnoreMessages="^~~ badword"
+
#RemoteNickFormat defines how remote users appear on this bridge
#The string "{NICK}" (case sensitive) will be replaced by the actual nick / username.
#The string "{BRIDGE}" (case sensitive) will be replaced by the sending bridge