3
0
mirror of https://github.com/42wim/matterbridge.git synced 2024-12-29 14:42:39 +01:00
Commit Graph

119 Commits

Author SHA1 Message Date
Michal Suchánek
9b320cd43f Add token support (RocketChat) ()
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
2019-09-13 23:41:02 +02:00
cori hudson
921f2dfcdf Add initial Keybase Chat support ()
* 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
2019-08-26 21:00:31 +02:00
Wim
7d2e440c83
Add support for discord category channels (discord) ()
This adds support for the discord category option that can be used
to group channels in. This means we can have multiple channels with
the same name.

We add the option to specify a category in the channel option of a
discord account under [[gateway]]

Besides channel="channel" or channel="ID:channelID", now also
channel="category/channel" can be specified.

This change remains backwards compatible with people that haven't
specified the category and incorporates the fix in 
2019-07-15 21:56:35 +02:00
Wim
601b8bc98d Update documentation and changelog 2019-06-16 16:32:12 +02:00
Wim
bd0e81f5a0 Add msg event to tengo 2019-04-24 22:47:37 +02:00
Wim
2d277a15f5
Add scripting (tengo) support for every outgoing message ()
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.
2019-04-19 18:27:31 +02:00
Wim
ff198042d2 Remove deprecated TengoModifyMessage
This has become InMessage under [tengo]
2019-04-19 00:13:28 +02:00
chotaire
6b47e29583 Add verbose IRC joins/parts (ident@host) ()
New configuration setting: VerboseJoinPart (default is false)
2019-04-18 23:56:05 +02:00
Wim
380c38674c Fix deadlock on reconnect (irc). Closes 2019-04-15 23:28:47 +02:00
Wim
3c14a0891e Remove hipchat 2019-04-14 23:54:05 +02:00
Wim
7a24de15e4
Add tengo support to RemoteNickFormat ()
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"
2019-04-08 20:58:21 +02:00
Wim
a60e62efb1 Update doc wrt rocketchat api issue 2019-03-21 21:05:27 +01:00
Wim
cba01f0865 Update rocketchat documentation 2019-03-20 23:18:40 +01:00
Wim
c557d51b6f
Need to specify /topic:mytopic for channel configuration (zulip). ()
Breaking change for zulip channel configuration.

For zulip the channel configuration will now need to specify also
the topic with /topic:yourtopic.

Example:
[[gateway.inout]]
account="zulip.streamchat"
channel="general/topic:mytopic"

This fixes the incorrect PR  which didn't work with multiple
gateways.
2019-03-02 20:31:38 +01:00
Wim
26a7e35f27
Add MediaConvertWebPToPNG option (telegram). ()
* 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 
2019-02-27 00:41:50 +01:00
Wim
1bb39eba87
Add scripting (tengo) support for every incoming message ()
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
2019-02-23 16:39:44 +01:00
Wim
3190703dc8
Support rewriting messages from relaybots using ExtractNicks. Fixes ()
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+" ] ]
2019-02-23 16:35:54 +01:00
Wim
1f1634ea59 Add extra debug option (slack) 2019-02-22 19:36:50 +01:00
Declan Hoare
a7dd033c3b Allow sending discriminator with Discord username () 2019-02-22 14:28:27 +01:00
Krzysiek Madejski
55e79063d6 Add initial WhatsApp support () 2019-02-21 20:28:13 +01:00
Wim
46f4bbb3b5 Update documentation wrt ShowJoinPart from discord 2019-02-21 18:15:01 +01:00
Wim
a8fe54a78d
Allow zulip bridge to specify topic per channel. Closes () 2019-02-17 21:50:05 +01:00
Wim
4525fa31aa
Allow regexs in ignoreNicks. Closes () 2019-02-17 21:49:28 +01:00
Wim
6ebd5cbbd8 Refactor and update RocketChat bridge
* Add support for editing/deleting messages
* Add support for uploading files
* Add support for avatars
* Use the Rocket.Chat.Go.SDK
* Use the rest and streaming api
2019-02-15 18:19:34 +01:00
Patrick Connolly
25857591a2 Add note about slack/slack-legacy issues on threading. () 2018-12-03 16:50:37 +01:00
Patrick Connolly
f5659d455d Sync channel topics between Slack bridges ()
Added logic to allow for configurable synchronisation of topics and purposes of channels between Slack bridges.
2018-11-26 09:47:04 +00:00
Wim
9f66f93641
Add option to send RAW commands after connection (irc). Fixes () 2018-11-25 19:32:16 +01:00
jamoffat
f3a5ea2956 Remove double " from Discord gateway webhookurl= () 2018-11-25 10:37:14 +01:00
Wim
f4d4dc91b1
Add option to ignore failing bridge on start. Fixes () 2018-11-25 10:35:35 +01:00
Patrick Connolly
ed11686a99 Improve user_typing botname suggestion. () 2018-11-09 21:52:37 +01:00
Patrick Connolly
3d281b3316 Add ability to show when user is typing across Slack bridges () 2018-11-08 20:45:40 +01:00
Patrick Connolly
a20b7895a9 Preserve threading between Slack instances ()
* Opportunistically preserve Slack threading when parent thread in cache. []

