diff --git a/conf/matterbridge.toml b/conf/matterbridge.toml index d2f9ed7..a398961 100644 --- a/conf/matterbridge.toml +++ b/conf/matterbridge.toml @@ -12,7 +12,7 @@ #In this example we use [irc.freenode] #REQUIRED [irc.freenode] -#irc server to connect to. +#irc server to connect to. #REQUIRED Server="irc.freenode.net:6667" @@ -20,7 +20,7 @@ Server="irc.freenode.net:6667" #OPTIONAL (default "") Password="" -#Enable to use TLS connection to your irc server. +#Enable to use TLS connection to your irc server. #OPTIONAL (default false) UseTLS=false @@ -34,28 +34,28 @@ UseSASL=false #OPTIONAL (default false) SkipTLSVerify=true -#If you know your charset, you can specify it manually. +#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", +# "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. +#Your nick on irc. #REQUIRED Nick="matterbot" -#If you registered your bot with a service like Nickserv on freenode. +#If you registered your bot with a service like Nickserv on freenode. #Also being used when UseSASL=true # #Note: if you want do to quakenet auth, set NickServNick="Q@CServe.quakenet.org" @@ -74,8 +74,8 @@ NickServUsername="username" #OPTIONAL (default 1300) MessageDelay=1300 -#Maximum amount of messages to hold in queue. If queue is full -#messages will be dropped. +#Maximum amount of messages to hold in queue. If queue is full +#messages will be dropped. # will be add to the message that fills the queue. #OPTIONAL (default 30) MessageQueue=30 @@ -103,13 +103,23 @@ ColorNicks=false #OPTIONAL (default empty) RunCommands=["PRIVMSG user hello","PRIVMSG chanserv something"] -#Nicks you want to ignore. +#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 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 @@ -147,12 +157,12 @@ ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ] #optional (default empty) Label="" -#RemoteNickFormat defines how remote users appear on this bridge +#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 +#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 @@ -172,11 +182,30 @@ NoSendJoinPart=false #OPTIONAL (default false) StripNick=false -#Enable to show topic changes from other bridges +#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 ################################################################### @@ -186,7 +215,7 @@ ShowTopicChange=false #In this example we use [xmpp.jabber] #REQUIRED [xmpp.jabber] -#xmpp server to connect to. +#xmpp server to connect to. #REQUIRED Server="jabber.example.com:5222" @@ -211,16 +240,20 @@ Nick="xmppbot" #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. +#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 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 @@ -258,11 +291,11 @@ ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ] #optional (default empty) Label="" -#RemoteNickFormat defines how remote users appear on this bridge +#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 +#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 @@ -272,11 +305,16 @@ ShowJoinPart=false #OPTIONAL (default false) StripNick=false -#Enable to show topic changes from other bridges +#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 ################################################################### @@ -288,14 +326,14 @@ ShowTopicChange=false [mattermost.work] #The mattermost hostname. (do not prefix it with http or https) #REQUIRED (when not using webhooks) -Server="yourmattermostserver.domain" +Server="yourmattermostserver.domain" -#Your team on mattermost. +#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! +#login/pass of your bot. +#Use a dedicated user for this and not your own! #REQUIRED (when not using webhooks) Login="yourlogin" Password="yourpass" @@ -305,16 +343,16 @@ Password="yourpass" #OPTIONAL (you can use token instead of login/password) #Token="abcdefghijklm" -#Enable this to make a http connection (instead of https) to your mattermost. +#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 +#You don't need to configure this, if you have configured the settings #above. -#Url is your incoming webhook url as specified in mattermost. +#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 @@ -324,17 +362,17 @@ WebhookURL="https://yourdomain/hooks/yourhookkey" #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 +#OPTIONAL WebhookBindAddress="0.0.0.0:9999" -#Icon that will be showed in mattermost. +#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. +#Enable to not verify the certificate on your mattermost server. #e.g. when using selfsigned certificates #OPTIONAL (default false) SkipTLSVerify=true @@ -342,11 +380,11 @@ 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. +#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. +#How many nicks to list per row for formatters that support this. #OPTIONAL (default 4) NicksPerRow=4 @@ -356,11 +394,11 @@ NicksPerRow=4 #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 +#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 @@ -372,13 +410,13 @@ EditDisable=false #OPTIONAL (default empty) EditSuffix=" (edited)" -#Nicks you want to ignore. +#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 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 @@ -416,11 +454,11 @@ ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ] #optional (default empty) Label="" -#RemoteNickFormat defines how remote users appear on this bridge +#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 +#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 @@ -435,7 +473,7 @@ NoSendJoinPart=false #OPTIONAL (default false) StripNick=false -#Enable to show topic changes from other bridges +#Enable to show topic changes from other bridges #Only works hiding/show topic changes from slack bridge for now #OPTIONAL (default false) ShowTopicChange=false @@ -459,13 +497,13 @@ Token="Yourtokenhere" ## RELOADABLE SETTINGS ## Settings below can be reloaded by editing the file -#Nicks you want to ignore. +#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 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 @@ -503,11 +541,11 @@ ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ] #optional (default empty) Label="" -#RemoteNickFormat defines how remote users appear on this bridge +#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 +#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 @@ -517,7 +555,7 @@ ShowJoinPart=false #OPTIONAL (default false) StripNick=false -#Enable to show topic changes from other bridges +#Enable to show topic changes from other bridges #Only works hiding/show topic changes from slack bridge for now #OPTIONAL (default false) ShowTopicChange=false @@ -532,7 +570,7 @@ ShowTopicChange=false [keybase.myteam] -# RemoteNickFormat defines how remote users appear on this bridge +# RemoteNickFormat defines how remote users appear on this bridge # See [general] config section for default options RemoteNickFormat="{NICK} ({PROTOCOL}): " @@ -545,6 +583,96 @@ Label="" # 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: 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 ################################################################### @@ -596,7 +724,7 @@ IconURL="https://robohash.org/{NICK}.png?size=48x48" #Possible options are "table" and "plain" #OPTIONAL (default plain) NickFormatter="plain" -#How many nicks to list per row for formatters that support this. +#How many nicks to list per row for formatters that support this. #OPTIONAL (default 4) NicksPerRow=4 @@ -609,20 +737,20 @@ EditDisable=true 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 +#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. +#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 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 @@ -660,11 +788,11 @@ ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ] #optional (default empty) Label="" -#RemoteNickFormat defines how remote users appear on this bridge +#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 +#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 @@ -679,7 +807,7 @@ NoSendJoinPart=false #OPTIONAL (default false) StripNick=false -#Enable to show topic changes from other bridges +#Enable to show topic changes from other bridges #Only works hiding/show topic changes from slack bridge for now #OPTIONAL (default false) ShowTopicChange=false @@ -703,114 +831,126 @@ ShowUserTyping=false ################################################################### [discord] -#You can configure multiple servers "[discord.name]" or "[discord.name2]" -#In this example we use [discord.game] +# You can configure multiple servers "[discord.name]" or "[discord.name2]" +# In this example we use [discord.game] #REQUIRED [discord.game] -#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. -#REQUIRED +# 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" -#REQUIRED +# 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 -## Settings below can be reloaded by editing the file +## All settings below can be reloaded by editing the file. +## They are also all optional. -#Shows title, description and URL of embedded messages (sent by other bots) -#OPTIONAL (default false) +# ShowEmbeds shows the title, description and URL of embedded messages (sent by other bots) ShowEmbeds=false -#Shows the username instead of the server nickname -#OPTIONAL (default 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 -#Show #xxxx discriminator with UseUserName -#OPTIONAL (default false) +# UseDiscriminator appends the `#xxxx` discriminator when used with UseUserName UseDiscriminator=false -#Specify WebhookURL. If given, will relay messages using the Webhook, which gives a better look to messages. -#This only works if you have one discord channel, if you have multiple discord channels you'll have to specify it in the gateway config -#OPTIONAL (default empty) -WebhookURL="Yourwebhooktokenhere" +# 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 -#Disable sending of edits to other bridges -#OPTIONAL (default false) +# EditDisable disables sending of edits to other bridges EditDisable=false -#Message to be appended to every edited message -#OPTIONAL (default empty) -EditSuffix=" (edited)" +# EditSuffix specifies the message to be appended to every edited message +# Example: " (edited)" +EditSuffix="" -#Nicks you want to ignore. -#Regular expressions supported -#Messages from those users will not be sent to other bridges. -#OPTIONAL -IgnoreNicks="ircspammer1 ircspammer2" +# 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="" -#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" +# 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="" -#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"] ] +# 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=[] -#nicks you want to replace. -#see replacemessages for syntaxa -#optional (default empty) -ReplaceNicks=[ ["user--","user"] ] +# ReplaceNicks replaces substrings of usernames in outgoing messages. +# See the ReplaceMessages setting for examples. +# Example: [ ["user--","user"] ] +ReplaceNicks=[] -#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: 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+" ] ] +# 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: 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=[] -#extra label that can be used in the RemoteNickFormat -#optional (default empty) +# Label is as an extra identifier for use in the RemoteNickFormat setting. Label="" -#RemoteNickFormat defines how remote users appear on this bridge -#See [general] config section for default options +# RemoteNickFormat formats how remote users appear on this bridge. +# See the [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 emits messages that show joins/parts from other bridges +# Supported from the following bridges: irc, mattermost, slack, discord 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 strips non-alphanumeric characters from nicknames. +# Recommended reading: https://github.com/42wim/matterbridge/issues/285 StripNick=false -#Enable to show topic/purpose changes from other bridges -#Only works hiding/show topic changes from slack bridge for now -#OPTIONAL (default false) +# ShowTopicChange emits messages that show topic/purpose updates from other bridges +# Supported from the following bridges: slack ShowTopicChange=false -#Enable to sync topic/purpose changes from other bridges -#Only works syncing topic changes from slack bridge for now -#OPTIONAL (default false) +# SyncTopic synchronises topic/purpose updates from other bridges +# Supported from the following bridges: slack SyncTopic=false ################################################################### @@ -831,14 +971,19 @@ Token="Yourtokenhere" ## Settings below can be reloaded by editing the file #OPTIONAL (default empty) -#Supported formats are "HTML", "Markdown" and "HTMLNick" -#See https://core.telegram.org/bots/api#html-style -#See https://core.telegram.org/bots/api#markdown-style -#HTMLNick only allows HTML for the nick, the message itself will be html-escaped +#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 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 @@ -853,6 +998,10 @@ UseInsecureURL=false #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})" @@ -870,13 +1019,13 @@ EditDisable=false #OPTIONAL (default empty) EditSuffix=" (edited)" -#Nicks you want to ignore. +#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 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 @@ -914,7 +1063,7 @@ ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ] #optional (default empty) Label="" -#RemoteNickFormat defines how remote users appear on this bridge +#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 @@ -922,7 +1071,7 @@ Label="" #telegram! eg <{NICK}> should be <{NICK}> RemoteNickFormat="[{PROTOCOL}] <{NICK}> " -#Enable to show users joins/parts from other bridges +#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 @@ -932,7 +1081,7 @@ ShowJoinPart=false #OPTIONAL (default false) StripNick=false -#Enable to show topic changes from other bridges +#Enable to show topic changes from other bridges #Only works hiding/show topic changes from slack bridge for now #OPTIONAL (default false) ShowTopicChange=false @@ -950,9 +1099,9 @@ ShowTopicChange=false #REQUIRED (when not using webhooks) Server="https://yourrocketchatserver.domain.com:443" -#login/pass of your bot. +#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! +#Use a dedicated user for this and not your own! #REQUIRED (when not using webhooks) Login="yourlogin@domain.com" Password="yourpass" @@ -964,7 +1113,7 @@ Password="yourpass" #### 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 +#You don't need to configure this, if you have configured the settings #above. #Url is your incoming webhook url as specified in rocketchat @@ -975,7 +1124,7 @@ WebhookURL="https://yourdomain/hooks/yourhookkey" #Address to listen on for outgoing webhook requests from rocketchat. #See administration - integrations - new integration - outgoing webhook -#REQUIRED +#REQUIRED WebhookBindAddress="0.0.0.0:9999" #Your nick/username as specified in your incoming webhook "Post as" setting @@ -986,7 +1135,7 @@ Nick="matterbot" #OPTIONAL (default false) NoTLS=false -#Enable to not verify the certificate on your rocketchat server. +#Enable to not verify the certificate on your rocketchat server. #e.g. when using selfsigned certificates #OPTIONAL (default false) SkipTLSVerify=true @@ -996,22 +1145,22 @@ SkipTLSVerify=true ## 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 +#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. +#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 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 @@ -1049,11 +1198,11 @@ ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ] #optional (default empty) Label="" -#RemoteNickFormat defines how remote users appear on this bridge +#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 +#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 @@ -1063,7 +1212,7 @@ ShowJoinPart=false #OPTIONAL (default false) StripNick=false -#Enable to show topic changes from other bridges +#Enable to show topic changes from other bridges #Only works hiding/show topic changes from slack bridge for now #OPTIONAL (default false) ShowTopicChange=false @@ -1081,10 +1230,10 @@ ShowTopicChange=false #REQUIRED Server="https://matrix.org" -#login/pass of your bot. -#Use a dedicated user for this and not your own! +#login/pass of your bot. +#Use a dedicated user for this and not your own! #Messages sent from this user will not be relayed to avoid loops. -#REQUIRED +#REQUIRED Login="yourlogin" Password="yourpass" @@ -1093,23 +1242,31 @@ Password="yourpass" #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 -#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 +# UseUserName shows the username instead of the server nickname +UseUserName=false + +#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. +#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 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 @@ -1147,11 +1304,11 @@ ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ] #optional (default empty) Label="" -#RemoteNickFormat defines how remote users appear on this bridge +#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 +#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 @@ -1161,7 +1318,7 @@ ShowJoinPart=false #OPTIONAL (default false) StripNick=false -#Enable to show topic changes from other bridges +#Enable to show topic changes from other bridges #Only works hiding/show topic changes from slack bridge for now #OPTIONAL (default false) ShowTopicChange=false @@ -1175,33 +1332,33 @@ ShowTopicChange=false #REQUIRED [steam.gamechat] -#login/pass of your bot. -#Use a dedicated user for this and not your own account! -#REQUIRED +#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 +#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 +#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. +#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 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 @@ -1239,11 +1396,11 @@ ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ] #optional (default empty) Label="" -#RemoteNickFormat defines how remote users appear on this bridge +#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 +#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 @@ -1253,12 +1410,81 @@ ShowJoinPart=false #OPTIONAL (default false) StripNick=false -#Enable to show topic changes from other bridges +#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)" + +################################################################### +# +# 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 ################################################################### # @@ -1306,25 +1532,25 @@ Label="Organization" #REQUIRED Token="Yourtokenhere" -#Username of the bot, normally called yourbot-bot@yourserver.zulipchat.com -#See username in Settings - Your bots +#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 +#REQUIRED Server="https://yourserver.zulipchat.com" ## RELOADABLE SETTINGS ## Settings below can be reloaded by editing the file -#Nicks you want to ignore. +#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 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 @@ -1362,11 +1588,11 @@ ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ] #optional (default empty) Label="" -#RemoteNickFormat defines how remote users appear on this bridge +#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 +#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 @@ -1376,7 +1602,7 @@ ShowJoinPart=false #OPTIONAL (default false) StripNick=false -#Enable to show topic changes from other bridges +#Enable to show topic changes from other bridges #Only works hiding/show topic changes from slack bridge for now #OPTIONAL (default false) ShowTopicChange=false @@ -1391,7 +1617,7 @@ ShowTopicChange=false [api.local] #Address to listen on for API -#REQUIRED +#REQUIRED BindAddress="127.0.0.1:4242" #Amount of messages to keep in memory @@ -1400,6 +1626,8 @@ 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" @@ -1407,7 +1635,7 @@ Token="mytoken" #optional (default empty) Label="" -#RemoteNickFormat defines how remote users appear on this bridge +#RemoteNickFormat defines how remote users appear on this bridge #See [general] config section for default options RemoteNickFormat="{NICK}" @@ -1422,8 +1650,9 @@ RemoteNickFormat="{NICK}" ## 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 / username. +#RemoteNickFormat defines how remote users appear on this bridge +#The string "{NICK}" (case sensitive) will be replaced by the actual nick. +#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 @@ -1479,6 +1708,14 @@ MediaDownloadBlacklist=[".html$",".htm$"] #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 ################################################################### @@ -1490,7 +1727,7 @@ IgnoreFailureOnStart=false #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 +#to read: msgUserID, msgChannel, msgAccount # #The script is reloaded on every message, so you can modify the script on the fly. # @@ -1514,9 +1751,12 @@ InMessage="example.tengo" #read-only: #inAccount, inProtocol, inChannel, inGateway, inEvent #outAccount, outProtocol, outChannel, outGateway, outEvent +#msgUserID # #read-write: -#msgText, msgUsername +#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. # @@ -1529,7 +1769,7 @@ 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 +#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 # @@ -1550,7 +1790,7 @@ RemoteNickFormat="remotenickformat.tengo" #[[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 +#Most of the time [[gateway.in]] and [[gateway.out]] are the same if you #want bidirectional bridging. You can then use [[gateway.inout]] # @@ -1569,33 +1809,49 @@ enable=true # REQUIRED account="irc.freenode" - # channel to connect on that account - # How to specify them for the different bridges: + # 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 + # ------------------------------------------------------------------------------------------------------------------------------------- + # 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 + # ------------------------------------------------------------------------------------------------------------------------------------- + # 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/off-topic:food | Do not use the # when specifying a topic + # ------------------------------------------------------------------------------------------------------------------------------------- + # - # irc - #channel (# is required) (this needs to be lowercase!) - # mattermost - channel (the channel name as seen in the URL, not the displayname) - # gitter - username/room - # xmpp - channel - # slack - channel (without the #) - # - ID:C123456 (where C123456 is the channel ID) does not work with webhook - # discord - channel (without the #) - # - ID:123456789 (where 123456789 is the channel ID) - # (https://github.com/42wim/matterbridge/issues/57) - # - category/channel (without the #) if you're using discord categories to group your channels - # telegram - chatid (a large negative number, eg -123456789) - # see (https://www.linkedin.com/pulse/telegram-bots-beginners-marco-frau) - # hipchat - id_channel (see https://www.hipchat.com/account/xmpp for the correct channel) - # rocketchat - #channel (# is required (also needed for private channels!) - # matrix - #channel:server (eg #yourchannel:matrix.org) - # - encrypted rooms are not supported in matrix - # steam - chatid (a large number). - # The number in the URL when you click "enter chat room" in the browser - # whatsapp - 48111222333-123455678999@g.us A unique group JID; - # if you specify an empty string bridge will list all the possibilities - # - "Group Name" if you specify a group name the bridge will hint its JID to specify - # as group names might change in time and contain weird emoticons - # zulip - stream/topic:topicname (without the #) - # # REQUIRED channel="#testing" @@ -1615,7 +1871,7 @@ enable=true #OPTIONAL - your irc / xmpp channel key key="yourkey" - #[[gateway.inout]] can be used when then channel will be used to receive from + #[[gateway.inout]] can be used when then channel will be used to receive from #and send messages to [[gateway.inout]] account="mattermost.work" @@ -1626,13 +1882,16 @@ enable=true #OPTIONAL - your irc / xmpp channel key key="yourkey" + # Discord specific gateway options [[gateway.inout]] account="discord.game" channel="mygreatgame" - #OPTIONAL - webhookurl only works for discord (it needs a different URL for each cahnnel) [gateway.inout.options] - webhookurl="https://discordapp.com/api/webhooks/123456789123456789/C9WPqExYWONPDZabcdef-def1434FGFjstasJX9pYht73y" + # 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" @@ -1656,4 +1915,4 @@ enable=true name="samechannel1" enable = false accounts = [ "mattermost.work","slack.hobby" ] - channels = [ "testing","testing2","testing3"] \ No newline at end of file + channels = [ "testing","testing2","testing3"] diff --git a/manifest.json b/manifest.json index a76830b..e947480 100644 --- a/manifest.json +++ b/manifest.json @@ -1,5 +1,5 @@ { - "name": "matterbridge", + "name": "Matterbridge", "id": "matterbridge", "packaging_format": 1, "description": { @@ -8,13 +8,13 @@ }, "version": "1.21.0~ynh1", "url": "https://github.com/42wim/matterbridge", - "license": "GPL-3.0", + "license": "Apache-2.0", "maintainer": { - "name": "liberodark", - "email": "liberodark@gmail.com" + "name": "", + "email": "" }, "requirements": { - "yunohost": ">= 3.8.1" + "yunohost": ">= 4.0.0" }, "multi_instance": false, "services": [ @@ -26,8 +26,8 @@ "name": "domain", "type": "domain", "ask": { - "en": "Choose a domain name for ynhexample", - "fr": "Choisissez un nom de domaine pour ynhexample" + "en": "Choose a domain name for Matterbridge", + "fr": "Choisissez un nom de domaine pour Matterbridge" }, "example": "example.com" },