Commit Graph

568 Commits

Author SHA1 Message Date
chotaire
a17024c125 Compile regexp in external package 2019-04-18 15:38:24 +02:00
chotaire
cda1628538 Fixed issues with files not being goimports-ed 2019-04-17 04:51:00 +02:00
chotaire
e79cf7bead Fixed canonical gofmt style in gitter.go 2019-04-17 03:55:57 +02:00
chotaire
f01193ffb1 Release: Don't strip IRC colors if sending to IRC 2019-04-17 03:49:10 +02:00
chotaire
d0b54d357f Strip IRC colors sent to Zulip 2019-04-17 03:37:06 +02:00
chotaire
5750aa2c62 Strip IRC colors sent to XMPP 2019-04-17 03:36:04 +02:00
chotaire
ed5635f9d2 Strip IRC colors sent to Whatsapp 2019-04-17 03:35:03 +02:00
chotaire
a156513b8c Strip IRC colors sent to Telegram 2019-04-17 03:33:21 +02:00
chotaire
c8a2e7d7e1 Strip IRC colors sent to Steam 2019-04-17 03:30:43 +02:00
chotaire
ea4948728c Strip IRC colors sent to SSHChat 2019-04-17 03:28:45 +02:00
chotaire
bb4c835e96 Strip IRC colors sent to Slack 2019-04-17 03:26:35 +02:00
chotaire
fad2c22317 Strip IRC colors sent to Gitter 2019-04-17 03:24:07 +02:00
chotaire
3292f03528 Fix missing regexp import
Signed-off-by: chotaire <chotaire@chotaire.net>
2019-04-17 03:23:40 +02:00
chotaire
93f8e6e032 Strip IRC colors sent to Discord 2019-04-17 03:19:31 +02:00
chotaire
fd79eac291 Strip IRC colors sent to Matrix 2019-04-17 03:18:26 +02:00
chotaire
4b176ef0cc Strip IRC colors sent to Mattermost 2019-04-17 03:16:39 +02:00
chotaire
454776d786 Strip IRC colors relayed to Rocketchat 2019-04-17 03:03:37 +02:00
chotaire
f7ed9e53fa Remove IRC color stripping and regexp import 2019-04-17 00:22:07 +02:00
Wim
380c38674c Fix deadlock on reconnect (irc). Closes #757 2019-04-15 23:28:47 +02:00
Wim
5677c912a8 Add useraction support (rocketchat). Closes #772 (#794) 2019-04-08 23:30:22 +02:00
Wim
7a24de15e4 Add tengo support to RemoteNickFormat (#793)
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
8a875f292e Revert fix for #722. Closes #781
Revert "Fix typo"

This reverts commit dffd67eb31.

Revert "Handle quit message relay better on gateways with one channel on the irc bridge #722"

This reverts commit 240559581a.

Revert "Support quits from irc correctly. Fixes #722 (#724)"

This reverts commit d76a04bd0a.
2019-04-06 23:12:48 +02:00
Wim
60a85621ea Return when not connected and drop a message (irc). Fixes #786 2019-04-06 22:34:41 +02:00
Wim
cdf33e5748 Use default nick if none specified (irc). Fixes #785 2019-04-05 00:17:46 +02:00
Wim
01d0a9f412 Handle nil message (telegram). Fixes #777 2019-04-05 00:04:08 +02:00
Wim
8cc2d3b4fe Revert "Bail if any vars are nil, not if all (telegram) (#778)"
This reverts commit efd2c99862.
2019-04-05 00:02:26 +02:00
Wim
64b57f2da3 Ignore message_replied and hidden messages (slack). Fixes #709 (#779) 2019-03-27 22:54:18 +01:00
David Hill
efd2c99862 Bail if any vars are nil, not if all (telegram) (#778) 2019-03-27 21:00:57 +01:00
Wim
16763b715a Look up #channel too (rocketchat). Fix #773 (#775) 2019-03-24 20:15:15 +01:00
David Hill
97f9d4be67 Fix double unlock (slack) (#771) 2019-03-21 17:30:28 +01:00
Wim
77516c97db Allow the # in rocketchat channels (backward compatible) (#769) 2019-03-20 23:19:27 +01:00
Duco van Amstel
8b754017ca Fix race-condition in populateUser() (#767)
Fix the root-cause of #759 by introducing synchronisation points for
individual user fetches.
2019-03-20 22:54:31 +01:00
Wim
a27600046e Fix regression for legacy slack by #766 (#768) 2019-03-20 22:52:23 +01:00
Duco van Amstel
fb2667631d Refactor channel and user management (slack) (#766) 2019-03-15 21:23:09 +01:00
Duco van Amstel
b638f7037a Force Slack link unfurling (#763) 2019-03-12 22:56:43 +01:00
Duco van Amstel
74699a8262 Split-out Slack user and channel management (#762) 2019-03-12 22:52:36 +01:00
Wim
e955a056e2 Trim <p> and </p> tags (matrix). Closes #686 (#753) 2019-03-03 00:29:29 +01:00
Wim
53aa076555 Do not send duplicate messages (rocketchat). Fixes #745 (#752)
For an unknown reason we get duplicate messages (from the same channel)
using the realtime API when we have > 1 channel subscribed on.
Solution for now is caching the message ID in a LRU cache and ignoring
the duplicates.

This should be reviewed when we have actual editing support from the
realtime API
2019-03-02 22:58:14 +01:00
Wim
f57370f33a Add support for URL in messageEntities (telegram). Fixes #735 (#736) 2019-03-02 22:38:44 +01:00
Wim
c557d51b6f Need to specify /topic:mytopic for channel configuration (zulip). (#751)
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 #701 which didn't work with multiple
gateways.
2019-03-02 20:31:38 +01:00
Wim
df3fdc26a0 Use whatsapp forks (#750) 2019-03-02 13:04:28 +01:00
Wim
af00c34aac Do not relay any bot messages (discord) (#743) 2019-02-28 12:59:52 +01:00
Wim
26a7e35f27 Add MediaConvertWebPToPNG option (telegram). (#741)
* 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
2019-02-27 00:41:50 +01:00
Wim
b09a73040f Print errors as string instead of %#v (#738) 2019-02-26 17:21:23 +01:00
Wim
740b5f2602 Keep reconnecting until succeed (zulip) (#737) 2019-02-26 17:08:20 +01:00
Wim
96841c70c7 Fix regression in HTML handling (telegram). Closes #734
* Revert back to blackfriday v1
* Add testing
2019-02-24 15:13:56 +01:00
Wim
a775b57134 Do not send topic changes on connect (xmpp). Fixes #732 (#733)
This checks if we get a topic change < 5 seconds after connection.
If that's the case, ignore it.
Also this PR makes the topic change an actual EventTopicChange.
2019-02-23 23:03:21 +01:00
Wim
bf21604d42 Make all loggers derive from non-default instance (#728) 2019-02-23 22:51:27 +01:00
Wim
1bb39eba87 Add scripting (tengo) support for every incoming message (#731)
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
1f1634ea59 Add extra debug option (slack) 2019-02-22 19:36:50 +01:00