* 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.
2018-11-07 09:14:31 +01:00
Patrick Connolly
5132d8f097 Stop setting API ring buffer capacity if not specified. () 2018-11-05 21:53:51 +01:00
Patrick Connolly
291594b99c Allow origin CHANNEL to be used in RemoteNickFormat ()
* Added origin CHANNEL to RemoteNickFormat. Updated config docs. [Fixes ]

* Update matterbridge.toml.sample

Co-Authored-By: patcon <patrick.c.connolly@gmail.com>
2018-10-23 21:53:11 +02:00
Wim
e04dd78624 Add support for slack channels by ID. Closes 2018-07-13 23:23:11 +02:00
Wim
6f131250f1 Release v1.11.0 2018-06-19 00:28:16 +02:00
Bruno Bierbaumer
6628a47f23 Add channel password support for XMPP () 2018-06-18 22:55:45 +02:00
Wim
bd9ea7a88d Add MediaDownloadBlacklist option. Closes 2018-06-09 14:35:02 +02:00
Remi Reuvekamp
33bd60528b Add config option MediaDownloadPath ()
* Add config option MediaUploadPath

MediaDownloadPath can be used instead of MediaServerUpload, for when your
webserver is on the same system as matterbridge and matterbridge has
write access to the serve dir.

* Limit length of hash in MediaServer urls to 8chars

Full SHA256 is unnecessary for uniqueness.
Also; if a file has the same first 8 charachters of the SHA256 hash,
it's still not a problem, as long as the filename is not the same.
2018-06-08 22:30:35 +02:00
Wim
7e54474111 Add info about markdown (telegram) 2018-06-06 01:00:00 +02:00
Yuval Langer
f0738a93c3 [WIP] Colorize username sent to IRC using its crc32 IEEE checksum ()
* Colorize username sent to IRC using its crc32 IEEE checksum

* Add `ColorNicks` configuration variable

* Add `ColorNicks` setting
2018-05-11 23:02:43 +02:00
Wim
406a54b597 Add QuoteFormat option (telegram). Closes 2018-05-11 20:59:15 +02:00
Wim
45296100df Add initial zulip support 2018-05-07 21:35:48 +02:00
Wim
96a47a60ad Add support for reloading all settings automatically after changing config except connection and gateway configuration. Closes 2018-05-01 22:23:37 +02:00
Wim
e57f3a7e6c Add QuoteDisable option (telegram). Closes 2018-04-17 23:26:41 +02:00
Wim
062be8d7c9 Revert 2018-03-17 18:02:00 +01:00
Wim
e5989adf92 Add support for NoSendJoinPart. Closes 2018-03-06 21:35:47 +01:00
Wim
e622587db4 Add label support in RemoteNickFormat 2018-02-20 18:57:46 +01:00
Wim
67f6257617 Add ShowTopicChange option. Allow/disable topic change messages (currently only from slack). Closes 2018-02-02 21:08:13 +01:00
Wim
169c614489 Download files and reupload to supported bridges (mattermost). Closes 2018-02-02 20:23:55 +01:00