Commit Graph

863 Commits

Author SHA1 Message Date
Wim
45296100df Add initial zulip support 2018-05-07 21:35:48 +02:00
Wim
72ce7f06e9 Handle file comment better 2018-05-06 16:57:59 +02:00
Wim
346a7284f7 Handle file uploads to mediaserver (steam) 2018-05-06 16:32:24 +02:00
Wim
ee4ac67081 Fix possible nil when using channels (telegram). #410 2018-05-05 23:15:50 +02:00
Wim
96a47a60ad Add support for reloading all settings automatically after changing config except connection and gateway configuration. Closes #373 2018-05-01 22:23:37 +02:00
Wim
b24a47ad7f Handle channel posts correctly (telegram) 2018-04-29 22:31:11 +02:00
Wim
cd1fd1bb7c Fix panic (telegram). Closes #410 2018-04-29 15:46:40 +02:00
Jerry Heiselman
76af9cba5a Properly set Slack user who initiated slash command (#394)
* Properly set Slack user who initiated slash command
2018-04-25 21:27:34 +02:00
Wim
b69fc30902 Fix regression in ReplaceMessages and ReplaceNicks. Closes #407 2018-04-21 23:26:39 +02:00
Wim
99ce68e9ba Use username if bot name is Slack API Tester (slack) 2018-04-20 01:01:45 +02:00
Wim
8a8b95228c Remove message newline (telegram). #399 2018-04-19 22:05:00 +02:00
Wim
31a752fa21 Add missing import 2018-04-19 13:04:12 +02:00
Wim
a83831e68d Remove empty newlines from messages (telegram) #399 2018-04-19 12:53:49 +02:00
ValdikSS
a12a8d4fe2 Send mediaserver link to Discord in Webhook mode (discord) (#405) 2018-04-17 23:52:48 +02:00
Wim
e57f3a7e6c Add QuoteDisable option (telegram). Closes #399 2018-04-17 23:26:41 +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
Jerry Heiselman
76360f89c1 Strip markdown URLs with blank text (slack) (#392) 2018-03-22 22:28:27 +01:00
Wim
b4aa637d41 Add channel debug (discord) 2018-03-17 22:56:58 +01:00
Wim
7c4334d0de Remove unused import 2018-03-17 22:54:54 +01:00
Wim
062be8d7c9 Revert #378 2018-03-17 18:02:00 +01:00
Wim
8c0b04b995 Ignore restricted_acton on channel join (slack). Closes #387 2018-03-12 21:14:13 +01:00
Wim
e5989adf92 Add support for NoSendJoinPart. Closes #382 2018-03-06 21:35:47 +01:00
Wim
2133e0d1be Use default values part 2 (irc) 2018-03-06 20:51:02 +01:00
Wim
a6f37f1d61 Use default values (irc) 2018-03-06 20:41:34 +01:00
Wim
9de9151826 Fix panic on sending messages between reconnects (irc). Closes #385 2018-03-05 22:50:38 +01:00
Wim
80fcf18e24 Remove debug messsage (mattermost) 2018-03-05 22:22:20 +01:00
Wim
ab94b5ca7a Update regex for usergroup matching. Closes #379 2018-03-05 20:56:33 +01:00
Wim
8d2ce56c37 Fix regression (slack). Closes #384 2018-03-05 20:19:43 +01:00
Wim
1ec324354b Fix empty messages (telegram) 2018-03-05 00:43:59 +01:00
Wim
16be6601c8 Fix incorrect skipmessage (xmpp) 2018-03-05 00:36:54 +01:00
Wim
98027446c8 Fix tests and make megacheck happy 2018-03-05 00:30:46 +01:00
Wim
f2f1d874e1 Use viper (github.com/spf13/viper) for configuration 2018-03-04 23:52:14 +01:00
Wim
79c4ad5015 Remove unused function 2018-03-03 11:08:39 +01:00
Wim
e24f1c7c87 Use replaceVariable for usergroups (slack) #379 2018-03-02 22:32:27 +01:00
Wim
dbf8a326d5 Escape html on username (telegram). Closes #378 2018-02-28 23:25:00 +01:00
Wim
0bc9c70c66 Add usergroup support (slack). Closes #379 2018-02-28 22:54:47 +01:00
Wim
594d2155e3 Improve debug messages 2018-02-28 22:23:29 +01:00
Wim
20dbd71306 Make megacheck happy 2018-02-27 23:38:36 +01:00
Wim
6a727b9723 Use our own version of go-xmpp with debug output to logrus 2018-02-27 23:22:12 +01:00
Wim
2110db6f0c Add environment override back 2018-02-27 23:22:12 +01:00
Wim
2bac867382 Refactor using factory 2018-02-27 23:22:12 +01:00
Wim
5fbd8a3be0 Refactor xmpp 2018-02-27 23:22:11 +01:00
Wim
ad6440b603 Refactor telegram 2018-02-27 23:22:10 +01:00
Wim
064b6a915f Small fixes to irc 2018-02-27 23:22:10 +01:00
Wim
1578ebb0e2 Refactor slack 2018-02-27 23:22:10 +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
63b88e77f2 Refactor matrix 2018-02-27 23:22:10 +01:00
Wim
3d8f15c20b Refactor discord 2018-02-27 23:22:09 +01:00
Wim
cac5d56d60 Refactor gitter 2018-02-27 23:22:09 +01:00
Wim
bd2a672c14 Refactor mattermost 2018-02-27 23:22:09 +01:00
Wim
78238c85d4 Add share support between slack instances. Closes #369 2018-02-23 00:49:32 +01:00
Wim
f82a9cc7ac Fix Update userlist on join (slack). Closes #372 2018-02-22 23:56:00 +01:00
Wim
cce7624ab8 Update userlist on join (slack). Closes #372 2018-02-22 23:36:22 +01:00
Wim
7b21c1c2f4 Set event channels to lowercase (irc). Closes #375 2018-02-22 22:51:32 +01:00
Wim
f8714d81f5 Add DebugLevel option (irc) 2018-02-22 18:56:21 +01:00
Wim
8622656005 Add more debug for events (irc) 2018-02-22 18:23:22 +01:00
Wim
bab308508e Fix the UseInsecureURL text (telegram). Closes #184 2018-02-21 13:30:38 +01:00
Wim
67d2398fa8 Make matterclient work with prefixed log 2018-02-21 01:11:41 +01:00
Wim
5f3b6ec007 Disable echo banner and output (api) 2018-02-21 00:49:10 +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
e92b6de09f Add more debug 2018-02-20 23:36:29 +01:00
Wim
e622587db4 Add label support in RemoteNickFormat 2018-02-20 18:57:46 +01:00
Wim
f2efc06d1f Give api access to whole config.Message (and events). Closes #374 2018-02-20 18:36:44 +01:00
Wim
a2b94452db Add more debug (telegram) 2018-02-20 17:51:23 +01:00
Wim
4c506f7cc3 Use MediaServerDownload instead of MediaServerUpload for avatars 2018-02-20 17:15:54 +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
f58be0d1c1 Add SHA to FileInfo 2018-02-15 23:18:58 +01:00
Wim
a082b5a590 Remove unused code 2018-02-15 00:07:25 +01:00
Wim
bae9484df2 Use discordgo ContentWithMoreMentionsReplace (discord) 2018-02-14 23:05:50 +01:00
Wim
2522158127 Add avator to fileinfo 2018-02-14 22:20:27 +01:00
tsudoko
1d33e60e36 Truncate messages sent to IRC based on byte count (#368)
* Truncate messages sent to IRC based on byte count

* Avoid unnecessary string allocations
2018-02-08 23:28:33 +01:00
Wim
83c28cb857 Check for a valid WebhookURL (discord). Closes #367 2018-02-07 14:57:38 +01:00
Wim
df5bce27b0 Fix panic on nil messages (telegram). Closes #366 2018-02-07 14:28:48 +01:00
Wim
2b15739b48 Remove double close 2018-02-07 00:05:10 +01:00
Wim
3480c88e90 Do not close body on err. Closes #364 2018-02-07 00:04:02 +01:00
Wim
432cd0f99d Add more parsemode debug (telegram) 2018-02-04 17:55:20 +01:00
Wim
d4a47671ea Add markdown support (telegram). #355 2018-02-03 23:31:21 +01:00
Wim
0bcd1e62f3 Add channel_purpose to ShowTopicChange. Ignore (un)pinned_item (slack). #353 2018-02-03 01:15:57 +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
78f1011f52 Add support for file comments (slack). Closes #346 2018-02-02 23:16:10 +01:00
Wim
67f6257617 Add ShowTopicChange option. Allow/disable topic change messages (currently only from slack). Closes #353 2018-02-02 21:08:13 +01:00
Wim
169c614489 Download files and reupload to supported bridges (mattermost). Closes #357 2018-02-02 20:23:55 +01:00
ValdikSS
da908c438a Add space between colon and URL for uploaded media (#360) 2018-02-01 17:46:10 +01:00
Wim
9c9c4bf1f9 Fix build 2018-02-01 01:01:25 +01:00
Wim
7764493298 Add comment to file upload from telegram. Show comments on all bridges. Closes #358 2018-02-01 00:41:09 +01:00
Wim
64a20ee61b Add URL to message in webhook if available (mattermost). See #356 2018-01-31 17:35:13 +01:00
ValdikSS
2e2187ebf4 Enable Long Polling for Telegram. Reduces bandwidth consumption. (#350)
Fixes #349.
2018-01-29 12:07:26 +01:00
Wim
6a047f8722 Print only debug messages when specified (xmpp). Closes #345 2018-01-26 21:54:09 +01:00
Wim
7119e378a7 Add an extension to images without one (matrix). #331 2018-01-20 18:19:17 +01:00
Wim
e1dc3032c1 Ignore <subject> messages (xmpp). #272 2018-01-14 23:43:34 +01:00
Wim
8830a5a1df Fix possible panics (matrix). Closes #333 2018-01-09 23:25:58 +01:00
Wim
9f15d38c1c Use upstream again (slack) 2018-01-08 22:41:58 +01:00
Anssi Kolehmainen
9a95293bdf Convert received IRC channel names to lowercase. Fixes #329 (#330) 2018-01-06 22:55:03 +01:00
Wim
0b3a06d263 Log ConnectionErrorEvent (slack) 2018-01-03 14:06:28 +01:00
Wim
9a6249c4f5 Increase debug logging (slack) 2018-01-02 14:39:27 +01:00
Wim
50bd51e461 Use a better check to join channel (slack) 2018-01-02 14:31:44 +01:00
Wim
8e78b3e6be Fix regression in mattermost bridge (mattermost). Closes #327 2018-01-01 14:20:16 +01:00
Wim
25d2ff3e9b Fix regression. Closes #323 2017-12-26 19:13:27 +01:00
Wim
31902d3e57 Add support for deleting messages from/to matrix (matrix). Closes #320 2017-12-25 00:55:39 +01:00
Wim
97c944bb63 Add RejoinDelay option. Delay to rejoin after channel kick (irc). Closes #322 2017-12-23 00:11:30 +01:00
Wim
d0c4fe78ee Allow specifying maximum download size of media using MediaDownloadSize (slack,telegram,matrix) 2017-12-19 23:44:13 +01:00
Wim
265457b451 Refactor and add MediaDownloadSize to General 2017-12-19 23:15:03 +01:00
Wim
4a4a29c9f6 Fix panic (matrix). Closes #316 2017-12-11 12:25:28 +01:00
Wim
0a91b9e1c9 Fix incorrect forward from text line (telegram) 2017-12-11 12:15:26 +01:00
Wim
f56163295c Remove unreachable code (api) 2017-12-10 15:20:17 +01:00
Wim
d1c87c068b Also use HTML in edited messages (telegram). Closes #315 2017-12-10 15:16:17 +01:00
Wim
fa20761110 Add support for Audio/Voice files (telegram). Closes #314 2017-12-10 15:08:23 +01:00
Wim
e4a0e0a0e9 Add support for forwarded messages. Closes #313 2017-12-10 14:52:29 +01:00
Wim
d30ae19e2a Add (simple, one listener) long-polling support (api). Closes #307 2017-12-07 23:48:44 +01:00
Wim
05eb75442a Split on UTF-8 for MessageSplit (irc). Closes #308 2017-12-07 22:21:54 +01:00
Wim
3496ed0c7e Fix irc ACTION regression (irc). Closes #306 2017-12-07 22:07:45 +01:00
Wim
67a9d133e9 Add quick & dirty sshchat support (https://github.com/shazow/ssh-chat) 2017-12-03 01:29:25 +01:00
Wim
e0cbb69a4f Add MessageSplit option to split messages on MessageLength (irc). Closes #281 2017-11-24 23:29:00 +01:00
Wim
7ec95f786d Use mediaserver urls for irc,gitter and xmpp 2017-11-24 22:55:24 +01:00
Wim
1efe40add5 Add initial support for an external mediaserver. #278
Add 2 extra options `MediaServerUpload` and `MediaServerDownload`, where
the URL for upload and download can be specified.

See https://github.com/42wim/matterbridge/wiki/Mediaserver-setup-%5Badvanced%5D
for an example with caddy
2017-11-24 22:36:19 +01:00
Wim
cbd73ee313 Add support for uploaded images/video/files (matrix) 2017-11-22 00:28:40 +01:00
Wim
34227a7a39 Add support for uploading images/video (matrix). Closes #302 2017-11-21 23:50:27 +01:00
Wim
cd4c9b194f Add support for ReplaceNicks using regexp to replace nicks. Closes #269 2017-11-20 23:27:27 +01:00
Wim
98762a0235 Add webp extension to stickers if necessary (telegram) 2017-11-20 22:12:51 +01:00
Wim
aff3964078 Add support for ReplaceMessages using regexp to replace messages. #269 2017-11-15 23:33:00 +01:00
Wim
0578b21270 Fix message sending (slack) 2017-11-13 19:50:18 +01:00
Wim
36a800c3f5 Add support for comments from slack file uploads (slack) 2017-11-13 00:20:31 +01:00
Wim
6d21f84187 Add extension to sticker/video/photo (telegram) 2017-11-12 22:04:35 +01:00
Wim
46f5acc4f9 Add the download actually to the message (telegram) 2017-11-12 18:09:38 +01:00
Wim
95d4dcaeb3 Add more debug info (telegram) 2017-11-12 17:49:10 +01:00
Wim
64c542e614 Add more debug info (telegram) 2017-11-12 17:46:44 +01:00
Wim
13d081ea80 Fix document bug (telegram) 2017-11-12 17:15:53 +01:00
Wim
c0f9d86287 Fix telegram photo/document input handling (telegram) 2017-11-12 11:46:32 +01:00
Wim
bcdecdaa73 Fix strict user handling of girc (irc). Closes #298 2017-11-11 23:16:58 +01:00
Wim
4fc48b5aa4 Fix panic on empty params 2017-11-08 22:55:48 +01:00
Wim
307ff77b42 Add ServerName to TLSConfig 2017-11-08 22:55:37 +01:00
Wim
9b500bc5f7 Replace sorcix/irc and go-ircevent with girc 2017-11-08 22:54:31 +01:00
rrigby
27e94c438d Add support for bridging to individual steam chats. (steam) (#294) 2017-11-08 00:36:20 +01:00
Patrick Connolly
58392876df Use room.URI instead of room.Name. (gitter) (#293) 2017-11-08 00:35:08 +01:00
Wim
115c4b1aa7 Fix missing arg for Errorf 2017-11-04 15:01:03 +01:00
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
Wim
d300bb1735 Relay messages starting with ! (irc). Closes #164 2017-05-08 21:15:01 +02:00
Wim
4fcedabfd0 Revert "Add support for edited messages (gitter)"
This reverts commit 17b8b86d68.
Reverted because of lingering file descriptors (memory leak)
2017-04-19 19:51:33 +02:00
Wim
246c8e4f74 Ignore error on private channel join (slack) Fixes #150 2017-04-17 18:01:24 +02:00
Wim
4d2207aba7 Add support for edited messages (slack) 2017-04-16 00:16:24 +02:00
Wim
17b8b86d68 Add support for edited messages (gitter) 2017-04-15 23:46:01 +02:00
Wim
fdb57230a3 Add support for edited messages (mattermost) 2017-04-15 20:21:57 +02:00
Wim
7469732bbc Add support for edited messages (telegram) 2017-04-15 19:07:35 +02:00
Wim
d1dd6c3440 Add support for edited messages (discord) 2017-04-15 19:00:15 +02:00
Wim
02612c0061 Add support for sending edited messages 2017-04-15 18:46:25 +02:00
Wim
035c2b906a Strip custom emoji metadata (discord). Closes #148 2017-04-15 16:23:34 +02:00
Wim
b469c8ddbd Rejoin channel when kicked (irc). Closes #146 2017-04-08 00:42:37 +02:00
Wim
eee0036c7f Modify iconurl correctly (mattermost). Closes #145 2017-04-08 00:16:46 +02:00
Wim
89c66b9430 Reconnect on session removal (mattermost) 2017-04-07 23:27:41 +02:00
Wim
bd38319d83 Add support for showing/hiding join/leave messages from mattermost. Closes #147 2017-04-07 22:27:36 +02:00
Wim
57176dadd4 Support edited messages (telegram). See #141 2017-04-01 18:18:38 +02:00
Wim
dd449a8705 Remove debug info (irc) 2017-04-01 18:10:11 +02:00
Wim
587ad9f41d Remove space after nick (mattermost). Closes #142 2017-04-01 17:44:17 +02:00
Wim
a16ad8bf3b Reuse connection when using same bridge with another gateway. See #87 2017-04-01 17:24:19 +02:00
Wim
2e4d58cb92 Refactor 2017-03-28 23:56:58 +02:00
Wim
f935c573e9 Allow bot tokens for now without warning (slack). Closes #140 2017-03-27 20:15:05 +02:00
Wim
c30ffeb81e Fix roomid bug (gitter) 2017-03-18 21:17:21 +01:00
Wim
80895deae2 Replace role ids in mentions to role names (discord). Closes #133
* The bot needs to have the "Manage Roles" permission for this to work.
(see Server settings - Roles - General Permissions)
2017-03-18 16:50:09 +01:00
Wim
eddc691fc9 Join rooms not already joined by the bot (gitter). See #135 2017-03-18 15:34:19 +01:00
Wim
fd8cfb11fb Fail when bridge is unable to join a channel (general) 2017-03-16 23:05:11 +01:00
Wim
9407aa4600 Check if room exists when joining channel (gitter). Closes #135 2017-03-16 23:01:18 +01:00
Wim
32bbab8518 Do not use HTML parsemode by default. Set MessageFormat="HTML" to use it. (telegram) Closes #126 2017-02-24 18:50:16 +01:00
Wim
84c0b745af Use roomalias instead of internal ID (matrix) 2017-02-24 17:58:51 +01:00
Wim
c5cfbc2297 Add matrix support 2017-02-20 00:50:37 +01:00
Wim
73f01ad8d8 Add REST API support 2017-02-18 23:13:46 +01:00
Wim
072cac0347 Do not relay slackbot messages (slack). Closes #119 2017-02-17 23:13:02 +01:00
Wim
dc37232100 Refactor. Make extra options easier for other protocols 2017-02-14 23:52:45 +01:00
Wim
163f55f9c2 Refactor to handle disconnects/reconnects better.
Now try to reconnect every 60 seconds until forever.
2017-02-14 21:12:02 +01:00
Wim
2d16fd085e Use nickname when present (discord). Closes #122 2017-02-13 18:52:52 +01:00
Wim
2b0f178ba3 Fix receiving messages from private channels (slack). See #118 2017-02-03 16:40:15 +01:00
Wim
79e6c9fa6c Update vendor 2017-01-28 22:45:32 +01:00
Wim
53e9664cde Add support for private channels (slack). Closes #118 2017-01-28 00:36:53 +01:00
Wim
dcccd43427 Use unknown as username if unsigned channel (telegram) 2017-01-27 23:59:24 +01:00
Wim
5f8b24e32c Fix username (telegram) 2017-01-27 23:30:46 +01:00
Wim
678a7ceb4e Fix channel and group messages (telegram) 2017-01-27 23:26:06 +01:00
Josip Janžić
9bf10e4b58 Fix tls by setting ServerName (xmpp) (#114)
Fixes error message shown by tls: "either ServerName or InsecureSkipVerify must be specified in the tls.Config"
2017-01-18 21:01:42 +01:00
Stefan Haller
01a32b2154 Handle SkipTLSVerify for XMPP client (#106). Closes #81
* Handle SkipTLSVerify for XMPP client

* Mention SkipTLSVerify for XMPP in sample config
2017-01-14 00:35:45 +01:00
Wim
b3c3142bb2 Do not use API functions in webhook (slack). Closes #110 2017-01-12 00:40:50 +01:00
Tatsuyuki Ishi
e3dda0e812 Telegram: add markdown (#103)
* Add support for markdown (telegram)

Close #98

* Telegram: add more Markdown Render blacklist
2017-01-06 23:32:17 +01:00
Wim
7685fe1724 Add channel key support (irc). Closes #27 2017-01-04 14:10:35 +01:00
Tatsuyuki Ishi
8b47670a74 Telegram: Fix the missing username 2016-12-17 18:43:54 +09:00
Wim
fee159541f Add initial Rocket.Chat support 2016-12-03 00:10:29 +01:00
Wim
70c93d970c Update public links to new API (mattermost) 2016-11-26 15:46:39 +01:00
Wim
4960273832 Do not relay empty or delayed messages (xmpp) 2016-11-26 15:08:41 +01:00
Wim
6c018ee6fe Enable keepalive (xmpp) 2016-11-26 15:04:06 +01:00
Wim
20c04f7977 Fix loop because of closed channel. Fixes #89 2016-11-23 23:51:51 +01:00
Wim
e1641b2c2e Add support for RemoteNickFormat in general configuration 2016-11-20 23:33:41 +01:00
Wim
e0e1e4be80 Add gateway.inout config for bidirectional bridges. Closes #85 2016-11-20 23:01:44 +01:00
Wim
d5845ce900 Replace id-mentions to usernames (slack). Closes #86 2016-11-20 22:40:09 +01:00
Wim
cef64e01b3 Remove callbacks after being called. Fixes #88 (irc) 2016-11-20 17:21:15 +01:00
Wim
cd18d89894 Add initial telegram support 2016-11-15 23:15:57 +01:00
Wim
449ed31e25 Fix ShowJoinPart from irc bridge. Closes #72 2016-11-14 22:53:06 +01:00
Wim
f7495dd0c3 Add bot tag to api if not specified (discord) 2016-11-14 16:30:43 +01:00
Wim
a11f77835d Fix !users command for irc. Closes #78. 2016-11-14 00:12:48 +01:00
Wim
4976338677 Merge branch 'refactor' 2016-11-13 23:09:06 +01:00
Wim
99d130d1ed Refactor 2016-11-13 23:06:37 +01:00
Wim
1d5cd1d7c4 Sync with mattermost 3.5.0 2016-11-12 22:00:53 +01:00
Wim
a3dd0f1345 Add support for using avatars from discord,slack and gitter in slack 2016-11-06 00:46:32 +01:00
Wim
2dbe0eb557 Add support for dynamic IconURL (slack). Closes #43 2016-11-05 01:11:51 +01:00
Wim
c3a8b7a997 Refactor modifyMessage 2016-11-04 23:03:31 +01:00
Wim
581847f415 Update to latest go-gitter API changes 2016-11-02 16:28:23 +01:00
Wim
1b15897135 Fix tight loop (gitter). Closes #68. 2016-11-02 16:13:22 +01:00
Wim
be513622ac Add anti-flooding settings (irc). See #40 2016-11-01 22:52:28 +01:00
Wim
6f309f2108 Use names instead of id's for mentions (discord). Fixes #66 2016-10-30 22:55:34 +01:00
Wim
92d9db5a2d Override config from environment. See #50
Expects uppercase environment variables of MATTERBRIDGE_PROTOCOL_ACCOUNT_KEY="value"
e.g. you can override this config

[mattermost]
    [mattermost.work]
    Team="yourteam"
    Login="yourlogin"
    Password="yourpass"

by using
MATTERBRIDGE_MATTERMOST_WORK_TEAM="newteam"
MATTERBRIDGE_MATTERMOST_WORK_LOGIN="newlogin"
MATTERBRIDGE_MATTERMOST_WORK_PASSWORD="newpassword"
2016-10-30 22:32:29 +01:00
Wim
96620a3c2c Drop first received message on connection to avoid duplicates (slack). Fixes #55 2016-10-29 21:05:56 +02:00
Wim
5249568b8e Wait until the welcome message before connection is ok (irc). Fixes #62 2016-10-29 18:59:12 +02:00
Wim
4a336a6bba Forward channel notices too (irc) 2016-10-29 18:01:16 +02:00
Wim
035dc042a1 Fix teamid bug (mattermost) 2016-10-29 16:46:02 +02:00
Wim
dfc513530b Ignore messages from ourself (irc bridge) 2016-10-29 16:35:16 +02:00
Wim
721e0a2dcd Ignore private queries (irc bridge) 2016-10-29 16:27:07 +02:00
Wim
8452eb12da Only respond to notices from nickserv (irc bridge) 2016-10-29 16:09:58 +02:00
Wim
475bed5e19 Add support for discord channel ID. See #57 2016-10-26 01:01:36 +02:00
Wim
40a967523c Ignore empty content from discord. Fixes #58 2016-10-26 00:12:31 +02:00
Wim
d3a34af073 Add support for discord attachments. Fixes #59 2016-10-26 00:09:22 +02:00
Wim
e7107cf782 Use RTM only on API (slack). Fix #56 2016-10-25 23:29:32 +02:00
Wim
e93847a95e Launch every account only once. Fixes #48 2016-10-23 22:23:20 +02:00
Wim
545377742c Drop messages not from our mattermost team. Fixes #49 2016-10-23 21:16:14 +02:00
Wim
1e84afbd90 Rename discord guild to server. 2016-10-23 19:51:41 +02:00
Wim
4380c48b4b Add irc names callback only on command. Fixes #51 2016-10-23 18:19:11 +02:00
Wim
db0e4ba8c5 Add error message about non-existing channels (slack) 2016-10-08 21:57:03 +02:00
Wim
e52b040b9c Add more irc debug on connect (when debugging enabled) 2016-10-01 20:07:59 +02:00
Wim
fff6f08cb6 Add samechannel gateway. See #35 2016-09-30 23:19:47 +02:00
Wim
0e527a4252 Fix slack channel join 2016-09-30 23:15:35 +02:00
Wim
f10251a1a3 Fix mattermost bridge channel join 2016-09-30 22:59:30 +02:00
Wim
8c6be434ac Remove newline splitting from outgoing mattermost messages. Should be handled by receiving bridge. 2016-09-29 23:32:12 +02:00
Wim
3ca4309e8a Split newlines for irc (#37) 2016-09-29 21:21:24 +02:00
Wim
e8a2e1af63 Fix IRC colors regexp 2016-09-22 23:48:05 +02:00
Wim
1d240140c9 Strip IRC colors. Closes #33 2016-09-21 00:33:40 +02:00
Wim
272eef544f Add support for mattermost attachments. Shows public link on bridges. Closes #32 2016-09-20 23:48:58 +02:00
Wim
fd756c5332 Use specified config file 2016-09-20 23:18:51 +02:00
Wim
dce600ad51 Fix joining slack/mattermost channels using the webhook 2016-09-20 12:20:44 +02:00
Wim
d02a737e0c Cleanup debug messages 2016-09-20 00:21:14 +02:00
Wim
98ff59c716 Cleanup discord bridge debug/info messages 2016-09-20 00:15:30 +02:00
Wim
0e96e9f9be Cleanup slack bridge debug/info messages 2016-09-20 00:13:57 +02:00
Wim
e8c7898583 Cleanup gitter bridge debug/info messages 2016-09-20 00:06:19 +02:00
Wim
11f4a6897a Cleanup xmpp bridge debug/info messages 2016-09-20 00:03:01 +02:00
Wim
002c5fd0d1 Cleanup mattermost bridge debug/info messages 2016-09-19 23:58:57 +02:00
Wim
18504ec08d Cleanup irc bridge debug/info messages 2016-09-19 23:35:47 +02:00
Wim
596096d6da Add the discord bridge for real 2016-09-19 21:05:13 +02:00
Wim
a0b84beb9b Add Discord support 2016-09-19 20:53:26 +02:00
Wim
7baf386ede Refactor for more flexibility
* Move from gcfg to toml configuration because gcfg was too restrictive
* Implemented gateway which has support multiple in and out bridges.
* Allow for bridging the same bridges, which means eg you can now bridge between multiple mattermosts.
* Support multiple gateways
2016-09-18 19:21:15 +02:00
Wim
b30e85836e Add Slack support 2016-09-05 16:34:37 +02:00
Wim
12389d602e Add Gitter support 2016-09-04 20:04:43 +02:00
Wim
106404d32f Fix info message 2016-08-20 18:08:59 +02:00
Wim
e06efbad9f Remove unused code 2016-08-20 18:08:58 +02:00
Wim
3311c7f923 Refactor handleReceive 2016-08-20 18:08:58 +02:00
Wim
3a6c655dfb Remove redundant function 2016-08-20 18:08:58 +02:00
Wim
e11d786775 Move nickformatting into bridge 2016-08-20 18:08:57 +02:00
Wim
889b6debc4 Add Connect() to Bridger interface 2016-08-20 18:08:57 +02:00
Wim
9cb3413d9c Add Enable per section (protocol) instead of in general section 2016-08-20 18:08:57 +02:00
Wim
96e21dd051 Add documentation about breaking API changes for mattermost 3.3.0. Start work on 0.6.0-dev 2016-08-15 21:11:50 +02:00
Wim
6c6000dbbd Update code to mattermost 3.3.0 API changes 2016-08-15 18:49:17 +02:00
Wim
ff94796700 Refactor bridge. Allows bridging between every protocol 2016-08-14 22:44:59 +02:00
Wim
1f72ca4c4e Add initial XMPP support 2016-08-14 22:40:26 +02:00
Wim
79ffb76f6e Add (PLAIN) SASL support 2016-07-21 23:47:44 +02:00
Wim
300cfe044a Remove token check 2016-07-12 00:23:36 +02:00
Wim
fb586f4a96 Remove Port from IRC config. Specify it with server 2016-07-11 23:30:42 +02:00
Wim
ced371bece Add port to BindAddress 2016-07-11 23:22:56 +02:00
Wim
a87cac1982 Remove multiple Token config. Use same channel setup as from matterbridge-plus 2016-07-11 22:55:58 +02:00
Wim
8fb5c7afa6 Remove UseSlackCircumfix. Use RemoteNickFormat 2016-07-11 21:26:13 +02:00
Wim
aceb830378 Converge with matterbridge-plus 2016-07-11 21:23:33 +02:00