You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Go to file
Wim 2d277a15f5
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.
5 years ago
.github Update issue templates 6 years ago
bridge Add scripting (tengo) support for every outgoing message (#806) 5 years ago
ci Add CI fixes and improvements (#780) 5 years ago
contrib Add scripting (tengo) support for every outgoing message (#806) 5 years ago
docker/arm Try building arm docker image 6 years ago
gateway Add scripting (tengo) support for every outgoing message (#806) 5 years ago
hook/rockethook Enable gosec linter (#645) 6 years ago
img Replace documentation image 6 years ago
internal Add scripting (tengo) support for every outgoing message (#806) 5 years ago
matterclient Send channel_created and deleted event through message channel (mattermost) 5 years ago
matterhook Enable gosec linter (#645) 6 years ago
vendor Update tengo vendor and load the stdlib. Fixes #789 (#792) 5 years ago
.golangci.yaml Add CI fixes and improvements (#780) 5 years ago
.goreleaser.yml Add goreleaser.yml 5 years ago
.travis.yml Build on every branch (travis) 5 years ago
Dockerfile Add githash to docker builds 7 years ago
LICENSE Initial commit 9 years ago
README.md Remove hipchat 5 years ago
changelog.md Update changelog 5 years ago
go.mod Update tengo vendor and load the stdlib. Fixes #789 (#792) 5 years ago
go.sum Update tengo vendor and load the stdlib. Fixes #789 (#792) 5 years ago
matterbridge.go Bump version 5 years ago
matterbridge.toml.sample Add scripting (tengo) support for every outgoing message (#806) 5 years ago
matterbridge.toml.simple remove useAPI from sample configuration (#250) 7 years ago

README.md

matterbridge

Matterbridge Logo
A simple chat bridge
Letting people be where they want to be.
Bridges between a growing number of protocols. Click below to demo or join the development chat.

Gitter | IRC | Discord | Matrix | Slack | Mattermost | Rocket.Chat | XMPP | Twitch | WhatsApp | Zulip | Telegram | And more...


Download stable Download dev Maintainability Test Coverage


Note: Mattermost isn't required to run matterbridge.

Table of Contents

Features

Natively supported

3rd party via matterbridge api

API

The API is basic at the moment. More info and examples on the wiki.

Used by the projects below. Feel free to make a PR to add your project to this list.

Chat with us

Questions or want to test on your favorite platform? Join below:

Screenshots

See https://github.com/42wim/matterbridge/wiki

Installing

Binaries

  • Latest stable release v1.14.2
  • Development releases (follows master) can be downloaded here

Packages

Building

Go 1.9+ is required. Make sure you have Go properly installed, including setting up your GOPATH.

After Go is setup, download matterbridge to your $GOPATH directory.

cd $GOPATH
go get github.com/42wim/matterbridge

You should now have matterbridge binary in the bin directory:

$ ls bin/
matterbridge

Configuration

Basic configuration

See howto for a step by step walkthrough for creating your configuration.

Settings

All possible settings for each bridge.

Advanced configuration

Examples

Bridge mattermost (off-topic) - irc (#testing)

[irc]
    [irc.freenode]
    Server="irc.freenode.net:6667"
    Nick="yourbotname"

[mattermost]
    [mattermost.work]
    Server="yourmattermostserver.tld"
    Team="yourteam"
    Login="yourlogin"
    Password="yourpass"
    PrefixMessagesWithNick=true
    RemoteNickFormat="[{PROTOCOL}] <{NICK}> "

[[gateway]]
name="mygateway"
enable=true
    [[gateway.inout]]
    account="irc.freenode"
    channel="#testing"

    [[gateway.inout]]
    account="mattermost.work"
    channel="off-topic"

Bridge slack (#general) - discord (general)

[slack]
[slack.test]
Token="yourslacktoken"
PrefixMessagesWithNick=true

[discord]
[discord.test]
Token="yourdiscordtoken"
Server="yourdiscordservername"

[general]
RemoteNickFormat="[{PROTOCOL}/{BRIDGE}] <{NICK}> "

[[gateway]]
    name = "mygateway"
    enable=true

    [[gateway.inout]]
    account = "discord.test"
    channel="general"

    [[gateway.inout]]
    account ="slack.test"
    channel = "general"

Running

See howto for a step by step walkthrough for creating your configuration.

Usage of ./matterbridge:
  -conf string
        config file (default "matterbridge.toml")
  -debug
        enable debug
  -gops
        enable gops agent
  -version
        show version

Docker

Create your matterbridge.toml file locally eg in /tmp/matterbridge.toml

docker run -ti -v /tmp/matterbridge.toml:/matterbridge.toml 42wim/matterbridge

Changelog

See changelog.md

FAQ

See FAQ

Articles

Thanks

This project is supported by:

Matterbridge wouldn't exist without these libraries: