Commit Graph

1083 Commits

Author SHA1 Message Date
Wim a775b57134
Do not send topic changes on connect (xmpp). Fixes ()
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 () 2019-02-23 22:51:27 +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 5095db8a43 Update vendor 2019-02-23 14:14:29 +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
Wim 95e78ffa05 Add telegram support to matterbridge chat channel 2019-02-21 21:35:34 +01:00
Wim 42276ea7d0 Disable updateChannelMembers for now 2019-02-21 21:26:12 +01:00
Wim dffd67eb31 Fix typo 2019-02-21 20:33:49 +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 240559581a Handle quit message relay better on gateways with one channel on the irc bridge 2019-02-21 17:55:04 +01:00
Wim 48ba829465 Bump to 1.14.0-dev 2019-02-17 22:46:07 +01:00
Wim eef654de98 Fix bug in 2019-02-17 22:45:23 +01:00
Wim d76a04bd0a
Support quits from irc correctly. Fixes () 2019-02-17 22:43:04 +01:00
Wim a8fe54a78d
Allow zulip bridge to specify topic per channel. Closes () 2019-02-17 21:50:05 +01:00
Wim 0bcb0b882f
Support join/leaves from discord. Closes () 2019-02-17 21:49:45 +01:00
Wim 4525fa31aa
Allow regexs in ignoreNicks. Closes () 2019-02-17 21:49:28 +01:00
Wim aeaea0574f
Detect html nicks in RemoteNickFormat (matrix). Fixes () 2019-02-17 21:48:32 +01:00
Wim 99d71c2177
Send notices on join/parts (matrix). Fixes () 2019-02-16 18:36:09 +01:00
Wim 3e60cfafd3
Send username when uploading video/images (matrix). Fixes () 2019-02-16 18:35:36 +01:00
Wim 3123695869
Upgrade to latest girc version (irc) () 2019-02-16 17:24:04 +01:00
Wim 777af73e2b Add blogpost about matterbridge 2019-02-15 19:02:29 +01:00
Wim 716751cf76
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:20:32 +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
Wim 077b818d82 Add extra debug of SubMessage to empty messages error (slack). 2019-02-15 18:05:10 +01:00
Wim 5af1d80055 Do not panic on non-json response from server (zulip) 2019-02-13 00:29:34 +01:00
Wim f236d12166 Update golangci-lint. Disable hugeParam check for now 2019-02-12 20:30:36 +01:00
Wim 127eb908f3 Add fbridge to README 2019-02-12 17:21:27 +01:00
Wim 40d76b2296 Fix error handling on bad event queue id (zulip). Closes 2019-02-11 01:34:50 +01:00
Wim 8147815037 Update README. Add rocketchat 2019-02-10 23:32:17 +01:00
Wim 57f156be83
Hint at thread replies when messages are unthreaded (slack) () 2019-02-10 17:23:50 +01:00
AJolly 2cfd880cdb Clarify dev chat info () 2019-02-05 20:40:57 +01:00
Wim 430b38e770 Update README 2019-01-31 17:38:02 +01:00
Wim e7f463a082 Bump version 2019-01-31 17:26:07 +01:00
Wim 1d39c771e4 Release v1.13.1 2019-01-31 17:10:57 +01:00
Wim c81c0dd22a Update vendor, move to labstack/echo/v4 Fixes 2019-01-31 17:06:36 +01:00
Wim f8a1ab4622 Bump version 2019-01-31 00:15:48 +01:00
Wim 5d3309fdcd Release v1.13.0 2019-01-30 23:55:37 +01:00
Wim 4ae028fe73 Optimize handling of very large slack teams. Fixes
Stop getting users if we reach 2000 users. Slack will rate-limit us
even if we follow their limits.
This means that we now have to lookup every user that says a message
for the first time. This should be less intensive on the API.

This also disables partly fb713ed91b for now.
ChannelMembers will not be filled.
2019-01-30 23:28:37 +01:00
Wim 707db950c8 Send GetChannelMembers event only to slack for now 2019-01-24 22:46:05 +01:00
Wim 94812d8648 Handle servers without MOTD (irc). Closes 2019-01-24 21:58:27 +01:00
Wim 8548b69e6e Fix possible data race (irc). Closes 2019-01-24 21:51:52 +01:00
Wim e3cb665d92 Make discord user token work correctly (discord) 2019-01-19 20:39:58 +01:00
Wim fb713ed91b
Add initial support for getting ChannelMember info of all bridges ()
* 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
2019-01-18 18:35:31 +01:00
Wim d99eacc2e1 Run go fmt 2019-01-14 19:41:32 +01:00
Zomboy Alfrir 62e55214fc Allow to bridge non-bot Discord users (discord) ()
If you prefix a token with `User ` it'll treat is as a user token.

Co-Authored-By: zomboy-alfrir <zomboy@dancodes.com.ar>
2019-01-14 19:27:49 +01:00
Wim 464d27ad7e Revert "Update pinned golangci-lint version ()"
This reverts commit 015c076315.
Goimports regression: https://github.com/golangci/golangci-lint/issues/347
And gocritic recommending fixes in tip instead of released versions.
2019-01-14 19:17:41 +01:00
David Hill f88c5f6c08 Fix displaying usernames for plain text clients. (matrix) () 2019-01-09 23:15:26 +01:00