Commit Graph

97 Commits

Author SHA1 Message Date
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 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 f8e6a69d6e Add action support for slack,mattermost,irc,gitter,matrix,xmpp,discord. #199 2017-07-30 17:48:23 +02:00
Wim 83ef61287e Refactor. Add tests 2017-07-25 20:11:52 +02:00
Wim 6dee988b76 Fix megacheck / go vet issues 2017-07-14 00:35:01 +02:00
Wim 2338c69d40 Add UseInsecureURL option (telegram) 2017-07-04 01:35:30 +02:00
Wim 830361e48b Deprecate URL,useAPI,BindAddress (slack,mattermost,rocketchat) 2017-06-29 23:38:48 +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 2ddc4f7ae9 Add UserID to each message. Closes #200 2017-06-18 15:44:54 +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 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 9d9cb32f4e Limit message length (irc). Closes #179 2017-05-29 21:54:34 +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
Wim 02612c0061 Add support for sending edited messages 2017-04-15 18:46:25 +02:00
Wim b469c8ddbd Rejoin channel when kicked (irc). Closes #146 2017-04-08 00:42:37 +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 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 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 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 7685fe1724 Add channel key support (irc). Closes #27 2017-01-04 14:10:35 +01:00
Wim fee159541f Add initial Rocket.Chat support 2016-12-03 00:10:29 +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 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 99d130d1ed Refactor 2016-11-13 23:06:37 +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 be513622ac Add anti-flooding settings (irc). See #40 2016-11-01 22:52:28 +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 1e84afbd90 Rename discord guild to server. 2016-10-23 19:51:41 +02:00
Wim fff6f08cb6 Add samechannel gateway. See #35 2016-09-30 23:19:47 +02:00
Wim fd756c5332 Use specified config file 2016-09-20 23:18:51 +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 9cb3413d9c Add Enable per section (protocol) instead of in general section 2016-08-20 18:08:57 +02:00
Wim ff94796700 Refactor bridge. Allows bridging between every protocol 2016-08-14 22:44:59 +02:00