summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bridge/config/config.go13
-rw-r--r--gateway/gateway.go14
2 files changed, 21 insertions, 6 deletions
diff --git a/bridge/config/config.go b/bridge/config/config.go
index f26e60bb..afb9f1a0 100644
--- a/bridge/config/config.go
+++ b/bridge/config/config.go
@@ -59,6 +59,10 @@ type Protocol struct {
IgnoreMessages string // all protocols
Jid string // xmpp
Login string // mattermost, matrix
+ 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
Muc string // xmpp
Name string // all protocols
Nick string // all protocols
@@ -71,12 +75,9 @@ type Protocol struct {
NoTLS bool // mattermost
Password string // IRC,mattermost,XMPP,matrix
PrefixMessagesWithNick bool // mattemost, slack
- Protocol string //all protocols
- ReplaceMessages [][]string // all messages
- 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
+ Protocol string // all protocols
+ ReplaceMessages [][]string // all protocols
+ ReplaceNicks [][]string // all protocols
RemoteNickFormat string // all protocols
Server string // IRC,mattermost,XMPP,discord
ShowJoinPart bool // all protocols
diff --git a/gateway/gateway.go b/gateway/gateway.go
index 8a0a666f..be03a99b 100644
--- a/gateway/gateway.go
+++ b/gateway/gateway.go
@@ -254,6 +254,20 @@ func (gw *Gateway) modifyUsername(msg config.Message, dest *bridge.Bridge) strin
if nick == "" {
nick = gw.Config.General.RemoteNickFormat
}
+
+ // loop to replace nicks
+ for _, outer := range br.Config.ReplaceNicks {
+ search := outer[0]
+ replace := outer[1]
+ // TODO move compile to bridge init somewhere
+ re, err := regexp.Compile(search)
+ if err != nil {
+ log.Errorf("regexp in %s failed: %s", msg.Account, err)
+ break
+ }
+ msg.Username = re.ReplaceAllString(msg.Username, replace)
+ }
+
if len(msg.Username) > 0 {
// fix utf-8 issue #193
i := 0