Commit Graph

276 Commits

Author SHA1 Message Date
Wim ba5649d259 Add helper 2017-11-04 14:55:25 +01:00
Wim 1b30575510 Download files from telegram and reupload to supported bridges (telegram). #278 2017-11-04 14:50:17 +01:00
Wim 7dbebd3ea7 Show error message when file upload fails (discord) 2017-11-04 14:47:14 +01:00
Wim 6f18790352 Add support to upload files to slack, from bridges with private urls like slack/mattermost/telegram. (slack) 2017-11-03 23:10:16 +01:00
Patrick Connolly bea0bbd0c2 Allow slack messages with variables (eg. @here) to be formatted correctly. (slack) (#288) 2017-11-03 20:32:28 +01:00
Wim 0530503ef2 Make megacheck happy again 2017-11-03 20:13:58 +01:00
Wim d1e8ff814b Add support to upload files to discord, from bridges with private urls like slack/mattermost/telegram. (discord) 2017-11-03 00:05:10 +01:00
Patrick Connolly 4f8ae761a2 Resolve slack channel to human-readable name. (slack) (#282) 2017-11-02 21:21:46 +01:00
Wim b530e92834 Use DisplayName instead of deprecated username (slack). Closes #276 2017-11-02 17:11:42 +01:00
Wim b7a8c6b60f Try again to strip colors correct. #286 2017-10-28 14:28:15 +02:00
Wim 41aa8ad799 Add StripNick option, only allow alphanumerical nicks. Closes #285 2017-10-27 00:07:33 +02:00
Wim 299b71d982 Strip irc colors correct, strip also ctrl chars (irc). Closes #286 2017-10-26 23:04:44 +02:00
Patrick Connolly 76aafe1fa8 Allowed Slack bridge to extract simpler link format. (#287)
Links sometimes exist without bar delimiters.

See: https://api.slack.com/docs/message-formatting#linking_to_urls
2017-10-26 21:58:43 +02:00
Wim 4e1dc9f885 Use bot username if specified (slack). Closes #273 2017-10-12 20:33:37 +02: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 b49fb2b69c Add support for Quakenet auth (irc). Closes #263 2017-09-20 22:47:26 +02:00
Wim 4bda29cb38 Try quoting previous messsage (telegram). #237 2017-09-19 23:58:05 +02:00
Wim 5f14141ec9 Try to not forward slack unfurls. Closes #266 2017-09-19 22:33:26 +02:00
Wim c088e45d85 Add more debug info (telegram) 2017-09-19 21:41:35 +02:00
Wim d59c51a94b Remove unnecessary check, make megacheck happy 2017-09-19 00:04:27 +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 14490bea9f Add partial support for deleted messages (telegram) 2017-09-11 23:12:33 +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 90a61f15cc Do not break messages on newline (slack). Closes #258 2017-09-10 18:19:33 +02:00
Wim 9039720013 Send images when text is empty regression. (mattermost). Closes #254 2017-09-08 00:16:17 +02:00
Wim a3470f8aec Send first message after connect (slack). Closes #252 2017-09-07 23:47:23 +02:00
Wim 01badde21d Add message debugging (gitter) 2017-09-07 20:35:12 +02:00
Wim 37c350f19f Convert utf-8 back to charset (irc). #247 2017-08-30 20:59:54 +02:00
Wim 9e03fcf162 Fix private channel joining bug (mattermost). Closes #248 2017-08-30 14:01:17 +02:00
Wim 9226252336 Replace mentions from other bridges. (slack). Closes #233 2017-08-29 23:34:50 +02:00
Wim f4fb83e787 Use the detected charset (irc) 2017-08-29 21:35:36 +02:00
Wim e7fcb25107 Add a charset option (irc). Closes #247 2017-08-29 21:31:03 +02:00
Wim 2f7df2df43 Do not add messages without ID to cache 2017-08-29 20:28:44 +02:00
Wim e45c551880 Add support for editing messages. Remove ZWSP as loopcheck (gitter) 2017-08-28 23:07:12 +02:00
Wim 7a86044f7a Add support for editing messages (telegram) 2017-08-28 23:07:03 +02:00
Wim 8b98f605bc Add support for editing messages (slack) 2017-08-28 20:29:02 +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 cfb8107138 Relay notices (matrix). Closes #243 2017-08-27 01:01:35 +02:00
Wim 43bd779fb7 Handle leave/join events (slack). Closes #246 2017-08-27 00:00:02 +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 e77c3eb20a Swap token/id. Also check for default webhookURL in isWebhookID (discord) 2017-08-12 16:30:00 +02:00
Wim 28710d0bc7 Allow a webhookurl per channel (discord). #239 2017-08-12 14:51:41 +02:00
anon724 67905089ba Add UseUserName option (discord) (#234) 2017-08-01 18:18:55 +02:00
Wim f2483af561 Do not modify username in action (discord) 2017-07-31 21:37:19 +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 38d09dba2e Update vendor (go-irc) 2017-07-28 14:26:26 +02:00
Wim ba653c0841 Ignore edited messages with reactions (mattermost) 2017-07-25 23:19:50 +02:00
Wim 83ef61287e Refactor. Add tests 2017-07-25 20:11:52 +02:00
Wim bd97357f8d Disable message from other bots when using webhooks (slack) 2017-07-22 20:03:40 +02:00
Wim 0f791d7a9a Handle reconnections better (xmpp). Closes #222 2017-07-20 23:16:43 +02:00
Wim 0302e4da82 Fix webhookurl/webhookbindaddress panic (mattermost). Closes #221 2017-07-17 23:10:32 +02:00
Wim dc8743e0c0 Tag messages we send ourself using CallbackID hack (slack). Closes #219 2017-07-17 21:28:31 +02:00
Jerry Heiselman cc5ce3d5ae Suppress parent message when child message is received (slack) (#218)
* Suppress parent message when child message is received

When a thread is started in Slack and a user makes a comment on the thread, matterbridge sends the original parent message again on each child comment. This change suppresses that.

* Update slack.go

Moved determination of ThreadTimestamp to handleSlackClient so the MMMessage struct doesn't need to be modified

* Ran 'go fmt'
2017-07-17 18:33:28 +02:00
Wim 778abea2d9 Add support for fallback/text in attachments (slack) 2017-07-16 18:08:26 +02:00
Wim 20a7ef33f1 Make sure bot doesn't loop now we relay bot messages (slack) 2017-07-16 15:03:46 +02:00
Wim 04e0f001b0 Fix discordgo api changes 2017-07-16 14:39:00 +02:00
Wim 335ddf8db5 Fix lookup bot username (slack). #213 2017-07-16 14:18:33 +02:00
Wim 4aa646f6b0 Use GetFileLinks. Also show links to non-public files (mattermost) 2017-07-15 16:51:10 +02:00
Wim 9dcd51fb80 Refactor connecting logic slack/mattermost. Fixes #216 2017-07-15 16:49:47 +02:00
Wim 6dee988b76 Fix megacheck / go vet issues 2017-07-14 00:35:01 +02:00
Wim 8411f2aa32 Lookup bot username (slack). #213 2017-07-10 21:58:43 +02:00
Wim b75cf2c189 Replace HTML entities (slack). #215 2017-07-09 14:26:56 +02:00
Wim 870b89a8f0 Fix embeds (discord). Closes #202 2017-07-09 13:41:46 +02:00
Wim bfc7130ed8 Try to detect the charset and convert it to utf-8. (irc). Closes #209 #210 2017-07-07 23:39:38 +02:00
Wim 2338c69d40 Add UseInsecureURL option (telegram) 2017-07-04 01:35:30 +02:00
Wim c714501a0e Fix channel id off by 0x18000000000000 (steam) 2017-07-03 22:10:26 +02:00
Wim 830361e48b Deprecate URL,useAPI,BindAddress (slack,mattermost,rocketchat) 2017-06-29 23:38:48 +02:00
Wim 25ac4c708f Add more debugging (discord) 2017-06-26 23:01:35 +02:00
Wim c268e90f49 Remove label from URLs (slack). Closes #205
If slack detects a text contains an url it changes it to <http://url|url>.
Strip the |url so that http://url remains.
2017-06-26 22:16:19 +02:00
Sacha Aury - Wolfman c17512b7ab Add webhook posting mode for discord. (#204)
Using it implies to configure a Webhook on discord and set the parameter :
- WebhookURL (New parameter, discord-specific)

Discord API does not allow to change the name of the user posting, but webhooks does.
This makes the relay much more elegant, even if we might lose some more advanced features.

Signed-off-by: saury07 <sacha.aury@gmail.com>
2017-06-26 20:07:27 +02:00
Wim 1b837b3dc7 Add ShowEmbeds option (discord). #202 2017-06-24 23:17:57 +02:00
Wim 276ac840aa Add initial steam support 2017-06-22 01:02:05 +02:00
Wim 62e9de1a3b Use the last (and biggest) photo to relay (telegram). Closes #184 2017-06-18 23:59:52 +02:00
Wim 2ddc4f7ae9 Add UserID to each message. Closes #200 2017-06-18 15:44:54 +02:00
Wim 2dd402675d Sent only the biggest picture to bridges (telegram) 2017-06-18 01:23:15 +02:00
Wim 25b1af1e11 Add option IgnoreMessages to ignore messages based on regexp. (all). Closes #70 2017-06-18 01:08:11 +02:00
Wim 75fb2b8156 Make reconnection more robust (irc). #153 2017-06-18 00:13:10 +02:00
Wim 2a403f8b85 Add initial sticker/video/photo/document support (telegram). #184 2017-06-17 18:25:17 +02:00
Wim c3d45a9f06 Do not relay join/part of ourselves (irc). Closes #190 2017-06-17 17:58:56 +02:00
Wim 511f653e6e Fix incorrect behaviour of EditDisable (mattermost). Fixes #197 2017-06-15 22:45:34 +02:00
Wim 4b839b9958 Avoid nil in usermembermap (discord). See #198 2017-06-15 22:29:01 +02:00
Wim 359d0f2910 Allow reuse of api in different gateways. See #189 2017-06-07 23:54:50 +02:00
Wim ad3cb0386b Add token authentication (api) 2017-06-06 00:05:32 +02:00
Wim 2eecaccd1c Change to lowercase JSON keys (api) 2017-06-05 23:18:13 +02:00
Wim 5f30a98bc1 Add gateway name to messages 2017-06-05 23:12:19 +02:00
Wim b8a2fcbaff Post valid JSON (api). See #185 2017-06-05 23:08:36 +02:00
Wim c0c4890887 Add hashtag to channel (discord) 2017-06-03 18:21:47 +02:00
Wim 9bcd131e66 Reset variables each loop (telegram). Closes #181 2017-05-30 21:14:03 +02:00
Wim 9d9cb32f4e Limit message length (irc). Closes #179 2017-05-29 21:54:34 +02:00
Wim 87229bab13 Fix sending to different channels on same account (slack). Closes #177 2017-05-24 22:10:21 +02:00
Wim 3812693111 Replace long ids in channel metions (discord). Fixes #174 2017-05-23 22:26:37 +02:00
Wim dd3c572256 Fix possible crash on nil (discord) 2017-05-22 21:57:19 +02:00
siinus ef278301e3 Fix JoinChannel argument to use IRC channel key (#172) 2017-05-21 15:23:56 +02:00
Wim 2888fd64b0 Add UseFirstName option (telegram). Closes #144 2017-05-15 23:23:10 +02:00
Wim 4036d4459b Add NoHomeServerSuffix. Option to disable homeserver on username (matrix). Closes #160. 2017-05-12 23:04:58 +02:00
Frank ee643de5b6 Add Compatibility for Cisco Jabber (xmpp) (#166) 2017-05-11 20:10:53 +02:00