This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Tengo can be used for advanced scripting in matterbridge, you can modify incoming and outgoing messages.
You can also use it to modify the {TENGO}
parameter in
the RemoteNickFormat
.
[tengo]
InMessage="yourscript.tengo"
OutMessage="yourotherscript.tengo"
RemoteNickFormat="remotenickformat.tengo"
More information about tengo on: https://github.com/d5/tengo/blob/master/docs/tutorial.md and https://github.com/d5/tengo/blob/master/docs/stdlib.md
FIXME: Document support for dropping messages.
InMessage
InMessage allows you to specify the location of a tengo
(https://github.com/d5/tengo/) script.
This script will receive every incoming message and can be used to
modify the Username and the Text of that message.
The script will have the following global variables:
to modify: msgUsername
and msgText
to read: msgChannel
and msgAccount
The script is reloaded on every message, so you can modify the script on the fly.
Example script can be found in https://github.com/42wim/matterbridge/tree/master/gateway/bench.tengo and https://github.com/42wim/matterbridge/tree/master/contrib/example.tengo
The example below will check if the text contains blah and if so, it’ll replace the text and the username of that message.
text := import("text")
if text.re_match("blah",msgText) {
msgText="replaced by this"
msgUsername="fakeuser"
}
InMessage="example.tengo"
OutMessage
OutMessage allows you to specify 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
, inEvent
outAccount
, outProtocol
,
outChannel
, outGateway
,
outEvent
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.
OutMessage="example.tengo"
RemoteNickFormat
RemoteNickFormat allows you to specify the location of a tengo (https://github.com/d5/tengo/) script.
The script will have the following global variables:
to modify: result
to read: channel
, bridge
,
gateway
, protocol
, nick
The result will be set in {TENGO}
in the
RemoteNickFormat key of every bridge where {TENGO}
is
specified
The script is reloaded on every message, so you can modify the script on the fly.
Example script can be found in https://github.com/42wim/matterbridge/tree/master/contrib/remotenickformat.tengo
RemoteNickFormat="remotenickformat.tengo"
More information
You can find more tengo examples/info here: - https://github.com/42wim/matterbridge/issues?q=is%3Aissue+tengo+label%3Atengo+is%3Aclosed - https://github.com/42wim/matterbridge/tree/master/internal/tengo - https://github.com/42wim/matterbridge/tree/master/contrib - https://github.com/42wim/matterbridge/wiki/settings#tengo
The tengo documentation can be found here: https://github.com/d5/tengo/tree/master/docs
Getting started
How to create your config
Discord bot setup
Slack bot setup
MS Teams setup
Deploy
DigitalOcean
Azure
Docker
Heroku
Gateways
Config: basic
Config: channel rules
Discord
Gitter
Hipchat
IRC
Keybase
Matrix
Mattermost
Microsoft Teams
Mumble
Nextcloud Talk
RocketChat
Slack
Sshchat
Steam
Telegram
Twitch
VK
WhatsApp
XMPP
Zulip
Advanced
Mediaserver setup
Service files
Developer
API
Tengo scripting
Making gateways