* Allow substitution of bot's nick in RunCommands
* Tweak description of "{BOTNICK}"
Made the description of "{BOTNICK}" consistent with that of other keywords
* discord: add nosendjoinpart support
This allows the discord bridge to be configured with `nosendjoinpart`,
preventing discord-originating join/part messages from being send to
other bridged platforms.
* discord: Ignore incoming events for other guilds
Ignore all incoming discord events originating from Guild IDs other than
the one we have configured.
This is necessary because discord bots receive events for *all* discord
guilds that they are present in.
Fixes#1612
Matrix quotes replies and as of matterbridge 1.24.0 we strip those as this causes
issues with bridges support threading and have PreserveThreading enabled.
Introduced via 9a8ce9b17e
But if you for example use mattermost or discord with webhooks you'll need to enable
this if you want something that looks like a reply from matrix.
See issues:
- https://github.com/42wim/matterbridge/issues/1819
- https://github.com/42wim/matterbridge/issues/1780
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.
This allows setting custom values for the IRC username/ident and real
name (gecos) fields at server registration time with gIRC.
Co-authored-by: Wim <wim@42.be>
* Add possibility for using MxId/Token with Matrix
Makes it possible to configure a Matrix bot to use Matrix ID + Access token instead of username/password. This makes it possible to use the bot in environments where password login is disabled (for example SSO environments).
Matrix user ID's are commonly referred to as "MXID's". I thought about (ab)using "Login" here but it felt like a bad idea given it's used as "username" for the password login. None of the other configuration items felt fitting.
Closes#1429
* MxId -> MxID
* Add err != nil to matrix.NewClient
this was buried and wanted to bring it up in the config
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/874https://github.com/42wim/matterbridge/pull/1173
* Add DisablePingEveryoneHere/DisablePingRoles/DisablePingUsers keys to config
* Add basic AllowedMentions behavior to discord webhooks
* Initialize b.AllowedMentions on Discord Bridger init
* Call b.getAllowedMentions on each webhook to allow config hot reloading
* Add AllowedMentions on all Discord webhooks/messages
* Add DisablePingEveryoneHere/DisablePingRoles/DisablePingUsers to matterbridge.toml.sample
* Change 'Disable' for 'Allow' and revert logic in Discord AllowedMentions
* Update Discord AllowedMentions in matterbridge.toml.sample
* Fix typo in DisableWebPagePreview
* Replace 'AllowPingEveryoneHere' with 'AllowPingEveryone'
* Replace 3 AllowPingEveryone/Roles/Users bools with an array
* Fix typo
* Add mod_slack_webhook support to the XMPP bridge
* Replace b.webhookURL with b.GetString
* Do not return a message ID on webhook POST
* Add the XMPP webhook to the sample configuration
* irc: add support for stateless bridging via draft/relaymsg
As discussed at https://github.com/42wim/matterbridge/issues/667#issuecomment-634214165
* irc: handle the draft/relaymsg tag in spoofed messages too
* Apply suggestions from code review
Co-authored-by: Wim <wim@42.be>
* Run gofmt on irc.go
* Document relaymsg in matterbridge.toml.sample
Co-authored-by: Wim <wim@42.be>
* Add UserID to RemoteNickFormat and Tengo
* Use strings.ReplaceAll in gateway.modifyUsername
Fixes a warning from gocritic linter.
* Use Unicode escape sequence instead of raw ZWSP in gateway.modifyUsername
Fixes a warning from stylecheck linter.
* matrix: send the display name (the nickname in matrix parlance) instead of the user name
There is also the option UseUserName (already in use by the discord bridge) to turn back to the old behavior.
* matrix: update displayNames on join events
* matrix: introduce a helper.go file to keep matrix.go size reasonable