Commit Graph

523 Commits

Author SHA1 Message Date
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
Declan Hoare
a7dd033c3b Allow sending discriminator with Discord username (#726) 2019-02-22 14:28:27 +01:00
Krzysiek Madejski
55e79063d6 Add initial WhatsApp support (#711) 2019-02-21 20:28:13 +01:00
Wim
d76a04bd0a
Support quits from irc correctly. Fixes #722 (#724) 2019-02-17 22:43:04 +01:00
Wim
a8fe54a78d
Allow zulip bridge to specify topic per channel. Closes #701 (#723) 2019-02-17 21:50:05 +01:00
Wim
0bcb0b882f
Support join/leaves from discord. Closes #654 (#721) 2019-02-17 21:49:45 +01:00
Wim
aeaea0574f
Detect html nicks in RemoteNickFormat (matrix). Fixes #696 (#719) 2019-02-17 21:48:32 +01:00
Wim
99d71c2177
Send notices on join/parts (matrix). Fixes #712 (#716) 2019-02-16 18:36:09 +01:00
Wim
3e60cfafd3
Send username when uploading video/images (matrix). Fixes #715 (#717) 2019-02-16 18:35:36 +01:00
Wim
3123695869
Upgrade to latest girc version (irc) (#718) 2019-02-16 17:24:04 +01:00
Wim
716751cf76
Refactor and update RocketChat bridge (#707)
* 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). #709 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
40d76b2296 Fix error handling on bad event queue id (zulip). Closes #694 2019-02-11 01:34:50 +01:00
Wim
57f156be83
Hint at thread replies when messages are unthreaded (slack) (#684) 2019-02-10 17:23:50 +01:00
Wim
c81c0dd22a Update vendor, move to labstack/echo/v4 Fixes #698 2019-01-31 17:06:36 +01:00
Wim
4ae028fe73 Optimize handling of very large slack teams. Fixes #695
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
94812d8648 Handle servers without MOTD (irc). Closes #692 2019-01-24 21:58:27 +01:00
Wim
8548b69e6e Fix possible data race (irc). Closes #693 2019-01-24 21:51:52 +01:00
Wim
e3cb665d92 Make discord user token work correctly (discord) #689 2019-01-19 20:39:58 +01:00
Wim
fb713ed91b
Add initial support for getting ChannelMember info of all bridges (#678)
* 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) (#689)
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
David Hill
f88c5f6c08 Fix displaying usernames for plain text clients. (matrix) (#685) 2019-01-09 23:15:26 +01:00
Patrick Connolly
b33b50987b Add support for mattermost threading (#627) 2019-01-09 21:50:03 +01:00
James Nylen
5193634a52 Use only one webhook if possible (discord) (#681) 2019-01-09 21:28:47 +01:00
Wim
46e2683995 Add file comment to webhook messages (discord). Fixes #358 2019-01-07 22:16:00 +01:00
James Nylen
492722af8b Improve error reporting on failure to join Discord. Fixes #672 (#680) 2019-01-07 21:39:53 +01:00
Wim
04567c765e
Add support for markdown to HTML conversion (matrix). Closes #663 (#670)
This uses our own gomatrix lib with the SendHTML function which
adds HTML to formatted_body in matrix.
golang-commonmark is used to convert markdown into valid HTML.
2019-01-06 22:25:19 +01:00
ValdikSS
7326b9e10d Add various sshchat fixes (#675)
* SSH-Chat: set quiet mode to filter joins/quits
* SSH-Chat: Trim newlines in the end of relayed messages
* SSH-Chat: fix media links
* SSH-Chat: do not relay "Rate limiting is in effect" message
2019-01-05 15:42:36 +01:00
Qais Patankar
8522d8f29c Fix #668 strip lang in code fences sent to Slack (#673) 2019-01-04 20:32:58 +01:00
Wim
bab385c342 Remove unused key (config) 2019-01-04 16:37:45 +01:00
Wim
c585d00f16 Ignore LatencyReport event (slack) 2019-01-02 23:55:00 +01:00
Duco van Amstel
da8e415ae1 Use logrus imports instead of log (#662) 2018-12-26 15:16:09 +01:00
Duco van Amstel
1b834c6858 Fix sshchat connection logic (#661) 2018-12-26 15:09:36 +01:00
Jerry Heiselman
d82726cd1b Try downloading files again if slack is too slow (slack). Closes #655 (#656) 2018-12-19 22:01:05 +01:00
Wim
53c86702a3
Add wait option for populateUsers/Channels (slack) Fixes #579 (#653)
When setting wait to true, we wait until the populating isn't in progress anymore.
This is used on startup connections where we really need the initial information
which could take a long time on big servers.
2018-12-15 23:11:03 +01:00
David Hill
192fe89789 Populate user on channel join (slack) (#644) 2018-12-15 22:57:54 +01:00
Wim
959ca3cef3 Fix bot (legacy token) messages not being send. Closes #571 2018-12-13 20:49:14 +01:00
Wim
bfa9a83d31
Refactor telegram (#649)
* Decrease complexity in Send() (makes codeclimate happy)
2018-12-12 23:50:08 +01:00
Wim
2f7b4d7f68
Refactor sshchat bridge (#650)
* Decrease complexity in Send()
* Add handleUploadFile() function
2018-12-12 23:47:07 +01:00
Wim
d887855e16 Add bot debug info (slack) 2018-12-12 00:27:55 +01:00
Duco van Amstel
a2754f15fc Enable errcheck linter (#646) 2018-12-08 17:04:10 +01:00
Wim
f9fb33e696
Refactor steam bridge (#630)
* split up in different files
* decrease complexity
2018-12-07 23:48:24 +01:00
Wim
f72d5de2d7 Disable some unparam checks (discord) 2018-12-07 23:48:00 +01:00