Commit Graph

69 Commits (5f3b6ec007c8f3ff9e6d1f0d89f45819fbefd1cf)

Author SHA1 Message Date
Wim e622587db4 Add label support in RemoteNickFormat 7 years ago
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.
7 years ago
Wim f58be0d1c1 Add SHA to FileInfo 7 years ago
Wim 2522158127 Add avator to fileinfo 7 years ago
Wim 80822b7fff Send chat notification if media is too big to be re-uploaded to MediaServer. See #359 7 years ago
Wim 67f6257617 Add ShowTopicChange option. Allow/disable topic change messages (currently only from slack). Closes #353 7 years ago
Wim 6a047f8722 Print only debug messages when specified (xmpp). Closes #345 7 years ago
Wim 97c944bb63 Add RejoinDelay option. Delay to rejoin after channel kick (irc). Closes #322 7 years ago
Wim d0c4fe78ee Allow specifying maximum download size of media using MediaDownloadSize (slack,telegram,matrix) 7 years ago
Wim 265457b451 Refactor and add MediaDownloadSize to General 7 years ago
Wim 67a9d133e9 Add quick & dirty sshchat support (https://github.com/shazow/ssh-chat) 7 years ago
Wim e0cbb69a4f Add MessageSplit option to split messages on MessageLength (irc). Closes #281 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 cd4c9b194f Add support for ReplaceNicks using regexp to replace nicks. Closes #269 7 years ago
Wim aff3964078 Add support for ReplaceMessages using regexp to replace messages. #269 7 years ago
Wim 36a800c3f5 Add support for comments from slack file uploads (slack) 7 years ago
Wim 41aa8ad799 Add StripNick option, only allow alphanumerical nicks. Closes #285 7 years ago
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).
7 years ago
Wim b49fb2b69c Add support for Quakenet auth (irc). Closes #263 7 years ago
Wim 1a40b0c1e9 Relay attachments from mattermost to slack (slack). Closes #260 7 years ago
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)
7 years ago
Wim e7fcb25107 Add a charset option (irc). Closes #247 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 28710d0bc7 Allow a webhookurl per channel (discord). #239 7 years ago
anon724 67905089ba Add UseUserName option (discord) (#234) 7 years ago
Wim f8e6a69d6e Add action support for slack,mattermost,irc,gitter,matrix,xmpp,discord. #199 7 years ago
Wim 83ef61287e Refactor. Add tests 7 years ago
Wim 6dee988b76 Fix megacheck / go vet issues 7 years ago
Wim 2338c69d40 Add UseInsecureURL option (telegram) 7 years ago
Wim 830361e48b Deprecate URL,useAPI,BindAddress (slack,mattermost,rocketchat) 7 years ago
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>
7 years ago
Wim 1b837b3dc7 Add ShowEmbeds option (discord). #202 7 years ago
Wim 276ac840aa Add initial steam support 7 years ago
Wim 2ddc4f7ae9 Add UserID to each message. Closes #200 7 years ago
Wim 25b1af1e11 Add option IgnoreMessages to ignore messages based on regexp. (all). Closes #70 7 years ago
Wim ad3cb0386b Add token authentication (api) 7 years ago
Wim 2eecaccd1c Change to lowercase JSON keys (api) 7 years ago
Wim 5f30a98bc1 Add gateway name to messages 7 years ago
Wim 9d9cb32f4e Limit message length (irc). Closes #179 7 years ago
Wim 2888fd64b0 Add UseFirstName option (telegram). Closes #144 7 years ago
Wim 4036d4459b Add NoHomeServerSuffix. Option to disable homeserver on username (matrix). Closes #160. 7 years ago
Wim 02612c0061 Add support for sending edited messages 8 years ago
Wim b469c8ddbd Rejoin channel when kicked (irc). Closes #146 8 years ago
Wim a16ad8bf3b Reuse connection when using same bridge with another gateway. See #87 8 years ago
Wim 2e4d58cb92 Refactor 8 years ago
Wim 32bbab8518 Do not use HTML parsemode by default. Set MessageFormat="HTML" to use it. (telegram) Closes #126 8 years ago
Wim c5cfbc2297 Add matrix support 8 years ago
Wim 73f01ad8d8 Add REST API support 8 years ago
Wim 163f55f9c2 Refactor to handle disconnects/reconnects better.
Now try to reconnect every 60 seconds until forever.
8 years ago
Wim 7685fe1724 Add channel key support (irc). Closes #27 8 years ago