Commit Graph

81 Commits

Author SHA1 Message Date
Duco van Amstel ce21ba1545 Fix golint linter issues and enable it in CI (#593) 2018-11-15 20:43:43 +01:00
Wim f7a5077d5d Fix goconst linter failure 2018-11-13 20:40:15 +01:00
Wim d2ae3ebf9e Disable Connect(), JoinChannel(), Send() for mattermost.plugin 2018-11-11 22:44:10 +01:00
Wim 78401214b0 Make scopelint happy 2018-11-08 22:29:34 +01:00
Wim b2a07aba3a Make goconst linter happy 2018-11-08 22:20:03 +01:00
Wim 1e0bb3da95 Make gocritic linter happier 2018-11-08 22:01:29 +01:00
Wim e2b50d6194 Add better support for multiperson DM (mattermost) 2018-10-27 22:02:25 +02:00
Wim 107969c09a
Split up cookie token and personal token (mattermost). Fixes #530 (#540) 2018-10-26 16:47:56 +02:00
Wim 330ddb6a30 Fix panic by using matterclient calls in the right place. Related to cb7278eb (mattermost). Closes #491 2018-08-30 23:04:50 +02:00
Wim fa0c4025f7 Fix avatar uploads to work with MediaDownloadPath. Closes #454 2018-07-11 23:44:29 +02:00
Wim cb7278eb50 Use nickname instead of username if defined (mattermost). Closes #452 2018-07-03 22:41:09 +02:00
Wim d2c02be3a0 Handle slack attachments sent to mattermost. Closes #447 2018-06-16 00:11:15 +02:00
Liam Stanley 51327a4056 Reconnect on quit. (irc) See #431 (#445)
* potential fixes for #431
* go: fix formatting/gofmt/goreturns
2018-06-09 12:47:40 +02:00
Wim 07885f5810 Fix iconurl regression (mattermost,slack,rocketchat). Closes #430 2018-05-27 22:30:17 +02:00
Wim 411ef2691c Use uuid instead of userid. Fixes #429 2018-05-27 21:50:00 +02:00
Wim 68fbed9281 Make our callbackid more unique. Fixes issue with running multiple matterbridge on the same channel (slack,mattermost) 2018-04-13 22:01:03 +02:00
Wim e5989adf92 Add support for NoSendJoinPart. Closes #382 2018-03-06 21:35:47 +01:00
Wim 80fcf18e24 Remove debug messsage (mattermost) 2018-03-05 22:22:20 +01:00
Wim f2f1d874e1 Use viper (github.com/spf13/viper) for configuration 2018-03-04 23:52:14 +01:00
Wim 594d2155e3 Improve debug messages 2018-02-28 22:23:29 +01:00
Wim 2bac867382 Refactor using factory 2018-02-27 23:22:12 +01:00
Wim 73525a4bbc Make gometalinter happier 2018-02-27 23:22:10 +01:00
Wim d62f49d1fc Skip events for webhook 2018-02-27 23:22:10 +01:00
Wim bd2a672c14 Refactor mattermost 2018-02-27 23:22:09 +01:00
Wim 67d2398fa8 Make matterclient work with prefixed log 2018-02-21 01:11:41 +01:00
Wim d1227b5fc9 Use prefixed-formatter for better logging 2018-02-21 00:20:25 +01:00
Wim 6ea368c383 Move Sirupsen => sirupsen 2018-02-20 23:41:09 +01:00
Wim 7886f05e88 Download (and upload) avatar images from mattermost and telegram when mediaserver is configured. Closes #362
An extra avatarMap (cache) is created for mattermost and telegram.
If MediaServerUpload is configured, the avatar images of users are downloaded the first time a
user sends a message.
If this download succeeds a message with EVENT_AVATAR_DOWNLOAD is sent to the originating protocol.
This message also contains a SHA field (in msg.Extra["file"]), if this is not empty, the sha will
be added to the avatarMap. (so we now have a userid-sha cache)

Next time this user sends a message, the MediaServerUpload/sha/userid.png URL will be used as the
avatar field.
2018-02-20 01:15:25 +01:00
Wim 80822b7fff Send chat notification if media is too big to be re-uploaded to MediaServer. See #359 2018-02-03 01:11:11 +01:00
Wim 169c614489 Download files and reupload to supported bridges (mattermost). Closes #357 2018-02-02 20:23:55 +01:00
Wim 64a20ee61b Add URL to message in webhook if available (mattermost). See #356 2018-01-31 17:35:13 +01:00
Wim 8e78b3e6be Fix regression in mattermost bridge (mattermost). Closes #327 2018-01-01 14:20:16 +01:00
Wim 265457b451 Refactor and add MediaDownloadSize to General 2017-12-19 23:15:03 +01:00
Wim 36a800c3f5 Add support for comments from slack file uploads (slack) 2017-11-13 00:20:31 +01:00
Wim 7aabe12acf Fix loop, make megacheck happy 2017-09-21 23:15:04 +02:00
Wim c4b75e5754 Download files from slack and reupload to mattermost (slack/mattermost). Closes #255
Refactor message.Extra to a map[string][]interface{} to have a bit more flexibility
for stuffing extra stuff.

For attached files from slack, files < 1MB size get downloaded (in memory), and get
put into Extra["file"][]config.FileInfo (containing a pointer to the buffer and
the filename). This is not async so slack channels with lots of attached files
may suffer a slowdown. (the download timeout is set at 5 seconds).
2017-09-21 22:35:21 +02:00
Wim 47b7fae61b Fix loop from webhook by adding matterbridge prop (mattermost). Closes #261 2017-09-18 23:53:30 +02:00
Wim 1a40b0c1e9 Relay attachments from mattermost to slack (slack). Closes #260 2017-09-18 23:51:27 +02:00
Wim 82588b00c5 Use override username if specified (mattermost). #260 2017-09-18 21:18:31 +02:00
Wim ed01820722 Add support for deleting messages across bridges.
Currently fully support mattermost,slack and discord.
Message deleted on the bridge or received from other bridges will be
deleted.

Partially support for Gitter.
Gitter bridge will delete messages received from other bridges.
But if you delete a message on gitter, this deletion will not be sent to
other bridges (this is a gitter API limitation, it doesn't propogate edits
or deletes via the API)
2017-09-11 22:45:15 +02:00
Wim 9039720013 Send images when text is empty regression. (mattermost). Closes #254 2017-09-08 00:16:17 +02:00
Wim 9e03fcf162 Fix private channel joining bug (mattermost). Closes #248 2017-08-30 14:01:17 +02:00
Wim 7c773ebae0 Add support for editing messages across bridges. Currently mattermost/discord.
Our Message type has an extra ID field which contains the message ID of the specific bridge.
The Send() function has been modified to return a msg ID (after the message to that specific
bridge has been created).

There is a lru cache of 5000 entries (message IDs). All in memory, so editing messages
will only work for messages the bot has seen.

Currently we go out from the idea that every message ID is unique, so we don't keep
the ID separate for each bridge. (we do for each gateway though)

If there's a new message from a bridge, we put that message ID in the LRU cache as key
and the []*BrMsgID as value (this slice contains the message ID's of each bridge that
received the new message)

If there's a new message and this message ID already exists in the cache, it must be
an updated message. The value from the cache gets checked for each bridge and if there
is a message ID for this bridge, the ID will be added to the Message{} sent to that
bridge. If the bridge sees that the ID isn't empty, it'll know it has to update the
message with that specific ID instead of creating a new message.
2017-08-28 00:33:17 +02:00
Wim 5a8d7b5f6d Modify Send() to return also a message id 2017-08-27 22:59:37 +02:00
Wim 7f9a400776 Add support for personal access tokens (mattermost)
* https://docs.mattermost.com/developer/personal-access-tokens.html
2017-08-23 22:49:42 +02:00
Wim 28710d0bc7 Allow a webhookurl per channel (discord). #239 2017-08-12 14:51:41 +02:00
Wim f8e6a69d6e Add action support for slack,mattermost,irc,gitter,matrix,xmpp,discord. #199 2017-07-30 17:48:23 +02:00
Wim ba653c0841 Ignore edited messages with reactions (mattermost) 2017-07-25 23:19:50 +02:00
Wim 0302e4da82 Fix webhookurl/webhookbindaddress panic (mattermost). Closes #221 2017-07-17 23:10:32 +02:00
Wim 4aa646f6b0 Use GetFileLinks. Also show links to non-public files (mattermost) 2017-07-15 16:51:10 +02:00