summaryrefslogtreecommitdiffstats
path: root/bridge
diff options
context:
space:
mode:
authorWim <wim@42.be>2019-04-19 18:27:31 +0200
committerGitHub <noreply@github.com>2019-04-19 18:27:31 +0200
commit2d277a15f5b70a6188aa2871333e089f2f95ceec (patch)
tree68fb9f5932bf199409cec2a10ffe5dd10f6e6aea /bridge
parentd60468bb05f9fc4066a669cd9704174629a19dd3 (diff)
downloadmatterbridge-msglm-2d277a15f5b70a6188aa2871333e089f2f95ceec.tar.gz
matterbridge-msglm-2d277a15f5b70a6188aa2871333e089f2f95ceec.tar.bz2
matterbridge-msglm-2d277a15f5b70a6188aa2871333e089f2f95ceec.zip
Add scripting (tengo) support for every outgoing message (#806)
Adds a new key OutMessage under [tengo] table, which specifies the location of the script that will be invoked on each message being sent to a bridge and can be used to modify the Username and the Text of that message. The script will have the following global variables: read-only: inAccount, inProtocol, inChannel, inGateway outAccount, outProtocol, outChannel, outGateway read-write: msgText, msgUsername The script is reloaded on every message, so you can modify the script on the fly. The default script in https://github.com/42wim/matterbridge/tree/master/internal/tengo/outmessage.tengo is compiled in and will be executed if no script is specified.
Diffstat (limited to 'bridge')
-rw-r--r--bridge/config/config.go2
-rw-r--r--bridge/irc/handlers.go5
2 files changed, 2 insertions, 5 deletions
diff --git a/bridge/config/config.go b/bridge/config/config.go
index 1af6f407..d8237555 100644
--- a/bridge/config/config.go
+++ b/bridge/config/config.go
@@ -168,8 +168,10 @@ type Gateway struct {
}
type Tengo struct {
+ InMessage string
Message string
RemoteNickFormat string
+ OutMessage string
}
type SameChannelGateway struct {
diff --git a/bridge/irc/handlers.go b/bridge/irc/handlers.go
index f0e54928..8f0acaad 100644
--- a/bridge/irc/handlers.go
+++ b/bridge/irc/handlers.go
@@ -4,7 +4,6 @@ import (
"bytes"
"fmt"
"io/ioutil"
- "regexp"
"strconv"
"strings"
"time"
@@ -182,10 +181,6 @@ func (b *Birc) handlePrivMsg(client *girc.Client, event girc.Event) {
// strip action, we made an event if it was an action
rmsg.Text += event.StripAction()
- // strip IRC colors
- re := regexp.MustCompile(`\x03(?:\d{1,2}(?:,\d{1,2})?)?|[[:cntrl:]]`)
- rmsg.Text = re.ReplaceAllString(rmsg.Text, "")
-
// start detecting the charset
mycharset := b.GetString("Charset")
if mycharset == "" {