Commit Graph

23 Commits (df3fdc26a01a20c3568b824f4f15f9b56a2f3db3)

Author SHA1 Message Date
Wim 120bf39f55
Handle file upload/download only once for each message (#742) 6 years ago
Wim bf21604d42
Make all loggers derive from non-default instance (#728) 6 years ago
Wim 42276ea7d0 Disable updateChannelMembers for now 6 years ago
Wim 707db950c8 Send GetChannelMembers event only to slack for now 6 years ago
Wim fb713ed91b
Add initial support for getting ChannelMember info of all bridges (#678)
* Add initial support for getting ChannelMember info of all bridges.

Adds an EventGetChannelMembers event, which gets send every x time to
all bridges. Bridges should respond on this event with a Message
containing ChannelMembers in the EventGetChannelMembers key in the
Extra field.

handleEventGetChannelMembers will handle this Message and sets the
contained ChannelMembers to the Bridge struct.

* Add ChannelMembers support to the slack bridge
6 years ago
Wim ccd55d2a28
Refactor gateway (#648)
* Decrease complexity of handleMessage, handleReceive, handleFiles
* Move handlers to handlers.go
* Split ignoreMessage up in ignoreTextEmpty, ignoreNicks and IgnoreTexts
* Add ignoreEvent
* Add testcase for ignoreTextEmpty, ignoreNicks, ignoreTexts and ignoreEvent
6 years ago
Patrick Connolly f2088a687e Extract bridgeMap into own package to improve testability (#601) 6 years ago
Wim f4d4dc91b1
Add option to ignore failing bridge on start. Fixes #455 (#603) 6 years ago
Wim ae32bae791
Add protocol to msg.ID in cache (#596) 6 years ago
Duco van Amstel ce21ba1545 Fix golint linter issues and enable it in CI (#593) 6 years ago
Duco van Amstel 16d5aeac7c Make config.Config more unit-test friendly (#586) 6 years ago
Wim 730ccdd456 Add support for mattermost matterbridge plugin 6 years ago
Wim 78401214b0 Make scopelint happy 6 years ago
Liam Stanley 51327a4056 Reconnect on quit. (irc) See #431 (#445)
* potential fixes for #431
* go: fix formatting/gofmt/goreturns
6 years ago
Wim 02a5bc096f Do some small cleanups 7 years ago
Wim d1227b5fc9 Use prefixed-formatter for better logging 7 years ago
Wim 6ea368c383 Move Sirupsen => sirupsen 7 years ago
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
7 years ago
Wim 2f7df2df43 Do not add messages without ID to cache 7 years ago
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.
7 years ago
Wim 54216cec4b Remove unused function 7 years ago
Wim 12989bbd99 Handle same account in multiple gateways better 7 years ago
Wim 83ef61287e Refactor. Add tests 7 years ago