mirror of
https://github.com/42wim/matterbridge.git
synced 2024-11-21 02:02:00 -08:00
dbedc99421
Harmony is a relatively new (1,5yo) chat protocol with a small community. This introduces support for Harmony into Matterbridge, using the functionality specifically designed for bridge bots. The implementation is a modest 200 lines of code.
1991 lines
77 KiB
Plaintext
1991 lines
77 KiB
Plaintext
#This is configuration for matterbridge.
|
|
#WARNING: as this file contains credentials, be sure to set correct file permissions
|
|
#See https://github.com/42wim/matterbridge/wiki/How-to-create-your-config for how to create your config
|
|
#See https://github.com/42wim/matterbridge/wiki/Settings for all settings
|
|
###################################################################
|
|
#IRC section
|
|
###################################################################
|
|
#REQUIRED to start IRC section
|
|
[irc]
|
|
|
|
#You can configure multiple servers "[irc.name]" or "[irc.name2]"
|
|
#In this example we use [irc.libera]
|
|
#REQUIRED
|
|
[irc.libera]
|
|
#irc server to connect to.
|
|
#REQUIRED
|
|
Server="irc.libera.chat:6667"
|
|
|
|
#Password for irc server (if necessary)
|
|
#OPTIONAL (default "")
|
|
Password=""
|
|
|
|
#Enable to use TLS connection to your irc server.
|
|
#OPTIONAL (default false)
|
|
UseTLS=false
|
|
|
|
#Enable SASL (PLAIN) authentication. (libera requires this from eg AWS hosts)
|
|
#It uses NickServNick and NickServPassword as login and password
|
|
#OPTIONAL (default false)
|
|
UseSASL=false
|
|
|
|
#Enable to not verify the certificate on your irc server.
|
|
#e.g. when using selfsigned certificates
|
|
#OPTIONAL (default false)
|
|
SkipTLSVerify=true
|
|
|
|
#Local address to use for server connection
|
|
#Note that Server and Bind must resolve to addresses of the same family.
|
|
#OPTIONAL (default "")
|
|
Bind=""
|
|
|
|
#If you know your charset, you can specify it manually.
|
|
#Otherwise it tries to detect this automatically. Select one below
|
|
# "iso-8859-2:1987", "iso-8859-9:1989", "866", "latin9", "iso-8859-10:1992", "iso-ir-109", "hebrew",
|
|
# "cp932", "iso-8859-15", "cp437", "utf-16be", "iso-8859-3:1988", "windows-1251", "utf16", "latin6",
|
|
# "latin3", "iso-8859-1:1987", "iso-8859-9", "utf-16le", "big5", "cp819", "asmo-708", "utf-8",
|
|
# "ibm437", "iso-ir-157", "iso-ir-144", "latin4", "850", "iso-8859-5", "iso-8859-5:1988", "l3",
|
|
# "windows-31j", "utf8", "iso-8859-3", "437", "greek", "iso-8859-8", "l6", "l9-iso-8859-15",
|
|
# "iso-8859-2", "latin2", "iso-ir-100", "iso-8859-6", "arabic", "iso-ir-148", "us-ascii", "x-sjis",
|
|
# "utf16be", "iso-8859-8:1988", "utf16le", "l4", "utf-16", "iso-ir-138", "iso-8859-7", "iso-8859-7:1987",
|
|
# "windows-1252", "l2", "koi8-r", "iso8859-1", "latin1", "ecma-114", "iso-ir-110", "elot-928",
|
|
# "iso-ir-126", "iso-8859-1", "iso-ir-127", "cp850", "cyrillic", "greek8", "windows-1250", "iso-latin-1",
|
|
# "l5", "ibm866", "cp866", "ms-kanji", "ibm850", "ecma-118", "iso-ir-101", "ibm819", "l1", "iso-8859-6:1987",
|
|
# "latin5", "ascii", "sjis", "iso-8859-10", "iso-8859-4", "iso-8859-4:1988", "shift-jis
|
|
# The select charset will be converted to utf-8 when sent to other bridges.
|
|
#OPTIONAL (default "")
|
|
Charset=""
|
|
|
|
#Your nick on irc.
|
|
#REQUIRED
|
|
Nick="matterbot"
|
|
|
|
#Real name/gecos displayed in e.g. /WHOIS and /WHO
|
|
#OPTIONAL (defaults to the nick)
|
|
RealName="Matterbridge instance on IRC"
|
|
|
|
#IRC username/ident preceding the hostname in hostmasks and /WHOIS
|
|
#OPTIONAL (defaults to the nick)
|
|
UserName="bridge"
|
|
|
|
#If you registered your bot with a service like Nickserv on libera.
|
|
#Also being used when UseSASL=true
|
|
#
|
|
#Note: if you want do to quakenet auth, set NickServNick="Q@CServe.quakenet.org"
|
|
#OPTIONAL
|
|
NickServNick="nickserv"
|
|
NickServPassword="secret"
|
|
|
|
#OPTIONAL only used for quakenet auth
|
|
NickServUsername="username"
|
|
|
|
## RELOADABLE SETTINGS
|
|
## Settings below can be reloaded by editing the file
|
|
|
|
#Flood control
|
|
#Delay in milliseconds between each message send to the IRC server
|
|
#OPTIONAL (default 1300)
|
|
MessageDelay=1300
|
|
|
|
#Maximum amount of messages to hold in queue. If queue is full
|
|
#messages will be dropped.
|
|
#<clipped message> will be add to the message that fills the queue.
|
|
#OPTIONAL (default 30)
|
|
MessageQueue=30
|
|
|
|
#Maximum length of message sent to irc server. If it exceeds
|
|
#<clipped message> will be add to the message.
|
|
#OPTIONAL (default 400)
|
|
MessageLength=400
|
|
|
|
#Split messages on MessageLength instead of showing the <clipped message>
|
|
#WARNING: this could lead to flooding
|
|
#OPTIONAL (default false)
|
|
MessageSplit=false
|
|
|
|
#Message to show when a message is too big
|
|
#Default "<clipped message>"
|
|
MessageClipped="<clipped message>"
|
|
|
|
#Delay in seconds to rejoin a channel when kicked
|
|
#OPTIONAL (default 0)
|
|
RejoinDelay=0
|
|
|
|
#ColorNicks will show each nickname in a different color.
|
|
#Only works in IRC right now.
|
|
ColorNicks=false
|
|
|
|
#RunCommands allows you to send RAW irc commands after connection
|
|
#Array of strings
|
|
#OPTIONAL (default empty)
|
|
RunCommands=["PRIVMSG user hello","PRIVMSG chanserv something"]
|
|
|
|
#PingDelay specifies how long to wait to send a ping to the irc server.
|
|
#You can use s for second, m for minute
|
|
#String
|
|
#OPTIONAL (default 1m)
|
|
PingDelay="1m"
|
|
|
|
#StripMarkdown strips markdown from messages
|
|
#OPTIONAL (default false)
|
|
StripMarkdown=false
|
|
|
|
#Nicks you want to ignore.
|
|
#Regular expressions supported
|
|
#Messages from those users will not be sent to other bridges.
|
|
#OPTIONAL
|
|
IgnoreNicks="ircspammer1 ircspammer2"
|
|
|
|
#Messages you want to ignore.
|
|
#Messages matching these regexp will be ignored and not sent to other bridges
|
|
#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
|
|
#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
|
|
IgnoreMessages="^~~ badword"
|
|
|
|
#messages you want to replace.
|
|
#it replaces outgoing messages from the bridge.
|
|
#so you need to place it by the sending bridge definition.
|
|
#regular expressions supported
|
|
#some examples:
|
|
#this replaces cat => dog and sleep => awake
|
|
#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
|
|
#this replaces every number with number. 123 => numbernumbernumber
|
|
#replacemessages=[ ["[0-9]","number"] ]
|
|
#optional (default empty)
|
|
ReplaceMessages=[ ["cat","dog"] ]
|
|
|
|
#nicks you want to replace.
|
|
#see replacemessages for syntaxa
|
|
#optional (default empty)
|
|
ReplaceNicks=[ ["user--","user"] ]
|
|
|
|
#Extractnicks is used to for example rewrite messages from other relaybots
|
|
#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
|
|
#some examples:
|
|
#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
|
|
#you can use multiple entries for multiplebots
|
|
#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
|
|
#OPTIONAL (default empty)
|
|
ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
|
|
|
|
#extra label that can be used in the RemoteNickFormat
|
|
#optional (default empty)
|
|
Label=""
|
|
|
|
#RemoteNickFormat defines how remote users appear on this bridge
|
|
#See [general] config section for default options
|
|
#The string "{NOPINGNICK}" (case sensitive) will be replaced by the actual nick / username, but with a ZWSP inside the nick, so the irc user with the same nick won't get pinged. See https://github.com/42wim/matterbridge/issues/175 for more information
|
|
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
|
|
|
|
#Enable to show users joins/parts from other bridges
|
|
#Currently works for messages from the following bridges: irc, mattermost, slack, discord
|
|
#OPTIONAL (default false)
|
|
ShowJoinPart=false
|
|
|
|
#Enable to show verbose users joins/parts (ident@host) from other bridges
|
|
#Currently works for messages from the following bridges: irc
|
|
#OPTIONAL (default false)
|
|
VerboseJoinPart=false
|
|
|
|
#Do not send joins/parts to other bridges
|
|
#Currently works for messages from the following bridges: irc, mattermost, slack
|
|
#OPTIONAL (default false)
|
|
NoSendJoinPart=false
|
|
|
|
#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
|
|
#It will strip other characters from the nick
|
|
#OPTIONAL (default false)
|
|
StripNick=false
|
|
|
|
#Enable to show topic changes from other bridges
|
|
#Only works hiding/show topic changes from slack bridge for now
|
|
#OPTIONAL (default false)
|
|
ShowTopicChange=false
|
|
|
|
#Delay in milliseconds between channel joins
|
|
#Only useful when you have a LOT of channels to join
|
|
#See https://github.com/42wim/matterbridge/issues/1084
|
|
#OPTIONAL (default 0)
|
|
JoinDelay=0
|
|
|
|
#Use the optional RELAYMSG extension for username spoofing on IRC.
|
|
#This requires an IRCd that supports the draft/relaymsg specification: currently this includes
|
|
#Oragono 2.4.0+ and InspIRCd 3 with the m_relaymsg contrib module.
|
|
#See https://github.com/42wim/matterbridge/issues/667#issuecomment-634214165 for more details.
|
|
#Spoofed nicks will use the configured RemoteNickFormat, replacing reserved IRC characters
|
|
#(!+%@&#$:'"?*,.) with a hyphen (-).
|
|
#On most configurations, the RemoteNickFormat must include a separator character such as "/".
|
|
#You should make sure that the settings here match your IRCd.
|
|
#This option overrides ColorNicks.
|
|
#OPTIONAL (default false)
|
|
UseRelayMsg=false
|
|
#RemoteNickFormat="{NICK}/{PROTOCOL}"
|
|
|
|
###################################################################
|
|
#XMPP section
|
|
###################################################################
|
|
[xmpp]
|
|
|
|
#You can configure multiple servers "[xmpp.name]" or "[xmpp.name2]"
|
|
#In this example we use [xmpp.jabber]
|
|
#REQUIRED
|
|
[xmpp.jabber]
|
|
#xmpp server to connect to.
|
|
#REQUIRED
|
|
Server="jabber.example.com:5222"
|
|
|
|
#Use anonymous MUC login
|
|
#OPTIONAL (default false)
|
|
Anonymous=false
|
|
|
|
#Jid
|
|
#REQUIRED if Anonymous=false
|
|
Jid="user@example.com"
|
|
|
|
#Password
|
|
#REQUIRED if Anonymous=false
|
|
Password="yourpass"
|
|
|
|
#MUC
|
|
#REQUIRED
|
|
Muc="conference.jabber.example.com"
|
|
|
|
#Your nick in the rooms
|
|
#REQUIRED
|
|
Nick="xmppbot"
|
|
|
|
#Enable to not verify the certificate on your xmpp server.
|
|
#e.g. when using selfsigned certificates
|
|
#OPTIONAL (default false)
|
|
SkipTLSVerify=true
|
|
|
|
#Enable to use plaintext connection to your XMPP server.
|
|
#OPTIONAL (default false)
|
|
NoTLS=true
|
|
|
|
## RELOADABLE SETTINGS
|
|
## Settings below can be reloaded by editing the file
|
|
|
|
#Nicks you want to ignore.
|
|
#Regular expressions supported
|
|
#Messages from those users will not be sent to other bridges.
|
|
#OPTIONAL
|
|
IgnoreNicks="ircspammer1 ircspammer2"
|
|
|
|
#Messages you want to ignore.
|
|
#Messages matching these regexp will be ignored and not sent to other bridges
|
|
#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
|
|
#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
|
|
IgnoreMessages="^~~ badword"
|
|
|
|
#Messages you want to replace.
|
|
#It replaces outgoing messages from the bridge.
|
|
#So you need to place it by the sending bridge definition.
|
|
#Regular expressions supported
|
|
#Some examples:
|
|
#This replaces cat => dog and sleep => awake
|
|
#ReplaceMessages=[ ["cat","dog"], ["sleep","awake"] ]
|
|
#This Replaces every number with number. 123 => numbernumbernumber
|
|
#ReplaceMessages=[ ["[0-9]","number"] ]
|
|
#OPTIONAL (default empty)
|
|
ReplaceMessages=[ ["cat","dog"] ]
|
|
|
|
#Nicks you want to replace.
|
|
#See ReplaceMessages for syntaxA
|
|
#OPTIONAL (default empty)
|
|
ReplaceNicks=[ ["user--","user"] ]
|
|
|
|
#Extractnicks is used to for example rewrite messages from other relaybots
|
|
#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
|
|
#some examples:
|
|
#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
|
|
#you can use multiple entries for multiplebots
|
|
#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
|
|
#OPTIONAL (default empty)
|
|
ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
|
|
|
|
#extra label that can be used in the RemoteNickFormat
|
|
#optional (default empty)
|
|
Label=""
|
|
|
|
#RemoteNickFormat defines how remote users appear on this bridge
|
|
#See [general] config section for default options
|
|
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
|
|
|
|
#Enable to show users joins/parts from other bridges
|
|
#Currently works for messages from the following bridges: irc, mattermost, slack, discord
|
|
#OPTIONAL (default false)
|
|
ShowJoinPart=false
|
|
|
|
#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
|
|
#It will strip other characters from the nick
|
|
#OPTIONAL (default false)
|
|
StripNick=false
|
|
|
|
#Enable to show topic changes from other bridges
|
|
#Only works hiding/show topic changes from slack bridge for now
|
|
#OPTIONAL (default false)
|
|
ShowTopicChange=false
|
|
|
|
#Enable sending messages using a webhook instead of regular MUC messages.
|
|
#Only works with a prosody server using mod_slack_webhook. Does not support editing.
|
|
#OPTIONAL (default "")
|
|
WebhookURL="https://yourdomain/prosody/msg/someid"
|
|
|
|
###################################################################
|
|
#mattermost section
|
|
###################################################################
|
|
[mattermost]
|
|
#You can configure multiple servers "[mattermost.name]" or "[mattermost.name2]"
|
|
#In this example we use [mattermost.work]
|
|
#REQUIRED
|
|
|
|
[mattermost.work]
|
|
#The mattermost hostname. (do not prefix it with http or https)
|
|
#REQUIRED (when not using webhooks)
|
|
Server="yourmattermostserver.domain"
|
|
|
|
#Your team on mattermost.
|
|
#REQUIRED (when not using webhooks)
|
|
Team="yourteam"
|
|
|
|
#login/pass of your bot.
|
|
#Use a dedicated user for this and not your own!
|
|
#REQUIRED (when not using webhooks)
|
|
Login="yourlogin"
|
|
Password="yourpass"
|
|
|
|
#personal access token of the bot.
|
|
#new feature since mattermost 4.1. See https://docs.mattermost.com/developer/personal-access-tokens.html
|
|
#OPTIONAL (you can use token instead of login/password)
|
|
#Token="abcdefghijklm"
|
|
|
|
#Enable this to make a http connection (instead of https) to your mattermost.
|
|
#OPTIONAL (default false)
|
|
NoTLS=false
|
|
|
|
#### Settings for webhook matterbridge.
|
|
#NOT RECOMMENDED TO USE INCOMING/OUTGOING WEBHOOK. USE DEDICATED BOT USER WHEN POSSIBLE!
|
|
#You don't need to configure this, if you have configured the settings
|
|
#above.
|
|
|
|
#Url is your incoming webhook url as specified in mattermost.
|
|
#See account settings - integrations - incoming webhooks on mattermost.
|
|
#If specified, messages will be sent to mattermost using this URL
|
|
#OPTIONAL
|
|
WebhookURL="https://yourdomain/hooks/yourhookkey"
|
|
|
|
#Address to listen on for outgoing webhook requests from mattermost.
|
|
#See account settings - integrations - outgoing webhooks on mattermost.
|
|
#If specified, messages will be received from mattermost on this ip:port
|
|
#(this will only work if WebhookURL above is also configured)
|
|
#OPTIONAL
|
|
WebhookBindAddress="0.0.0.0:9999"
|
|
|
|
#Icon that will be showed in mattermost.
|
|
#This only works when WebhookURL is configured
|
|
#OPTIONAL
|
|
IconURL="http://youricon.png"
|
|
|
|
#### End settings for webhook matterbridge.
|
|
|
|
#Enable to not verify the certificate on your mattermost server.
|
|
#e.g. when using selfsigned certificates
|
|
#OPTIONAL (default false)
|
|
SkipTLSVerify=true
|
|
|
|
## RELOADABLE SETTINGS
|
|
## Settings below can be reloaded by editing the file
|
|
|
|
#how to format the list of IRC nicks when displayed in mattermost.
|
|
#Possible options are "table" and "plain"
|
|
#OPTIONAL (default plain)
|
|
NickFormatter="plain"
|
|
#How many nicks to list per row for formatters that support this.
|
|
#OPTIONAL (default 4)
|
|
NicksPerRow=4
|
|
|
|
#Skip the Mattermost server version checks that are normally done when connecting.
|
|
#The usage scenario for this feature would be when the Mattermost instance is hosted behind a
|
|
#reverse proxy that suppresses "non-standard" response headers in flight.
|
|
#OPTIONAL (default false)
|
|
SkipVersionCheck=false
|
|
|
|
#Whether to prefix messages from other bridges to mattermost with the sender's nick.
|
|
#Useful if username overrides for incoming webhooks isn't enabled on the
|
|
#mattermost server. If you set PrefixMessagesWithNick to true, each message
|
|
#from bridge to Mattermost will by default be prefixed by "bridge-" + nick. You can,
|
|
#however, modify how the messages appear, by setting (and modifying) RemoteNickFormat
|
|
#OPTIONAL (default false)
|
|
PrefixMessagesWithNick=false
|
|
|
|
#Disable sending of edits to other bridges
|
|
#OPTIONAL (default false)
|
|
EditDisable=false
|
|
|
|
#Message to be appended to every edited message
|
|
#OPTIONAL (default empty)
|
|
EditSuffix=" (edited)"
|
|
|
|
#Nicks you want to ignore.
|
|
#Regular expressions supported
|
|
#Messages from those users will not be sent to other bridges.
|
|
#OPTIONAL
|
|
IgnoreNicks="ircspammer1 ircspammer2"
|
|
|
|
#Messages you want to ignore.
|
|
#Messages matching these regexp will be ignored and not sent to other bridges
|
|
#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
|
|
#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
|
|
IgnoreMessages="^~~ badword"
|
|
|
|
#messages you want to replace.
|
|
#it replaces outgoing messages from the bridge.
|
|
#so you need to place it by the sending bridge definition.
|
|
#regular expressions supported
|
|
#some examples:
|
|
#this replaces cat => dog and sleep => awake
|
|
#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
|
|
#this replaces every number with number. 123 => numbernumbernumber
|
|
#replacemessages=[ ["[0-9]","number"] ]
|
|
#optional (default empty)
|
|
ReplaceMessages=[ ["cat","dog"] ]
|
|
|
|
#nicks you want to replace.
|
|
#see replacemessages for syntaxa
|
|
#optional (default empty)
|
|
ReplaceNicks=[ ["user--","user"] ]
|
|
|
|
#Extractnicks is used to for example rewrite messages from other relaybots
|
|
#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
|
|
#some examples:
|
|
#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
|
|
#you can use multiple entries for multiplebots
|
|
#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
|
|
#OPTIONAL (default empty)
|
|
ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
|
|
|
|
#extra label that can be used in the RemoteNickFormat
|
|
#optional (default empty)
|
|
Label=""
|
|
|
|
#RemoteNickFormat defines how remote users appear on this bridge
|
|
#See [general] config section for default options
|
|
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
|
|
|
|
#Enable to show users joins/parts from other bridges
|
|
#Currently works for messages from the following bridges: irc, mattermost, slack, discord
|
|
#OPTIONAL (default false)
|
|
ShowJoinPart=false
|
|
|
|
#Do not send joins/parts to other bridges
|
|
#Currently works for messages from the following bridges: irc, mattermost, slack
|
|
#OPTIONAL (default false)
|
|
NoSendJoinPart=false
|
|
|
|
#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
|
|
#It will strip other characters from the nick
|
|
#OPTIONAL (default false)
|
|
StripNick=false
|
|
|
|
#Enable to show topic changes from other bridges
|
|
#Only works hiding/show topic changes from slack bridge for now
|
|
#OPTIONAL (default false)
|
|
ShowTopicChange=false
|
|
|
|
###################################################################
|
|
#Gitter section
|
|
#Best to make a dedicated gitter account for the bot.
|
|
###################################################################
|
|
|
|
[gitter]
|
|
|
|
#You can configure multiple servers "[gitter.name]" or "[gitter.name2]"
|
|
#In this example we use [gitter.myproject]
|
|
#REQUIRED
|
|
[gitter.myproject]
|
|
#Token to connect with Gitter API
|
|
#You can get your token by going to https://developer.gitter.im/docs/welcome and SIGN IN
|
|
#REQUIRED
|
|
Token="Yourtokenhere"
|
|
|
|
## RELOADABLE SETTINGS
|
|
## Settings below can be reloaded by editing the file
|
|
|
|
#Nicks you want to ignore.
|
|
#Regular expressions supported
|
|
#Messages from those users will not be sent to other bridges.
|
|
#OPTIONAL
|
|
IgnoreNicks="ircspammer1 ircspammer2"
|
|
|
|
#Messages you want to ignore.
|
|
#Messages matching these regexp will be ignored and not sent to other bridges
|
|
#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
|
|
#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
|
|
IgnoreMessages="^~~ badword"
|
|
|
|
#messages you want to replace.
|
|
#it replaces outgoing messages from the bridge.
|
|
#so you need to place it by the sending bridge definition.
|
|
#regular expressions supported
|
|
#some examples:
|
|
#this replaces cat => dog and sleep => awake
|
|
#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
|
|
#this replaces every number with number. 123 => numbernumbernumber
|
|
#replacemessages=[ ["[0-9]","number"] ]
|
|
#optional (default empty)
|
|
ReplaceMessages=[ ["cat","dog"] ]
|
|
|
|
#nicks you want to replace.
|
|
#see replacemessages for syntaxa
|
|
#optional (default empty)
|
|
ReplaceNicks=[ ["user--","user"] ]
|
|
|
|
#Extractnicks is used to for example rewrite messages from other relaybots
|
|
#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
|
|
#some examples:
|
|
#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
|
|
#you can use multiple entries for multiplebots
|
|
#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
|
|
#OPTIONAL (default empty)
|
|
ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
|
|
|
|
#extra label that can be used in the RemoteNickFormat
|
|
#optional (default empty)
|
|
Label=""
|
|
|
|
#RemoteNickFormat defines how remote users appear on this bridge
|
|
#See [general] config section for default options
|
|
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
|
|
|
|
#Enable to show users joins/parts from other bridges
|
|
#Currently works for messages from the following bridges: irc, mattermost, slack, discord
|
|
#OPTIONAL (default false)
|
|
ShowJoinPart=false
|
|
|
|
#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
|
|
#It will strip other characters from the nick
|
|
#OPTIONAL (default false)
|
|
StripNick=false
|
|
|
|
#Enable to show topic changes from other bridges
|
|
#Only works hiding/show topic changes from slack bridge for now
|
|
#OPTIONAL (default false)
|
|
ShowTopicChange=false
|
|
|
|
###################################################################
|
|
#
|
|
# Keybase
|
|
# You should have a separate bridge account on Keybase
|
|
# (it also needs to be logged in on the system you're running the bridge on)
|
|
#
|
|
###################################################################
|
|
|
|
[keybase.myteam]
|
|
|
|
# RemoteNickFormat defines how remote users appear on this bridge
|
|
# See [general] config section for default options
|
|
RemoteNickFormat="{NICK} ({PROTOCOL}): "
|
|
|
|
# extra label that can be used in the RemoteNickFormat
|
|
# optional (default empty)
|
|
Label=""
|
|
|
|
# Your team on Keybase.
|
|
# The bot user MUST be a member of this team
|
|
# REQUIRED
|
|
Team="myteam"
|
|
|
|
###################################################################
|
|
# Microsoft teams section
|
|
# See https://github.com/42wim/matterbridge/wiki/MS-Teams-setup
|
|
###################################################################
|
|
|
|
[msteams.myteam]
|
|
|
|
# TenantID
|
|
# See https://github.com/42wim/matterbridge/wiki/MS-Teams-setup#get-necessary-ids-for-matterbridge
|
|
TenantID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
|
|
|
|
# ClientID
|
|
# See https://github.com/42wim/matterbridge/wiki/MS-Teams-setup#get-necessary-ids-for-matterbridge
|
|
ClientID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
|
|
|
|
# TeamID
|
|
# See https://github.com/42wim/matterbridge/wiki/MS-Teams-setup#get-necessary-ids-for-matterbridge
|
|
TeamID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
|
|
|
|
## RELOADABLE SETTINGS
|
|
## Settings below can be reloaded by editing the file
|
|
|
|
#Nicks you want to ignore.
|
|
#Regular expressions supported
|
|
#Messages from those users will not be sent to other bridges.
|
|
#OPTIONAL
|
|
IgnoreNicks="ircspammer1 ircspammer2"
|
|
|
|
#Messages you want to ignore.
|
|
#Messages matching these regexp will be ignored and not sent to other bridges
|
|
#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
|
|
#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
|
|
IgnoreMessages="^~~ badword"
|
|
|
|
#messages you want to replace.
|
|
#it replaces outgoing messages from the bridge.
|
|
#so you need to place it by the sending bridge definition.
|
|
#regular expressions supported
|
|
#some examples:
|
|
#this replaces cat => dog and sleep => awake
|
|
#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
|
|
#this replaces every number with number. 123 => numbernumbernumber
|
|
#replacemessages=[ ["[0-9]","number"] ]
|
|
#optional (default empty)
|
|
ReplaceMessages=[ ["cat","dog"] ]
|
|
|
|
#nicks you want to replace.
|
|
#see replacemessages for syntaxa
|
|
#optional (default empty)
|
|
ReplaceNicks=[ ["user--","user"] ]
|
|
|
|
#Extractnicks is used to for example rewrite messages from other relaybots
|
|
#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
|
|
#some examples:
|
|
#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
|
|
#you can use multiple entries for multiplebots
|
|
#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
|
|
#OPTIONAL (default empty)
|
|
ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
|
|
|
|
#extra label that can be used in the RemoteNickFormat
|
|
#optional (default empty)
|
|
Label=""
|
|
|
|
#RemoteNickFormat defines how remote users appear on this bridge
|
|
#See [general] config section for default options
|
|
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
|
|
|
|
#Enable to show users joins/parts from other bridges
|
|
#Currently works for messages from the following bridges: irc, mattermost, slack, discord
|
|
#OPTIONAL (default false)
|
|
ShowJoinPart=false
|
|
|
|
#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
|
|
#It will strip other characters from the nick
|
|
#OPTIONAL (default false)
|
|
StripNick=false
|
|
|
|
#Enable to show topic changes from other bridges
|
|
#Only works hiding/show topic changes from slack bridge for now
|
|
#OPTIONAL (default false)
|
|
ShowTopicChange=false
|
|
|
|
#Opportunistically preserve threaded replies between bridges
|
|
#that support threading
|
|
#OPTIONAL (default false)
|
|
PreserveThreading=false
|
|
|
|
###################################################################
|
|
#slack section
|
|
###################################################################
|
|
[slack]
|
|
|
|
#You can configure multiple servers "[slack.name]" or "[slack.name2]"
|
|
#In this example we use [slack.hobby]
|
|
#REQUIRED
|
|
[slack.hobby]
|
|
#Token to connect with the Slack API
|
|
#You'll have to use a test/api-token using a dedicated user and not a bot token.
|
|
#See https://github.com/42wim/matterbridge/issues/75 for more info.
|
|
#Use https://api.slack.com/custom-integrations/legacy-tokens
|
|
#REQUIRED (when not using webhooks)
|
|
Token="yourslacktoken"
|
|
|
|
#Extra slack specific debug info, warning this generates a lot of output.
|
|
#OPTIONAL (default false)
|
|
Debug="false"
|
|
|
|
#### Settings for webhook matterbridge.
|
|
#NOT RECOMMENDED TO USE INCOMING/OUTGOING WEBHOOK. USE SLACK API
|
|
#AND DEDICATED BOT USER WHEN POSSIBLE!
|
|
#Url is your incoming webhook url as specified in slack
|
|
#See account settings - integrations - incoming webhooks on slack
|
|
#OPTIONAL
|
|
WebhookURL="https://hooks.slack.com/services/yourhook"
|
|
|
|
#NOT RECOMMENDED TO USE INCOMING/OUTGOING WEBHOOK. USE SLACK API
|
|
#AND DEDICATED BOT USER WHEN POSSIBLE!
|
|
#Address to listen on for outgoing webhook requests from slack
|
|
#See account settings - integrations - outgoing webhooks on slack
|
|
#webhooks
|
|
#OPTIONAL
|
|
WebhookBindAddress="0.0.0.0:9999"
|
|
|
|
#Icon that will be showed in slack
|
|
#The string "{NICK}" (case sensitive) will be replaced by the actual nick / username.
|
|
#The string "{BRIDGE}" (case sensitive) will be replaced by the sending bridge
|
|
#The string "{LABEL}" (case sensitive) will be replaced by label= field of the sending bridge
|
|
#The string "{PROTOCOL}" (case sensitive) will be replaced by the protocol used by the bridge
|
|
#OPTIONAL
|
|
IconURL="https://robohash.org/{NICK}.png?size=48x48"
|
|
|
|
## RELOADABLE SETTINGS
|
|
## Settings below can be reloaded by editing the file
|
|
|
|
#how to format the list of IRC nicks when displayed in slack
|
|
#Possible options are "table" and "plain"
|
|
#OPTIONAL (default plain)
|
|
NickFormatter="plain"
|
|
#How many nicks to list per row for formatters that support this.
|
|
#OPTIONAL (default 4)
|
|
NicksPerRow=4
|
|
|
|
#Disable sending of edits to other bridges
|
|
#OPTIONAL (default false)
|
|
EditDisable=true
|
|
|
|
#Message to be appended to every edited message
|
|
#OPTIONAL (default empty)
|
|
EditSuffix=" (edited)"
|
|
|
|
#Whether to prefix messages from other bridges to mattermost with RemoteNickFormat
|
|
#Useful if username overrides for incoming webhooks isn't enabled on the
|
|
#slack server. If you set PrefixMessagesWithNick to true, each message
|
|
#from bridge to Slack will by default be prefixed by "bridge-" + nick. You can,
|
|
#however, modify how the messages appear, by setting (and modifying) RemoteNickFormat
|
|
#OPTIONAL (default false)
|
|
PrefixMessagesWithNick=false
|
|
|
|
#Nicks you want to ignore.
|
|
#Regular expressions supported
|
|
#Messages from those users will not be sent to other bridges.
|
|
#OPTIONAL
|
|
IgnoreNicks="ircspammer1 ircspammer2"
|
|
|
|
#Messages you want to ignore.
|
|
#Messages matching these regexp will be ignored and not sent to other bridges
|
|
#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
|
|
#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
|
|
IgnoreMessages="^~~ badword"
|
|
|
|
#messages you want to replace.
|
|
#it replaces outgoing messages from the bridge.
|
|
#so you need to place it by the sending bridge definition.
|
|
#regular expressions supported
|
|
#some examples:
|
|
#this replaces cat => dog and sleep => awake
|
|
#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
|
|
#this replaces every number with number. 123 => numbernumbernumber
|
|
#replacemessages=[ ["[0-9]","number"] ]
|
|
#optional (default empty)
|
|
ReplaceMessages=[ ["cat","dog"] ]
|
|
|
|
#nicks you want to replace.
|
|
#see replacemessages for syntaxa
|
|
#optional (default empty)
|
|
ReplaceNicks=[ ["user--","user"] ]
|
|
|
|
#Extractnicks is used to for example rewrite messages from other relaybots
|
|
#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
|
|
#some examples:
|
|
#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
|
|
#you can use multiple entries for multiplebots
|
|
#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
|
|
#OPTIONAL (default empty)
|
|
ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
|
|
|
|
#extra label that can be used in the RemoteNickFormat
|
|
#optional (default empty)
|
|
Label=""
|
|
|
|
#RemoteNickFormat defines how remote users appear on this bridge
|
|
#See [general] config section for default options
|
|
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
|
|
|
|
#Enable to show users joins/parts from other bridges
|
|
#Currently works for messages from the following bridges: irc, mattermost, slack, discord
|
|
#OPTIONAL (default false)
|
|
ShowJoinPart=false
|
|
|
|
#Do not send joins/parts to other bridges
|
|
#Currently works for messages from the following bridges: irc, mattermost, slack
|
|
#OPTIONAL (default false)
|
|
NoSendJoinPart=false
|
|
|
|
#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
|
|
#It will strip other characters from the nick
|
|
#OPTIONAL (default false)
|
|
StripNick=false
|
|
|
|
#Enable to show topic changes from other bridges
|
|
#Only works hiding/show topic changes from slack bridge for now
|
|
#OPTIONAL (default false)
|
|
ShowTopicChange=false
|
|
|
|
#Opportunistically preserve threaded replies between Slack channels.
|
|
#This only works if the parent message is still in the cache.
|
|
#Cache is flushed between restarts.
|
|
#Note: Not currently working on gateways with mixed bridges of
|
|
# both slack and slack-legacy type. Context in issue #624.
|
|
#OPTIONAL (default false)
|
|
PreserveThreading=false
|
|
|
|
#Enable showing "user_typing" events from across gateway when available.
|
|
#Protip: Set your bot/user's "Full Name" to be "Someone (over chat bridge)",
|
|
#and so the message will say "Someone (over chat bridge) is typing".
|
|
#OPTIONAL (default false)
|
|
ShowUserTyping=false
|
|
|
|
#Message to show when a message is too big
|
|
#Default "<clipped message>"
|
|
MessageClipped="<clipped message>"
|
|
|
|
###################################################################
|
|
#discord section
|
|
###################################################################
|
|
[discord]
|
|
|
|
# You can configure multiple servers "[discord.name]" or "[discord.name2]"
|
|
# In this example we use [discord.game]
|
|
#REQUIRED
|
|
[discord.game]
|
|
# Token (REQUIRED) is the token to connect with Discord API
|
|
# You can get your token by following the instructions on
|
|
# https://github.com/reactiflux/discord-irc/wiki/Creating-a-discord-bot-&-getting-a-token
|
|
# If you want roles/groups mentions to be shown with names instead of ID, you'll need to give your bot the "Manage Roles" permission.
|
|
Token="Yourtokenhere"
|
|
|
|
# Server (REQUIRED) is the ID or name of the guild to connect to, selected from the guilds the bot has been invited to
|
|
Server="yourservername"
|
|
|
|
## RELOADABLE SETTINGS
|
|
## All settings below can be reloaded by editing the file.
|
|
## They are also all optional.
|
|
|
|
# AllowMention controls which mentions are allowed. If not specified, all mentions are allowed.
|
|
# Note that even when a mention is not allowed, it will still be displayed nicely and be clickable. It just prevents the ping/notification.
|
|
#
|
|
# "everyone" allows @everyone and @here mentions
|
|
# "roles" allows @role mentions
|
|
# "users" allows @user mentions
|
|
AllowMention=["everyone", "roles", "users"]
|
|
|
|
# ShowEmbeds shows the title, description and URL of embedded messages (sent by other bots)
|
|
ShowEmbeds=false
|
|
|
|
# UseLocalAvatar specifies source bridges for which an avatar should be 'guessed' when an incoming message has no avatar.
|
|
# This works by comparing the username of the message to an existing Discord user, and using the avatar of the Discord user.
|
|
#
|
|
# This only works if WebhookURL is set (AND the message has no avatar).
|
|
# Example: ["irc"]
|
|
UseLocalAvatar=[]
|
|
|
|
# UseUserName shows the username instead of the server nickname
|
|
UseUserName=false
|
|
|
|
# UseDiscriminator appends the `#xxxx` discriminator when used with UseUserName
|
|
UseDiscriminator=false
|
|
|
|
# AutoWebhooks automatically configures message sending in the style of puppets.
|
|
# This is an easier alternative to manually configuring "WebhookURL" for each gateway,
|
|
# as turning this on will automatically load or create webhooks for each channel.
|
|
# This feature requires the "Manage Webhooks" permission (either globally or as per-channel).
|
|
AutoWebhooks=false
|
|
|
|
# EditDisable disables sending of edits to other bridges
|
|
EditDisable=false
|
|
|
|
# EditSuffix specifies the message to be appended to every edited message
|
|
# Example: " (edited)"
|
|
EditSuffix=""
|
|
|
|
# IgnoreNicks mutes outgoing messages from certain users.
|
|
# Messages from these users will not be transmitted to other bridges.
|
|
# Regular expressions are also supported.
|
|
# Example: "ircspammer1 ircspammer2"
|
|
IgnoreNicks=""
|
|
|
|
# IgnoreMessages mutes outgoing messages of a certain format.
|
|
# Messages matching this regular expression will not be transmitted sent to other bridges
|
|
# See https://regex-golang.appspot.com/assets/html/index.html for more regex info
|
|
#
|
|
# Example that ignores messages starting with ~~ or messages containing badword:
|
|
# IgnoreMessages="^~~ badword"
|
|
IgnoreMessages=""
|
|
|
|
# ReplaceMessages replaces substrings of messages in outgoing messages.
|
|
# Regular expressions are supported.
|
|
#
|
|
# Example that replaces 'cat' => 'dog' and 'sleep' => 'awake':
|
|
# ReplaceMessages=[ ["cat","dog"], ["sleep","awake"] ]
|
|
# Example that replaces all digits with the letter 'X', so 'hello123' becomes 'helloXXX':
|
|
# ReplaceMessages=[ ["[0-9]","X"] ]
|
|
ReplaceMessages=[]
|
|
|
|
# ReplaceNicks replaces substrings of usernames in outgoing messages.
|
|
# See the ReplaceMessages setting for examples.
|
|
# Example: [ ["user--","user"] ]
|
|
ReplaceNicks=[]
|
|
|
|
# ExtractNicks allows for interoperability with other bridge software by rewriting messages and extracting usernames.
|
|
#
|
|
# Recommended reading:
|
|
# - https://github.com/42wim/matterbridge/issues/466
|
|
# - https://github.com/42wim/matterbridge/issues/713
|
|
#
|
|
# This example translates the following message
|
|
# "Relaybot: <relayeduser> something interesting"
|
|
# into this message
|
|
# "relayeduser: something interesting"
|
|
# like so:
|
|
# ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
|
|
#
|
|
# This example translates the following message
|
|
# "otherbot: (relayeduser) something else"
|
|
# into this message
|
|
# "relayeduser: something else"
|
|
# like so:
|
|
# ExtractNicks=[ [ "otherbot","\\((.*?)\\)\\s+" ] ]
|
|
#
|
|
# This example combines both of the above examples into one:
|
|
# ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
|
|
#
|
|
ExtractNicks=[]
|
|
|
|
# Label is as an extra identifier for use in the RemoteNickFormat setting.
|
|
Label=""
|
|
|
|
# RemoteNickFormat formats how remote users appear on this bridge.
|
|
# See the [general] config section for default options
|
|
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
|
|
|
|
# ShowJoinPart emits messages that show joins/parts from other bridges
|
|
# Supported from the following bridges: irc, mattermost, slack, discord
|
|
ShowJoinPart=false
|
|
|
|
# StripNick strips non-alphanumeric characters from nicknames.
|
|
# Recommended reading: https://github.com/42wim/matterbridge/issues/285
|
|
StripNick=false
|
|
|
|
# ShowTopicChange emits messages that show topic/purpose updates from other bridges
|
|
# Supported from the following bridges: slack
|
|
ShowTopicChange=false
|
|
|
|
# SyncTopic synchronises topic/purpose updates from other bridges
|
|
# Supported from the following bridges: slack
|
|
SyncTopic=false
|
|
|
|
#Message to show when a message is too big
|
|
#Default "<clipped message>"
|
|
MessageClipped="<clipped message>"
|
|
|
|
###################################################################
|
|
#telegram section
|
|
###################################################################
|
|
[telegram]
|
|
|
|
#You can configure multiple servers "[telegram.name]" or "[telegram.name2]"
|
|
#In this example we use [telegram.secure]
|
|
#REQUIRED
|
|
[telegram.secure]
|
|
#Token to connect with telegram API
|
|
#See https://core.telegram.org/bots#6-botfather and https://www.linkedin.com/pulse/telegram-bots-beginners-marco-frau
|
|
#REQUIRED
|
|
Token="Yourtokenhere"
|
|
|
|
## RELOADABLE SETTINGS
|
|
## Settings below can be reloaded by editing the file
|
|
|
|
#OPTIONAL (default empty)
|
|
#Supported formats are:
|
|
#"HTML" https://core.telegram.org/bots/api#html-style
|
|
#"Markdown" https://core.telegram.org/bots/api#markdown-style - deprecated, doesn't display links with underscores correctly
|
|
#"MarkdownV2" https://core.telegram.org/bots/api#markdownv2-style
|
|
#"HTMLNick" - only allows HTML for the nick, the message itself will be html-escaped
|
|
MessageFormat=""
|
|
|
|
#OPTIONAL (default false)
|
|
#Disables link previews for links in messages
|
|
DisableWebPagePreview=false
|
|
|
|
#If enabled use the "First Name" as username. If this is empty use the Username
|
|
#If disabled use the "Username" as username. If this is empty use the First Name
|
|
#If all names are empty, username will be "unknown"
|
|
#OPTIONAL (default false)
|
|
UseFirstName=false
|
|
|
|
#WARNING! If enabled this will relay GIF/stickers/documents and other attachments as URLs
|
|
#Those URLs will contain your bot-token. This may not be what you want.
|
|
#For now there is no secure way to relay GIF/stickers/documents without seeing your token.
|
|
#OPTIONAL (default false)
|
|
UseInsecureURL=false
|
|
|
|
#Disable quoted/reply messages
|
|
#OPTIONAL (default false)
|
|
QuoteDisable=false
|
|
|
|
#Set the max. quoted length if 0 the whole message will be quoted
|
|
#OPTIONAL (default 0)
|
|
QuoteLengthLimit=0
|
|
|
|
#Format quoted/reply messages
|
|
#OPTIONAL (default "{MESSAGE} (re @{QUOTENICK}: {QUOTEMESSAGE})")
|
|
QuoteFormat="{MESSAGE} (re @{QUOTENICK}: {QUOTEMESSAGE})"
|
|
|
|
#Convert WebP images to PNG before upload.
|
|
#https://github.com/42wim/matterbridge/issues/398
|
|
#OPTIONAL (default false)
|
|
MediaConvertWebPToPNG=false
|
|
|
|
#Convert Tgs (Telegram animated sticker) images to PNG before upload.
|
|
#This is useful when your bridge also contains platforms that do not support animated WebP files, like Discord.
|
|
#This requires the external dependency `lottie`, which can be installed like this:
|
|
#`pip install lottie cairosvg`
|
|
#https://github.com/42wim/matterbridge/issues/874
|
|
#MediaConvertTgs="png"
|
|
|
|
#Disable sending of edits to other bridges
|
|
#OPTIONAL (default false)
|
|
EditDisable=false
|
|
|
|
#Message to be appended to every edited message
|
|
#OPTIONAL (default empty)
|
|
EditSuffix=" (edited)"
|
|
|
|
#Nicks you want to ignore.
|
|
#Regular expressions supported
|
|
#Messages from those users will not be sent to other bridges.
|
|
#OPTIONAL
|
|
IgnoreNicks="spammer1 spammer2"
|
|
|
|
#Messages you want to ignore.
|
|
#Messages matching these regexp will be ignored and not sent to other bridges
|
|
#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
|
|
#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
|
|
IgnoreMessages="^~~ badword"
|
|
|
|
#messages you want to replace.
|
|
#it replaces outgoing messages from the bridge.
|
|
#so you need to place it by the sending bridge definition.
|
|
#regular expressions supported
|
|
#some examples:
|
|
#this replaces cat => dog and sleep => awake
|
|
#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
|
|
#this replaces every number with number. 123 => numbernumbernumber
|
|
#replacemessages=[ ["[0-9]","number"] ]
|
|
#optional (default empty)
|
|
ReplaceMessages=[ ["cat","dog"] ]
|
|
|
|
#nicks you want to replace.
|
|
#see replacemessages for syntaxa
|
|
#optional (default empty)
|
|
ReplaceNicks=[ ["user--","user"] ]
|
|
|
|
#Extractnicks is used to for example rewrite messages from other relaybots
|
|
#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
|
|
#some examples:
|
|
#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
|
|
#you can use multiple entries for multiplebots
|
|
#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
|
|
#OPTIONAL (default empty)
|
|
ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
|
|
|
|
#extra label that can be used in the RemoteNickFormat
|
|
#optional (default empty)
|
|
Label=""
|
|
|
|
#RemoteNickFormat defines how remote users appear on this bridge
|
|
#See [general] config section for default options
|
|
#
|
|
#WARNING: if you have set MessageFormat="HTML" be sure that this format matches the guidelines
|
|
#on https://core.telegram.org/bots/api#html-style otherwise the message will not go through to
|
|
#telegram! eg <{NICK}> should be <{NICK}>
|
|
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
|
|
|
|
#Enable to show users joins/parts from other bridges
|
|
#Currently works for messages from the following bridges: irc, mattermost, slack, discord
|
|
#OPTIONAL (default false)
|
|
ShowJoinPart=false
|
|
|
|
#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
|
|
#It will strip other characters from the nick
|
|
#OPTIONAL (default false)
|
|
StripNick=false
|
|
|
|
#Enable to show topic changes from other bridges
|
|
#Only works hiding/show topic changes from slack bridge for now
|
|
#OPTIONAL (default false)
|
|
ShowTopicChange=false
|
|
|
|
###################################################################
|
|
#rocketchat section
|
|
###################################################################
|
|
[rocketchat]
|
|
#You can configure multiple servers "[rocketchat.name]" or "[rocketchat.name2]"
|
|
#In this example we use [rocketchat.work]
|
|
#REQUIRED
|
|
|
|
[rocketchat.rockme]
|
|
#The rocketchat hostname. (prefix it with http or https)
|
|
#REQUIRED (when not using webhooks)
|
|
Server="https://yourrocketchatserver.domain.com:443"
|
|
|
|
#login/pass of your bot.
|
|
#login needs to be the login with email address! user@domain.com
|
|
#Use a dedicated user for this and not your own!
|
|
#REQUIRED (when not using webhooks)
|
|
Login="yourlogin@domain.com"
|
|
Password="yourpass"
|
|
# When using access token set Login to the User ID associated with your token and Token to your token.
|
|
# When Token is set Password is ignored.
|
|
# Login="yOurUSerID"
|
|
# Token="YoUrUsER_toKEN"
|
|
|
|
|
|
#### Settings for webhook matterbridge.
|
|
#USE DEDICATED BOT USER WHEN POSSIBLE! This allows you to use advanced features like message editing/deleting and uploads
|
|
#You don't need to configure this, if you have configured the settings
|
|
#above.
|
|
|
|
#Url is your incoming webhook url as specified in rocketchat
|
|
#Read #https://rocket.chat/docs/administrator-guides/integrations/#how-to-create-a-new-incoming-webhook
|
|
#See administration - integrations - new integration - incoming webhook
|
|
#REQUIRED
|
|
WebhookURL="https://yourdomain/hooks/yourhookkey"
|
|
|
|
#Address to listen on for outgoing webhook requests from rocketchat.
|
|
#See administration - integrations - new integration - outgoing webhook
|
|
#REQUIRED
|
|
WebhookBindAddress="0.0.0.0:9999"
|
|
|
|
#Your nick/username as specified in your incoming webhook "Post as" setting
|
|
#REQUIRED
|
|
Nick="matterbot"
|
|
|
|
#Enable this to make a http connection (instead of https) to your rocketchat
|
|
#OPTIONAL (default false)
|
|
NoTLS=false
|
|
|
|
#Enable to not verify the certificate on your rocketchat server.
|
|
#e.g. when using selfsigned certificates
|
|
#OPTIONAL (default false)
|
|
SkipTLSVerify=true
|
|
|
|
#### End settings for webhook matterbridge.
|
|
|
|
## RELOADABLE SETTINGS
|
|
## Settings below can be reloaded by editing the file
|
|
|
|
#Whether to prefix messages from other bridges to rocketchat with the sender's nick.
|
|
#Useful if username overrides for incoming webhooks isn't enabled on the
|
|
#rocketchat server. If you set PrefixMessagesWithNick to true, each message
|
|
#from bridge to rocketchat will by default be prefixed by the RemoteNickFormat setting. i
|
|
#if you're using login/pass you can better enable because of this bug:
|
|
#https://github.com/RocketChat/Rocket.Chat/issues/7549
|
|
#OPTIONAL (default false)
|
|
PrefixMessagesWithNick=false
|
|
|
|
#Nicks you want to ignore.
|
|
#Regular expressions supported
|
|
#Messages from those users will not be sent to other bridges.
|
|
#OPTIONAL
|
|
IgnoreNicks="ircspammer1 ircspammer2"
|
|
|
|
#Messages you want to ignore.
|
|
#Messages matching these regexp will be ignored and not sent to other bridges
|
|
#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
|
|
#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
|
|
IgnoreMessages="^~~ badword"
|
|
|
|
#messages you want to replace.
|
|
#it replaces outgoing messages from the bridge.
|
|
#so you need to place it by the sending bridge definition.
|
|
#regular expressions supported
|
|
#some examples:
|
|
#this replaces cat => dog and sleep => awake
|
|
#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
|
|
#this replaces every number with number. 123 => numbernumbernumber
|
|
#replacemessages=[ ["[0-9]","number"] ]
|
|
#optional (default empty)
|
|
ReplaceMessages=[ ["cat","dog"] ]
|
|
|
|
#nicks you want to replace.
|
|
#see replacemessages for syntaxa
|
|
#optional (default empty)
|
|
ReplaceNicks=[ ["user--","user"] ]
|
|
|
|
#Extractnicks is used to for example rewrite messages from other relaybots
|
|
#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
|
|
#some examples:
|
|
#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
|
|
#you can use multiple entries for multiplebots
|
|
#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
|
|
#OPTIONAL (default empty)
|
|
ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
|
|
|
|
#extra label that can be used in the RemoteNickFormat
|
|
#optional (default empty)
|
|
Label=""
|
|
|
|
#RemoteNickFormat defines how remote users appear on this bridge
|
|
#See [general] config section for default options
|
|
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
|
|
|
|
#Enable to show users joins/parts from other bridges
|
|
#Currently works for messages from the following bridges: irc, mattermost, slack, discord
|
|
#OPTIONAL (default false)
|
|
ShowJoinPart=false
|
|
|
|
#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
|
|
#It will strip other characters from the nick
|
|
#OPTIONAL (default false)
|
|
StripNick=false
|
|
|
|
#Enable to show topic changes from other bridges
|
|
#Only works hiding/show topic changes from slack bridge for now
|
|
#OPTIONAL (default false)
|
|
ShowTopicChange=false
|
|
|
|
###################################################################
|
|
#matrix section
|
|
###################################################################
|
|
[matrix]
|
|
#You can configure multiple servers "[matrix.name]" or "[matrix.name2]"
|
|
#In this example we use [matrix.neo]
|
|
#REQUIRED
|
|
|
|
[matrix.neo]
|
|
#Server is your homeserver (eg https://matrix.org)
|
|
#REQUIRED
|
|
Server="https://matrix.org"
|
|
|
|
#Authentication for your bot.
|
|
#You can use either login/password OR mxid/token. The latter will be preferred if found.
|
|
#Use a dedicated user for this and not your own!
|
|
#Messages sent from this user will not be relayed to avoid loops.
|
|
#REQUIRED
|
|
Login="yourlogin"
|
|
Password="yourpass"
|
|
#OR
|
|
MxID="@yourlogin:domain.tld"
|
|
Token="tokenforthebotuser"
|
|
|
|
#Whether to send the homeserver suffix. eg ":matrix.org" in @username:matrix.org
|
|
#to other bridges, or only send "username".(true only sends username)
|
|
#OPTIONAL (default false)
|
|
NoHomeServerSuffix=false
|
|
|
|
#Whether to disable sending of HTML content to matrix
|
|
#See https://github.com/42wim/matterbridge/issues/1022
|
|
#OPTIONAL (default false)
|
|
HTMLDisable=false
|
|
|
|
## RELOADABLE SETTINGS
|
|
## Settings below can be reloaded by editing the file
|
|
|
|
# UseUserName shows the username instead of the server nickname
|
|
UseUserName=false
|
|
|
|
#Nicks you want to ignore.
|
|
#Regular expressions supported
|
|
#Messages from those users will not be sent to other bridges.
|
|
#OPTIONAL
|
|
IgnoreNicks="spammer1 spammer2"
|
|
|
|
#Messages you want to ignore.
|
|
#Messages matching these regexp will be ignored and not sent to other bridges
|
|
#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
|
|
#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
|
|
IgnoreMessages="^~~ badword"
|
|
|
|
#messages you want to replace.
|
|
#it replaces outgoing messages from the bridge.
|
|
#so you need to place it by the sending bridge definition.
|
|
#regular expressions supported
|
|
#some examples:
|
|
#this replaces cat => dog and sleep => awake
|
|
#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
|
|
#this replaces every number with number. 123 => numbernumbernumber
|
|
#replacemessages=[ ["[0-9]","number"] ]
|
|
#optional (default empty)
|
|
ReplaceMessages=[ ["cat","dog"] ]
|
|
|
|
#nicks you want to replace.
|
|
#see replacemessages for syntaxa
|
|
#optional (default empty)
|
|
ReplaceNicks=[ ["user--","user"] ]
|
|
|
|
#Extractnicks is used to for example rewrite messages from other relaybots
|
|
#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
|
|
#some examples:
|
|
#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
|
|
#you can use multiple entries for multiplebots
|
|
#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
|
|
#OPTIONAL (default empty)
|
|
ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
|
|
|
|
#extra label that can be used in the RemoteNickFormat
|
|
#optional (default empty)
|
|
Label=""
|
|
|
|
#RemoteNickFormat defines how remote users appear on this bridge
|
|
#See [general] config section for default options
|
|
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
|
|
|
|
#Enable to show users joins/parts from other bridges
|
|
#Currently works for messages from the following bridges: irc, mattermost, slack, discord
|
|
#OPTIONAL (default false)
|
|
ShowJoinPart=false
|
|
|
|
#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
|
|
#It will strip other characters from the nick
|
|
#OPTIONAL (default false)
|
|
StripNick=false
|
|
|
|
#Enable to show topic changes from other bridges
|
|
#Only works hiding/show topic changes from slack bridge for now
|
|
#OPTIONAL (default false)
|
|
ShowTopicChange=false
|
|
|
|
###################################################################
|
|
#steam section
|
|
###################################################################
|
|
[steam]
|
|
#You can configure multiple servers "[steam.name]" or "[steam.name2]"
|
|
#In this example we use [steam.gamechat]
|
|
#REQUIRED
|
|
|
|
[steam.gamechat]
|
|
#login/pass of your bot.
|
|
#Use a dedicated user for this and not your own account!
|
|
#REQUIRED
|
|
Login="yourlogin"
|
|
Password="yourpass"
|
|
|
|
#steamguard mail authcode (not the 2FA code)
|
|
#OPTIONAL
|
|
Authcode="ABCE12"
|
|
|
|
## RELOADABLE SETTINGS
|
|
## Settings below can be reloaded by editing the file
|
|
|
|
#Whether to prefix messages from other bridges to matrix with the sender's nick.
|
|
#Useful if username overrides for incoming webhooks isn't enabled on the
|
|
#matrix server. If you set PrefixMessagesWithNick to true, each message
|
|
#from bridge to matrix will by default be prefixed by the RemoteNickFormat setting. i
|
|
#OPTIONAL (default false)
|
|
PrefixMessagesWithNick=false
|
|
|
|
#Nicks you want to ignore.
|
|
#Regular expressions supported
|
|
#Messages from those users will not be sent to other bridges.
|
|
#OPTIONAL
|
|
IgnoreNicks="spammer1 spammer2"
|
|
|
|
#Messages you want to ignore.
|
|
#Messages matching these regexp will be ignored and not sent to other bridges
|
|
#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
|
|
#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
|
|
IgnoreMessages="^~~ badword"
|
|
|
|
#messages you want to replace.
|
|
#it replaces outgoing messages from the bridge.
|
|
#so you need to place it by the sending bridge definition.
|
|
#regular expressions supported
|
|
#some examples:
|
|
#this replaces cat => dog and sleep => awake
|
|
#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
|
|
#this replaces every number with number. 123 => numbernumbernumber
|
|
#replacemessages=[ ["[0-9]","number"] ]
|
|
#optional (default empty)
|
|
ReplaceMessages=[ ["cat","dog"] ]
|
|
|
|
#nicks you want to replace.
|
|
#see replacemessages for syntaxa
|
|
#optional (default empty)
|
|
ReplaceNicks=[ ["user--","user"] ]
|
|
|
|
#Extractnicks is used to for example rewrite messages from other relaybots
|
|
#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
|
|
#some examples:
|
|
#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
|
|
#you can use multiple entries for multiplebots
|
|
#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
|
|
#OPTIONAL (default empty)
|
|
ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
|
|
|
|
#extra label that can be used in the RemoteNickFormat
|
|
#optional (default empty)
|
|
Label=""
|
|
|
|
#RemoteNickFormat defines how remote users appear on this bridge
|
|
#See [general] config section for default options
|
|
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
|
|
|
|
#Enable to show users joins/parts from other bridges
|
|
#Currently works for messages from the following bridges: irc, mattermost, slack, discord
|
|
#OPTIONAL (default false)
|
|
ShowJoinPart=false
|
|
|
|
#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
|
|
#It will strip other characters from the nick
|
|
#OPTIONAL (default false)
|
|
StripNick=false
|
|
|
|
#Enable to show topic changes from other bridges
|
|
#Only works hiding/show topic changes from slack bridge for now
|
|
#OPTIONAL (default false)
|
|
ShowTopicChange=false
|
|
|
|
###################################################################
|
|
# NCTalk (Nextcloud Talk)
|
|
###################################################################
|
|
|
|
[nctalk.bridge]
|
|
|
|
# Url of your Nextcloud server
|
|
Server = "https://cloud.youdomain.me"
|
|
|
|
# Enable to not verify the certificate on your Nextcloud server.
|
|
# e.g. when using selfsigned certificates
|
|
# OPTIONAL (default false)
|
|
SkipTLSVerify=true
|
|
|
|
# Username of the bot
|
|
Login = "talkuser"
|
|
|
|
# Password of the bot
|
|
Password = "talkuserpass"
|
|
|
|
# Suffix for Guest Users
|
|
GuestSuffix = " (Guest)"
|
|
|
|
# Separate display name (Note: needs to be configured from Nextcloud Talk to work)
|
|
SeparateDisplayName=false
|
|
|
|
###################################################################
|
|
# Mumble
|
|
###################################################################
|
|
|
|
[mumble.bridge]
|
|
|
|
# Host and port of your Mumble server
|
|
Server = "mumble.yourdomain.me:64738"
|
|
|
|
# Nickname to log in as
|
|
Nick = "matterbridge"
|
|
|
|
# Some servers require a password
|
|
# OPTIONAL (default empty)
|
|
Password = "serverpasswordhere"
|
|
|
|
# User comment to set on the Mumble user, visible to other users.
|
|
# OPTIONAL (default empty)
|
|
UserComment="I am bridging text messages between this channel and #general on irc.yourdomain.me"
|
|
|
|
# Self-signed TLS client certificate + private key used to connect to
|
|
# Mumble. This is required if you want to register the matterbridge
|
|
# user on your Mumble server, so its nick becomes reserved.
|
|
# You can generate a keypair using e.g.
|
|
#
|
|
# openssl req -x509 -newkey rsa:2048 -nodes -days 10000 \
|
|
# -keyout mumble.key -out mumble.crt
|
|
#
|
|
# To actually register the matterbridege user, connect to Mumble as an
|
|
# admin, right click on the user and click "Register".
|
|
#
|
|
# OPTIONAL (default empty)
|
|
TLSClientCertificate="mumble.crt"
|
|
TLSClientKey="mumble.key"
|
|
|
|
# TLS CA certificate used to validate the Mumble server.
|
|
# OPTIONAL (defaults to Go system CA)
|
|
TLSCACertificate=mumble-ca.crt
|
|
|
|
# Enable to not verify the certificate on your Mumble server.
|
|
# e.g. when using selfsigned certificates
|
|
# OPTIONAL (default false)
|
|
SkipTLSVerify=false
|
|
|
|
#Message to show when a message is too big
|
|
#Default "<clipped message>"
|
|
MessageClipped="<clipped message>"
|
|
|
|
###################################################################
|
|
#VK
|
|
###################################################################
|
|
#
|
|
[vk.myvk]
|
|
#Group access token
|
|
#See https://vk.com/dev/bots_docs
|
|
Token="Yourtokenhere"
|
|
|
|
#Group ID
|
|
#For example in URL https://vk.com/public168963511 group ID is 168963511
|
|
GroupID=123456789
|
|
|
|
###################################################################
|
|
# WhatsApp
|
|
###################################################################
|
|
|
|
[whatsapp.bridge]
|
|
|
|
# Number you will use as a relay bot. Tip: Get some disposable sim card, don't rely on your own number.
|
|
Number="+48111222333"
|
|
|
|
# First time that you login you will need to scan QR code, then credentials willl be saved in a session file
|
|
# If you won't set SessionFile then you will need to scan QR code on every restart
|
|
# optional (by default the session is stored only in memory, till restarting matterbridge)
|
|
SessionFile="session-48111222333.gob"
|
|
|
|
# If your terminal is white we need to invert QR code in order for it to be scanned properly
|
|
# optional (default false)
|
|
QrOnWhiteTerminal=true
|
|
|
|
# Messages will be seen by other WhatsApp contacts as coming from the bridge. Original nick will be part of the message.
|
|
RemoteNickFormat="@{NICK}: "
|
|
|
|
# extra label that can be used in the RemoteNickFormat
|
|
# optional (default empty)
|
|
Label="Organization"
|
|
|
|
|
|
|
|
###################################################################
|
|
# zulip
|
|
###################################################################
|
|
|
|
[zulip]
|
|
|
|
#You can configure multiple servers "[zulip.name]" or "[zulip.name2]"
|
|
#In this example we use [zulip.streamchat]
|
|
#REQUIRED
|
|
|
|
[zulip.streamchat]
|
|
#Token to connect with zulip API (called bot API key in Settings - Your bots)
|
|
#REQUIRED
|
|
Token="Yourtokenhere"
|
|
|
|
#Username of the bot, normally called yourbot-bot@yourserver.zulipchat.com
|
|
#See username in Settings - Your bots
|
|
#REQUIRED
|
|
Login="yourbot-bot@yourserver.zulipchat.com"
|
|
|
|
#Servername of your zulip instance
|
|
#REQUIRED
|
|
Server="https://yourserver.zulipchat.com"
|
|
|
|
## RELOADABLE SETTINGS
|
|
## Settings below can be reloaded by editing the file
|
|
|
|
#Nicks you want to ignore.
|
|
#Regular expressions supported
|
|
#Messages from those users will not be sent to other bridges.
|
|
#OPTIONAL
|
|
IgnoreNicks="spammer1 spammer2"
|
|
|
|
#Messages you want to ignore.
|
|
#Messages matching these regexp will be ignored and not sent to other bridges
|
|
#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
|
|
#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
|
|
IgnoreMessages="^~~ badword"
|
|
|
|
#messages you want to replace.
|
|
#it replaces outgoing messages from the bridge.
|
|
#so you need to place it by the sending bridge definition.
|
|
#regular expressions supported
|
|
#some examples:
|
|
#this replaces cat => dog and sleep => awake
|
|
#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
|
|
#this replaces every number with number. 123 => numbernumbernumber
|
|
#replacemessages=[ ["[0-9]","number"] ]
|
|
#optional (default empty)
|
|
ReplaceMessages=[ ["cat","dog"] ]
|
|
|
|
#nicks you want to replace.
|
|
#see replacemessages for syntaxa
|
|
#optional (default empty)
|
|
ReplaceNicks=[ ["user--","user"] ]
|
|
|
|
#Extractnicks is used to for example rewrite messages from other relaybots
|
|
#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
|
|
#some examples:
|
|
#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
|
|
#you can use multiple entries for multiplebots
|
|
#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
|
|
#OPTIONAL (default empty)
|
|
ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
|
|
|
|
#extra label that can be used in the RemoteNickFormat
|
|
#optional (default empty)
|
|
Label=""
|
|
|
|
#RemoteNickFormat defines how remote users appear on this bridge
|
|
#See [general] config section for default options
|
|
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
|
|
|
|
#Enable to show users joins/parts from other bridges
|
|
#Currently works for messages from the following bridges: irc, mattermost, slack, discord
|
|
#OPTIONAL (default false)
|
|
ShowJoinPart=false
|
|
|
|
#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
|
|
#It will strip other characters from the nick
|
|
#OPTIONAL (default false)
|
|
StripNick=false
|
|
|
|
#Enable to show topic changes from other bridges
|
|
#Only works hiding/show topic changes from slack bridge for now
|
|
#OPTIONAL (default false)
|
|
ShowTopicChange=false
|
|
|
|
###################################################################
|
|
# Harmony
|
|
###################################################################
|
|
|
|
[harmony.chat_harmonyapp_io]
|
|
Homeserver = "https://chat.harmonyapp.io:2289"
|
|
Token = "your token goes here"
|
|
UserID = "user id of the bot account"
|
|
Community = "community id that channels will be located in"
|
|
UseUserName = true
|
|
RemoteNickFormat = "{NICK}"
|
|
|
|
###################################################################
|
|
#API
|
|
###################################################################
|
|
[api]
|
|
#You can configure multiple API hooks
|
|
#In this example we use [api.local]
|
|
#REQUIRED
|
|
|
|
[api.local]
|
|
#Address to listen on for API
|
|
#REQUIRED
|
|
BindAddress="127.0.0.1:4242"
|
|
|
|
#Amount of messages to keep in memory
|
|
#OPTIONAL (library default 10)
|
|
Buffer=1000
|
|
|
|
#Bearer token used for authentication
|
|
#curl -H "Authorization: Bearer token" http://localhost:4242/api/messages
|
|
# https://github.com/vi/websocat
|
|
# websocat -H="Authorization: Bearer token" ws://127.0.0.1:4242/api/websocket
|
|
#OPTIONAL (no authorization if token is empty)
|
|
Token="mytoken"
|
|
|
|
#extra label that can be used in the RemoteNickFormat
|
|
#optional (default empty)
|
|
Label=""
|
|
|
|
#RemoteNickFormat defines how remote users appear on this bridge
|
|
#See [general] config section for default options
|
|
RemoteNickFormat="{NICK}"
|
|
|
|
|
|
|
|
###################################################################
|
|
#General configuration
|
|
###################################################################
|
|
# Settings here are defaults that each protocol can override
|
|
[general]
|
|
|
|
## RELOADABLE SETTINGS
|
|
## Settings below can be reloaded by editing the file
|
|
|
|
#RemoteNickFormat defines how remote users appear on this bridge
|
|
#The string "{NICK}" (case sensitive) will be replaced by the actual nick.
|
|
#The string "{NOPINGNICK}" (case sensitive) will be replaced by the actual nick / username, but with a ZWSP inside the nick, so the irc user with the same nick won't get pinged.
|
|
#The string "{USERID}" (case sensitive) will be replaced by the user ID.
|
|
#The string "{BRIDGE}" (case sensitive) will be replaced by the sending bridge
|
|
#The string "{LABEL}" (case sensitive) will be replaced by label= field of the sending bridge
|
|
#The string "{PROTOCOL}" (case sensitive) will be replaced by the protocol used by the bridge
|
|
#The string "{GATEWAY}" (case sensitive) will be replaced by the origin gateway name that is replicating the message.
|
|
#The string "{CHANNEL}" (case sensitive) will be replaced by the origin channel name used by the bridge
|
|
#The string "{TENGO}" (case sensitive) will be replaced by the output of the RemoteNickFormat script under [tengo]
|
|
#OPTIONAL (default empty)
|
|
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
|
|
|
|
#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
|
|
#It will strip other characters from the nick
|
|
#OPTIONAL (default false)
|
|
StripNick=false
|
|
|
|
|
|
#MediaServerUpload (or MediaDownloadPath) and MediaServerDownload are used for uploading
|
|
#images/files/video to a remote "mediaserver" (a webserver like caddy for example).
|
|
#When configured images/files uploaded on bridges like mattermost, slack, telegram will be
|
|
#downloaded and uploaded again to MediaServerUpload URL
|
|
#MediaDownloadPath is the filesystem path where the media file will be placed, instead of uploaded,
|
|
#for if Matterbridge has write access to the directory your webserver is serving.
|
|
#It is an alternative to MediaServerUpload.
|
|
#The MediaServerDownload will be used so that bridges without native uploading support:
|
|
#gitter, irc and xmpp will be shown links to the files on MediaServerDownload
|
|
#
|
|
#More information https://github.com/42wim/matterbridge/wiki/Mediaserver-setup-%28advanced%29
|
|
#OPTIONAL (default empty)
|
|
MediaServerUpload="https://user:pass@yourserver.com/upload"
|
|
#OPTIONAL (default empty)
|
|
MediaDownloadPath="/srv/http/yourserver.com/public/download"
|
|
#OPTIONAL (default empty)
|
|
MediaServerDownload="https://youserver.com/download"
|
|
|
|
#MediaDownloadSize is the maximum size of attachments, videos, images
|
|
#matterbridge will download and upload this file to bridges that also support uploading files.
|
|
#eg downloading from slack to upload it to mattermost
|
|
#
|
|
#It will only download from bridges that don't have public links available, which are for the moment
|
|
#slack, telegram, matrix and mattermost
|
|
#
|
|
#OPTIONAL (default 1000000 (1 megabyte))
|
|
MediaDownloadSize=1000000
|
|
|
|
#MediaDownloadBlacklist allows you to blacklist specific files from being downloaded.
|
|
#Filenames matching these regexp will not be download/uploaded to the mediaserver
|
|
#You can use regex for this, see https://regex-golang.appspot.com/assets/html/index.html for more regex info
|
|
#OPTIONAL (default empty)
|
|
MediaDownloadBlacklist=[".html$",".htm$"]
|
|
|
|
#IgnoreFailureOnStart allows you to ignore failing bridges on startup.
|
|
#Matterbridge will disable the failed bridge and continue with the other ones.
|
|
#Context: https://github.com/42wim/matterbridge/issues/455
|
|
#OPTIONAL (default false)
|
|
IgnoreFailureOnStart=false
|
|
|
|
#LogFile defines the location of a file to write logs into, rather
|
|
#than stdout.
|
|
#Logging will still happen on stdout if the file cannot be open for
|
|
#writing, or if the value is empty. Note that the log won't roll, so
|
|
#you might want to use logrotate(8) with this feature.
|
|
#OPTIONAL (default empty)
|
|
LogFile="/var/log/matterbridge.log"
|
|
|
|
###################################################################
|
|
#Tengo configuration
|
|
###################################################################
|
|
#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
|
|
|
|
[tengo]
|
|
#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: msgUserID, msgChannel, 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"
|
|
#}
|
|
#OPTIONAL (default empty)
|
|
InMessage="example.tengo"
|
|
|
|
#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
|
|
#msgUserID
|
|
#
|
|
#read-write:
|
|
#msgText, msgUsername, msgDrop
|
|
#
|
|
#msgDrop is a bool which is default false, when set true this message will be dropped
|
|
#
|
|
#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.
|
|
#OPTIONAL (default empty)
|
|
OutMessage="example.tengo"
|
|
|
|
|
|
#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, msgUserID
|
|
#
|
|
#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
|
|
#
|
|
#OPTIONAL (default empty)
|
|
RemoteNickFormat="remotenickformat.tengo"
|
|
|
|
###################################################################
|
|
#Gateway configuration
|
|
###################################################################
|
|
|
|
#You can specify multiple gateways using [[gateway]]
|
|
#Each gateway has a [[gateway.in]] and a [[gateway.out]]
|
|
#[[gateway.in]] specifies the account and channels we will receive messages from.
|
|
#[[gateway.out]] specifies the account and channels we will send the messages
|
|
#from [[gateway.in]] to.
|
|
#
|
|
#Most of the time [[gateway.in]] and [[gateway.out]] are the same if you
|
|
#want bidirectional bridging. You can then use [[gateway.inout]]
|
|
#
|
|
|
|
[[gateway]]
|
|
#REQUIRED and UNIQUE
|
|
name="gateway1"
|
|
#Enable enables this gateway
|
|
##OPTIONAL (default false)
|
|
enable=true
|
|
|
|
# [[gateway.in]] specifies the account and channels we will receive messages from.
|
|
# The following example bridges between mattermost and irc
|
|
[[gateway.in]]
|
|
|
|
# account specified above
|
|
# REQUIRED
|
|
account="irc.libera"
|
|
|
|
# The channel key in each gateway is mapped to a similar group chat ID on the chat platform
|
|
# To find the group chat ID for different platforms, refer to the table below
|
|
#
|
|
# Platform | Identifier name | Example | Description
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# | channel | general | Do not include the # symbol
|
|
# discord | channel id | ID:123456789 | See https://github.com/42wim/matterbridge/issues/57
|
|
# | category/channel | Media/gaming | Without # symbol. If you're using discord categories to group your channels
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# gitter | username/room | general | As seen in the gitter.im URL
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# hipchat | id_channel | example needed | See https://www.hipchat.com/account/xmpp for the correct channel
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# irc | channel | #general | The # symbol is required and should be lowercase!
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# mattermost | channel | general | This is the channel name as seen in the URL, not the display name
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# matrix | #channel:server | #yourchannel:matrix.org | Encrypted rooms are not supported in matrix
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# msteams | threadId | 19:82abcxx@thread.skype | You'll find the threadId in the URL
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# mumble | channel id | 42 | The channel ID, as shown in the channel's "Edit" window
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# rocketchat | channel | #channel | # is required for private channels too
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# slack | channel name | general | Do not include the # symbol
|
|
# | channel id | ID:C123456 | The underlying ID of a channel. This doesn't work with webhooks.
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# steam | chatid | example needed | The number in the URL when you click "enter chat room" in the browser
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# nctalk | token | xs25tz5y | The token in the URL when you are in a chat. It will be the last part of the URL.
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# telegram | chatid | -123456789 | A large negative number. see https://www.linkedin.com/pulse/telegram-bots-beginners-marco-frau
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# vk | peerid | 2000000002 | A number that starts form 2000000000. Use --debug and send any message in chat to get PeerID in the logs
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# whatsapp | group JID | 48111222333-123455678999@g.us | A unique group JID. If you specify an empty string, bridge will list all the possibilities
|
|
# | "Group Name" | "Family Chat" | if you specify a group name, the bridge will find hint the JID to specify. Names can change over time and are not stable.
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# xmpp | channel | general | The room name
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# zulip | stream/topic:topic | general/topic:food | Do not use the # when specifying a topic
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
#
|
|
# REQUIRED
|
|
channel="#testing"
|
|
|
|
#OPTIONAL - only used for IRC and XMPP protocols at the moment
|
|
[gateway.in.options]
|
|
#OPTIONAL - your irc / xmpp channel key
|
|
key="yourkey"
|
|
|
|
|
|
#[[gateway.out]] specifies the account and channels we will sent messages to.
|
|
[[gateway.out]]
|
|
account="irc.libera"
|
|
channel="#testing"
|
|
|
|
#OPTIONAL - only used for IRC and XMPP protocols at the moment
|
|
[gateway.out.options]
|
|
#OPTIONAL - your irc / xmpp channel key
|
|
key="yourkey"
|
|
|
|
#[[gateway.inout]] can be used when then channel will be used to receive from
|
|
#and send messages to
|
|
[[gateway.inout]]
|
|
account="mattermost.work"
|
|
channel="off-topic"
|
|
|
|
#OPTIONAL - only used for IRC and XMPP protocols at the moment
|
|
[gateway.inout.options]
|
|
#OPTIONAL - your irc / xmpp channel key
|
|
key="yourkey"
|
|
|
|
# Discord specific gateway options
|
|
[[gateway.inout]]
|
|
account="discord.game"
|
|
channel="mygreatgame"
|
|
|
|
[gateway.inout.options]
|
|
# WebhookURL sends messages in the style of "puppets". You must configure a webhook URL for each channel you want to bridge.
|
|
# If you have more than one channel and don't wnat to configure each channel manually, see the "AutoWebhooks" option in the gateway config.
|
|
# Example: "https://discord.com/api/webhooks/1234/abcd_xyzw"
|
|
WebhookURL=""
|
|
|
|
[[gateway.inout]]
|
|
account="zulip.streamchat"
|
|
channel="general/topic:mytopic"
|
|
|
|
[[gateway.inout]]
|
|
account="harmony.chat_harmonyapp_io"
|
|
channel="channel id goes here"
|
|
|
|
#API example
|
|
#[[gateway.inout]]
|
|
#account="api.local"
|
|
#channel="api"
|
|
#To send data to the api:
|
|
#curl -XPOST -H 'Content-Type: application/json' -d '{"text":"test","username":"randomuser","gateway":"gateway1"}' http://localhost:4242/api/message
|
|
#To read from the api:
|
|
#curl http://localhost:4242/api/messages
|
|
|
|
#If you want to do a 1:1 mapping between protocols where the channelnames are the same
|
|
#e.g. slack and mattermost you can use the samechannelgateway configuration
|
|
#the example configuration below send messages from channel testing on mattermost to
|
|
#channel testing on slack and vice versa. (and for the channel testing2 and testing3)
|
|
|
|
[[samechannelgateway]]
|
|
name="samechannel1"
|
|
enable = false
|
|
accounts = [ "mattermost.work","slack.hobby" ]
|
|
channels = [ "testing","testing2","testing3"]
|