diff options
author | Wim <wim@42.be> | 2019-04-19 18:27:31 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-19 18:27:31 +0200 |
commit | 2d277a15f5b70a6188aa2871333e089f2f95ceec (patch) | |
tree | 68fb9f5932bf199409cec2a10ffe5dd10f6e6aea /bridge | |
parent | d60468bb05f9fc4066a669cd9704174629a19dd3 (diff) | |
download | matterbridge-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.go | 2 | ||||
-rw-r--r-- | bridge/irc/handlers.go | 5 |
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 == "" { |