Commit Graph

96 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
5a8d7b5f6d Modify Send() to return also a message id 2017-08-27 22:59:37 +02:00
Wim
12989bbd99 Handle same account in multiple gateways better 2017-07-30 16:09:05 +02:00
Wim
83ef61287e Refactor. Add tests 2017-07-25 20:11:52 +02:00
Wim
c1c7961dd6 Fix in/out logic. Closes #224 2017-07-22 17:25:22 +02:00
Wim
d3eef051b1 Fix message modification 2017-07-21 17:04:03 +02:00
Wim
6dee988b76 Fix megacheck / go vet issues 2017-07-14 00:35:01 +02:00
Wim
6256c066f1 Replace :emoji: with unicode chars. #215
Add vendor github.com/peterhellberg/emojilib
2017-07-09 14:00:28 +02:00
Wim
1b1a9ce250 Fix samechannel gateway issue. Closes #207 2017-06-27 00:28:18 +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
3bc219167a Remove need for channel when using api. Closes #195 2017-06-15 00:40:23 +02:00
Wim
8a55c97b4e Fix utf-8 issues #193 2017-06-15 00:07:12 +02:00
Wim
359d0f2910 Allow reuse of api in different gateways. See #189 2017-06-07 23:54:50 +02:00
Wim
5f30a98bc1 Add gateway name to messages 2017-06-05 23:12:19 +02:00
Wim
c791423dd5 Add NOPINGNICK option. Closes #175 2017-05-30 00:11:53 +02:00
Wim
87229bab13 Fix sending to different channels on same account (slack). Closes #177 2017-05-24 22:10:21 +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
33dffd5ea8 Fix join/leave regression (irc) 2017-04-03 22:18:29 +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
fd8cfb11fb Fail when bridge is unable to join a channel (general) 2017-03-16 23:05:11 +01:00
Wim
35025e164a Do not forward empty message from any bridge (general). Closes #128 2017-03-02 23:51:19 +01:00
Wim
73f01ad8d8 Add REST API support 2017-02-18 23:13:46 +01:00
Wim
62b165c0b4 Refactor samechannelgateway 2017-02-17 22:08:30 +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
991183e514 Fix IgnoreNicks (global). Closes #115 2017-01-21 21:00:40 +01:00
Wim
7685fe1724 Add channel key support (irc). Closes #27 2017-01-04 14:10:35 +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
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
14830d9f1c Refactor gateway 2016-11-08 23:44:16 +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
e93847a95e Launch every account only once. Fixes #48 2016-10-23 22:23:20 +02:00
Wim
47d38192b2 Only send to channels defined in config. Fixes #53 2016-10-23 20:58:04 +02:00
Wim
db0e4ba8c5 Add error message about non-existing channels (slack) 2016-10-08 21:57:03 +02:00
Wim
2d6ed51d94 Bail out on samechannel gateway when a bridge fails to start 2016-10-03 09:23:55 +02:00
Wim
1accee1653 Bail out when a bridge fails to start 2016-10-01 20:07:04 +02:00
Wim
d02a737e0c Cleanup debug messages 2016-09-20 00:21:14 +02:00
Wim
4737442185 Connect only once to each bridge 2016-09-19 23:05:49 +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