summaryrefslogtreecommitdiffstats
path: root/bridge/config/config.go
Commit message (Collapse)AuthorAgeFilesLines
* Add support for deleting files from slack to discord. Fixes #1705 (#1709)Wim2022-02-051-7/+9
| | | | | | | | | | | | | | | | | | | | | | | | We create a new event EventFileDelete which will be used to delete specific uploaded files using the Extra["file"] in the config.Message. We also add a new NativeID key to the FileInfo struct which will contain the native file ID of the sending bridge. When a new file is added to the config.Message.Extra["file"] map, now the bridge native file ID should be added here. When the receiving bridge receives such a message, it should keep an internal mapping of NativeID <> bridge fileid/message id. In the case of discord we map it to the resulted discord message ID after uploading it. Now when a bridge deletes a file, it should send a EventFileDelete and setting the ID to the native file ID of the bridge. When the receiving bridge will get this event it'll look into the NativeID <> bridge id mapping to find their internal ID and use it to delete the specific file on their side. For now this is implemented for slack to discord but this will be add to other bridges where useful.
* Add UserName and RealName options for IRC (#1590)Iris Morelle2021-10-161-0/+2
| | | | | | 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 MxId/Token login option for Matrix (#1438)Jason Robinson2021-05-171-2/+3
| | | | | | | | | | | | | * 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
* discord: Add AllowMention to restrict allowed mentions (#1462)Alexandre GV2021-05-131-21/+22
| | | | | | | | | | | | | | | | | | | | | | | | | * 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
* Refactor "msg-parent-not-found" to config.ParentIDNotFound (#1347)Qais Patankar2020-12-311-0/+10
|
* Add support for irc to irc notice (irc). Fixes #754 (#1305)Wim2020-11-221-0/+1
|
* Send the display name instead of the user name (matrix) (#1282)Simon THOBY2020-11-221-1/+1
| | | | | | | | | * 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
* Add NoTLS option to allow plaintext XMPP connections (#1288)George2020-11-131-1/+1
| | | Co-authored-by: George <zhoreeq@users.noreply.github.com>
* Add Mumble support (#1245)Sebastian P2020-10-011-0/+1
|
* Support Telegram animated stickers (tgs) format (#1173)Ben Wiederhake2020-08-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is half a fix for #874 This patch introduces a new config flag: - MediaConvertTgs These need to be treated independently from the existing MediaConvertWebPToPNG flag because Tgs→WebP results in an *animated* WebP, and the WebP→PNG converter can't handle animated WebP files yet. Furthermore, some platforms (like discord) don't even support animated WebP files, so the user may want to fall back to static PNGs (not APNGs). The final reason why this is only half a fix is that this introduces an external dependency, namely lottie, to be installed like this: $ pip3 install lottie cairosvg This patch works by writing the tgs to a temporary file in /tmp, calling lottie to convert it (this conversion may take several seconds!), and then deleting the temporary file. The temporary file is absolutely necessary, as lottie refuses to work on non-seekable files. If anyone comes up with a reasonable use case where /tmp is unavailable, I can add yet another config option for that, if desired. Telegram will bail out if the option is configured but lottie isn't found.
* Add an option to log into a file rather than stdout (#1168)z3bra2020-07-181-0/+11
| | | Use Logfile option in the `[general]` section
* Add sane RemoteNickFormat default for API (#1157)Qais Patankar2020-06-251-0/+12
|
* Add StripMarkdown option (irc). (#1145)Wim2020-05-231-0/+1
| | | Enable `StripMarkdown` to strip markdown for irc.
* Add an option to disable sending HTML to matrix. Fixes #1022 (#1135)Wim2020-05-141-0/+1
|
* Add JoinDelay option (irc). Fixes #1084 (#1098)Wim2020-04-191-0/+1
|
* Support JSON and YAML config formats (#1045)Jakub2020-03-181-4/+18
| | | Signed-off-by: Jakub Sokołowski <jakub@status.im>
* Add initial Microsoft Teams supportWim2020-03-011-0/+4
| | | | Documentation on https://github.com/42wim/matterbridge/wiki/MS-Teams-setup
* Add ability to procure avatars from the destination bridge (#1000)Qais Patankar2020-02-091-0/+1
| | | | | | | | | | | | * remote_avatar: add UseLocalAvatar * remote_avatar: make sure msg.Protocol is always set correctly * remote_avatars: support msg.Account * remote_avatar: add to matterbridge.toml.sample * remote_avatar: clarify something
* Add DisableWebPagePreview option (telegram). Closes #980 (#994)Wim2020-02-021-0/+1
|
* Add QuoteLengthLimit option (telegram) fixes #963 (#985)Humorhenker2020-01-301-0/+1
| | | * QuoteLengthLimit option added to limit max. quoted message length if QuoteLengthLimit = 0 the whole message will be quoted
* Do configuration validation on start-up. Fixes #888 (#889)Wim2019-09-091-0/+5
| | | | | | Fail if: * we don't have any gateways configured * we have gateways configured but with non-existing bridge configuration * we have gateways configured without any configuration
* Add initial Keybase Chat support (#877)cori hudson2019-08-261-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * initial work on native keybase bridging * Hopefully make a functional keybase bridge * add keybase to bridgemap * send to right channel, try to figure out received msgs * add account and userid * i am a Dam Fool * Fix formatting for messages, handle /me * update vendors, ran golint and goimports * move handlers to handlers.go, clean up unused config options * add sample config, fix inconsistent remote nick handling * Update readme with keybase links * Resolve fixmie errors * Error -> Errorf * fix linting errors in go.mod and go.sum * explicitly join channels, ignore messages from non-specified channels * check that team names match before bridging message
* Add an option to skip the Mattermost server version check (#849)Joona Hoikkala2019-06-161-0/+1
| | | Adds SkipVersionCheck bool option for mattermost
* Make config parse errors readableWim2019-06-021-2/+2
|
* Add scripting (tengo) support for every outgoing message (#806)Wim2019-04-191-0/+2
| | | | | | | | | | | | | | | | | | Adds a new key OutMessage under [tengo] table, which specifies the location of the script that will be invoked on each message being sent to a bridge and can be used to modify the Username and the Text of that message. The script will have the following global variables: read-only: inAccount, inProtocol, inChannel, inGateway outAccount, outProtocol, outChannel, outGateway read-write: msgText, msgUsername The script is reloaded on every message, so you can modify the script on the fly. The default script in https://github.com/42wim/matterbridge/tree/master/internal/tengo/outmessage.tengo is compiled in and will be executed if no script is specified.
* Add verbose IRC joins/parts (ident@host) (#805)chotaire2019-04-181-1/+2
| | | New configuration setting: VerboseJoinPart (default is false)
* Add tengo support to RemoteNickFormat (#793)Wim2019-04-081-0/+6
| | | | | | | | | | | | | | | | | | | This commit add support for using the result of a tengo script in RemoteNickFormat using {TENGO} Also adds a new toml table [tengo] with key RemoteNickFormat and value location of the script. This also moves the TengoModifyMessage from [general] to Message in [tengo] Documentation: RemoteNickFormat allows you to specify the location of a tengo (https://github.com/d5/tengo/) script. The script will have the following global variables: to modify: result to read: channel, bridge, gateway, protocol, nick The result will be set in {TENGO} in the RemoteNickFormat key of every bridge where {TENGO} is specified The script is reloaded on every message, so you can modify the script on the fly. Example script can be found in https://github.com/42wim/matterbridge/tree/master/contrib/remotenickformat.tengo [tengo] RemoteNickFormat="remotenickformat.tengo"
* Add MediaConvertWebPToPNG option (telegram). (#741)Wim2019-02-271-0/+1
| | | | | | | | * Add MediaConvertWebPToPNG option (telegram). When enabled matterbridge will convert .webp files to .png files before uploading them to the mediaserver of the other bridges. Fixes #398
* Make all loggers derive from non-default instance (#728)Wim2019-02-231-45/+37
|
* Add scripting (tengo) support for every incoming message (#731)Wim2019-02-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | TengoModifyMessage allows you to specify the location of a tengo (https://github.com/d5/tengo/) script. This script will receive every incoming message and can be used to modify the Username and the Text of that message. The script will have the following global variables: to modify: msgUsername and msgText to read: msgChannel and msgAccount The script is reloaded on every message, so you can modify the script on the fly. Example script can be found in https://github.com/42wim/matterbridge/tree/master/gateway/bench.tengo and https://github.com/42wim/matterbridge/tree/master/contrib/example.tengo The example below will check if the text contains blah and if so, it'll replace the text and the username of that message. text := import("text") if text.re_match("blah",msgText) { msgText="replaced by this" msgUsername="fakeuser" } 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
* Allow sending discriminator with Discord username (#726)Declan Hoare2019-02-221-0/+1
|
* Add initial WhatsApp support (#711)Krzysiek Madejski2019-02-211-0/+1
|
* Allow zulip bridge to specify topic per channel. Closes #701 (#723)Wim2019-02-171-0/+1
|
* Add initial support for getting ChannelMember info of all bridges (#678)Wim2019-01-181-10/+21
| | | | | | | | | | | | | | * Add initial support for getting ChannelMember info of all bridges. Adds an EventGetChannelMembers event, which gets send every x time to all bridges. Bridges should respond on this event with a Message containing ChannelMembers in the EventGetChannelMembers key in the Extra field. handleEventGetChannelMembers will handle this Message and sets the contained ChannelMembers to the Bridge struct. * Add ChannelMembers support to the slack bridge
* Remove unused key (config)Wim2019-01-041-1/+0
|
* Use logrus imports instead of log (#662)Duco van Amstel2018-12-261-7/+7
|
* Sync channel topics between Slack bridges (#585)Patrick Connolly2018-11-261-0/+1
| | | Added logic to allow for configurable synchronisation of topics and purposes of channels between Slack bridges.
* Add option to send RAW commands after connection (irc). Fixes #490 (#604)Wim2018-11-251-0/+1
|
* Add option to ignore failing bridge on start. Fixes #455 (#603)Wim2018-11-251-0/+1
|
* Fix golint linter issues and enable it in CI (#593)Duco van Amstel2018-11-151-19/+19
|
* Fix IRC line splitting. Closes #584 (#587)Duco van Amstel2018-11-141-3/+0
|
* Make config.Config more unit-test friendly (#586)Duco van Amstel2018-11-131-24/+88
|
* Add new Slack connection and forked legacy Slack bridge (#582)Duco van Amstel2018-11-131-0/+1
|
* Add ability to show when user is typing across Slack bridges (#559)Patrick Connolly2018-11-081-0/+2
|
* Clean up config loading. (#561)Patrick Connolly2018-11-071-22/+18
|
* Preserve threading between Slack instances (#529)Patrick Connolly2018-11-071-0/+2
| | | | | | | | | | | | | | | | | | | | | | * Opportunistically preserve Slack threading when parent thread in cache. [#529] * Removed slack-specific processing from gateway. * Added docs. * Add option to enable threading, with default to off. * Did cleanup on @42wim's comments. * Update gateway/gateway.go Co-Authored-By: patcon <patrick.c.connolly@gmail.com> * Suggestion from @42wim :) * Suggestions from @42wim. * More suggestions.
* Remove hyphens when auto-loading envvars from viper config (#545)Patrick Connolly2018-11-031-1/+1
| | | | | | * When auto-loading envvars from toml keys, remove hyphens. See: https://unix.stackexchange.com/questions/23659/can-shell-variable-include-character
* Respond with message on connect (api) (#550)NikkyAI2018-11-021-0/+1
| | | fix #549
* Use own forks for logrus-prefixed-formatter and discordgoWim2018-08-061-1/+1
|
* Add channel password support for XMPP (#451)Bruno Bierbaumer2018-06-181-1/+1
|