Wim
ff0de85817
Remove obsolete file upload links (discord). Fixes #908 ( #931 )
...
Since v1.16.0 we now can upload files via webhook.
Old way of showing files with webhook only setup can be removed.
2019-10-27 01:10:43 +02:00
Wim
727fa9f929
Add support for uploading application/x and audio/x (matrix). Fixes #925 ( #929 )
2019-10-27 00:06:44 +02:00
Wim
00967a98ac
Fix panic on WebhookURL only setting (mattermost). Closes #916 ( #917 )
2019-10-04 01:01:24 +02:00
Qais Patankar
1d708ab351
Suppress unhandled HelloEvent message (slack) ( #913 )
2019-10-04 00:19:50 +02:00
Qais Patankar
ba6759010b
Add UserTypingSupport (discord) ( #914 )
...
* Add Discord to UserTypingSupport
* discord: start typing in a channel on EventUserTyping receive
* discord: emit EventUserTyping to gateway
2019-10-04 00:18:56 +02:00
Wim
0abf4d5d5d
Specify correct GuildID on unknown user query (discord). Fixes #879 ( #894 )
2019-09-15 20:25:42 +02:00
Michal Suchánek
9b320cd43f
Add token support (RocketChat) ( #892 )
...
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
2019-09-13 23:41:02 +02:00
Wim
28783a4146
Do configuration validation on start-up. Fixes #888 ( #889 )
...
Fail if:
* we don't have any gateways configured
* we have gateways configured but with non-existing bridge configuration
* we have gateways configured without any configuration
2019-09-09 23:48:00 +02:00
Wim
a3bee01e0a
Update dependencies ( #886 )
2019-09-07 22:46:58 +02:00
Wim
3562d4220c
Bail if incorrect Jid (xmpp). Fixes #869 ( #883 )
2019-09-07 21:36:25 +02:00
Wim
f66d5f1e58
Add extra debug info (discord)
2019-09-05 22:39:43 +02:00
MOZGIII
cec086994e
Add support for sending files via webhook (discord) ( #872 )
2019-08-29 00:13:10 +02:00
cori hudson
921f2dfcdf
Add initial Keybase Chat support ( #877 )
...
* initial work on native keybase bridging
* Hopefully make a functional keybase bridge
* add keybase to bridgemap
* send to right channel, try to figure out received msgs
* add account and userid
* i am a Dam Fool
* Fix formatting for messages, handle /me
* update vendors, ran golint and goimports
* move handlers to handlers.go, clean up unused config options
* add sample config, fix inconsistent remote nick handling
* Update readme with keybase links
* Resolve fixmie errors
* Error -> Errorf
* fix linting errors in go.mod and go.sum
* explicitly join channels, ignore messages from non-specified channels
* check that team names match before bridging message
2019-08-26 21:00:31 +02:00
Wim
79a006c8de
Fix regression (discord). Closes #864 ( #866 )
2019-07-29 23:37:38 +02:00
Wim
7d2e440c83
Add support for discord category channels (discord) ( #863 )
...
This adds support for the discord category option that can be used
to group channels in. This means we can have multiple channels with
the same name.
We add the option to specify a category in the channel option of a
discord account under [[gateway]]
Besides channel="channel" or channel="ID:channelID", now also
channel="category/channel" can be specified.
This change remains backwards compatible with people that haven't
specified the category and incorporates the fix in #861
2019-07-15 21:56:35 +02:00
Qais Patankar
5551f9d56f
Fix discord channel & category name clash. #860 ( #861 )
2019-07-14 19:53:09 +02:00
Wim
1fb91c6316
Fix panic by checking slice bounds in handleEntities (telegram). Fixes #857 ( #858 )
...
Besides the bound checking, this now also use utf16 as suggested by
https://github.com/go-telegram-bot-api/telegram-bot-api/issues/231
2019-07-08 22:19:45 +02:00
Qais Patankar
e60949ff3f
Support webhook message deletions (discord) ( #853 )
...
* Support webhook message deletions (discord)
Messages sent via webhook can now be deleted. It seems it can do this
without any special permissions.
This copies discordgo.WebhookExecute and makes it support the returning
of discordgo.Message.
A pull request has been sent upstream, so we should use that if
@bwmariin accepts the pull request:
https://github.com/bwmarrin/discordgo/pull/663
Changes in behaviour (webhook mode only):
- Previously messages *edited* on other platforms would just be
retransmitted as a brand new message to Discord.
- Message *edits* will now be ignored.
- Debug: message edits will now print out a "permission error".
In the future it may be good to send an "message edited" react to those
webhook messages, so at least people know that the message was edited on
other platforms. (Even though it can't actually show the new message.)
Alternatively, message edits could just send a brand new message with a
link back to the old one. This is a little ugly but it would ensure that
Discord users are able to see the edited message. These "message edit
notifications" would be sent from the bot user (not from a webhook), so
we could edit the "edit notification" if subsequent edits to the
original message are made.
2019-07-08 22:18:37 +02:00
Wim
cf3cddafab
Keep connection state. Fixes #856
...
Actually check if we're connected when trying to Send() a message.
Messages now will get dropped when not connected.
TODO: Ideally this should be in a ring buffer to retransmit when the
connection comes back up.
2019-06-30 18:34:41 +02:00
Joona Hoikkala
80b4cec87a
Add an option to skip the Mattermost server version check ( #849 )
...
Adds SkipVersionCheck bool option for mattermost
2019-06-16 16:23:50 +02:00
Qais Patankar
76c7b69e4e
Support bulk deletions (discord)
2019-06-16 16:07:48 +02:00
Nick
7a3bb0e55c
Verify TLS against JID domain, not the host. (xmpp) ( #834 )
...
Partially fixes #820 .
A full fix requires patching https://github.com/matterbridge/go-xmpp to use DNS SRV records.
2019-06-14 01:10:43 +02:00
Wim
6e8f535e8b
Fix logic (xmpp)
2019-06-14 00:44:31 +02:00
Wim
5619a75b05
Fix regression in autojoining with legacy tokens (slack). Fixes #651 ( #848 )
2019-06-14 00:42:55 +02:00
Wim
53dfb78215
Allow messages with timestamp (xmpp). Fixes #835 ( #847 )
2019-06-14 00:24:42 +02:00
Wim
8e97cbab1e
Fix noisy whatsapp error logging
2019-06-14 00:02:32 +02:00
Wim
ce7b749fd5
Update github.com/Rhymen/go-whatsapp vendor. Fixes #843
2019-06-14 00:02:32 +02:00
Wim
6617bd6609
Revert xmpp to orig behaviour. Closes #844
2019-06-13 23:35:04 +02:00
Wim
e610fb3201
Make config parse errors readable
2019-06-02 09:35:20 +01:00
Wim
40f1d35415
Fix go mod issue by removing whatsapp-ext
2019-06-02 09:35:20 +01:00
Duco van Amstel
3724cc3a15
Clean-up XMPP handling code ( #831 )
2019-05-30 12:31:54 +02:00
Wim
3418e8c9af
Use upstream whatsapp again ( #809 )
2019-05-30 12:20:56 +02:00
Wim
1829dc3d9f
Allow messages from other bots (discord). Fixes #816
2019-05-01 18:10:31 +02:00
Wim
65781b9316
Disable user lookups on delete messages (slack) ( #812 )
2019-04-23 23:29:15 +02:00
Duco van Amstel
9be0be0316
Add lacking clean-up in Slack synchronisation ( #811 )
2019-04-23 23:08:34 +02:00
Wim
fed77cccf3
Handle unthreaded messages (mattermost). Fixes #803
2019-04-19 23:31:45 +02:00
Wim
9b520dfb78
Fix panic on nil message.Post (mattermost). Fixes #804
2019-04-19 23:08:41 +02:00
Wim
2d277a15f5
Add scripting (tengo) support for every outgoing message ( #806 )
...
Adds a new key OutMessage under [tengo] table, which specifies the location of the script that
will be invoked on each message being sent to a bridge and can be used to modify the Username
and the Text of that message.
The script will have the following global variables:
read-only:
inAccount, inProtocol, inChannel, inGateway
outAccount, outProtocol, outChannel, outGateway
read-write:
msgText, msgUsername
The script is reloaded on every message, so you can modify the script on the fly.
The default script in https://github.com/42wim/matterbridge/tree/master/internal/tengo/outmessage.tengo
is compiled in and will be executed if no script is specified.
2019-04-19 18:27:31 +02:00
chotaire
6b47e29583
Add verbose IRC joins/parts (ident@host) ( #805 )
...
New configuration setting: VerboseJoinPart (default is false)
2019-04-18 23:56:05 +02:00
Wim
380c38674c
Fix deadlock on reconnect (irc). Closes #757
2019-04-15 23:28:47 +02:00
Wim
5677c912a8
Add useraction support (rocketchat). Closes #772 ( #794 )
2019-04-08 23:30:22 +02:00
Wim
7a24de15e4
Add tengo support to RemoteNickFormat ( #793 )
...
This commit add support for using the result of a tengo script in RemoteNickFormat using {TENGO}
Also adds a new toml table [tengo] with key RemoteNickFormat and value location of the script.
This also moves the TengoModifyMessage from [general] to Message in [tengo]
Documentation:
RemoteNickFormat allows you to specify the location of a tengo (https://github.com/d5/tengo/ ) script.
The script will have the following global variables:
to modify: result
to read: channel, bridge, gateway, protocol, nick
The result will be set in {TENGO} in the RemoteNickFormat key of every bridge where {TENGO} is specified
The script is reloaded on every message, so you can modify the script on the fly.
Example script can be found in https://github.com/42wim/matterbridge/tree/master/contrib/remotenickformat.tengo
[tengo]
RemoteNickFormat="remotenickformat.tengo"
2019-04-08 20:58:21 +02:00
Wim
8a875f292e
Revert fix for #722 . Closes #781
...
Revert "Fix typo"
This reverts commit dffd67eb31
.
Revert "Handle quit message relay better on gateways with one channel on the irc bridge #722 "
This reverts commit 240559581a
.
Revert "Support quits from irc correctly. Fixes #722 (#724 )"
This reverts commit d76a04bd0a
.
2019-04-06 23:12:48 +02:00
Wim
60a85621ea
Return when not connected and drop a message (irc). Fixes #786
2019-04-06 22:34:41 +02:00
Wim
cdf33e5748
Use default nick if none specified (irc). Fixes #785
2019-04-05 00:17:46 +02:00
Wim
01d0a9f412
Handle nil message (telegram). Fixes #777
2019-04-05 00:04:08 +02:00
Wim
8cc2d3b4fe
Revert "Bail if any vars are nil, not if all (telegram) ( #778 )"
...
This reverts commit efd2c99862
.
2019-04-05 00:02:26 +02:00
Wim
64b57f2da3
Ignore message_replied and hidden messages (slack). Fixes #709 ( #779 )
2019-03-27 22:54:18 +01:00
David Hill
efd2c99862
Bail if any vars are nil, not if all (telegram) ( #778 )
2019-03-27 21:00:57 +01:00
Wim
16763b715a
Look up #channel too (rocketchat). Fix #773 ( #775 )
2019-03-24 20:15:15 +01:00
David Hill
97f9d4be67
Fix double unlock (slack) ( #771 )
2019-03-21 17:30:28 +01:00
Wim
77516c97db
Allow the # in rocketchat channels (backward compatible) ( #769 )
2019-03-20 23:19:27 +01:00
Duco van Amstel
8b754017ca
Fix race-condition in populateUser() ( #767 )
...
Fix the root-cause of #759 by introducing synchronisation points for
individual user fetches.
2019-03-20 22:54:31 +01:00
Wim
a27600046e
Fix regression for legacy slack by #766 ( #768 )
2019-03-20 22:52:23 +01:00
Duco van Amstel
fb2667631d
Refactor channel and user management (slack) ( #766 )
2019-03-15 21:23:09 +01:00
Duco van Amstel
b638f7037a
Force Slack link unfurling ( #763 )
2019-03-12 22:56:43 +01:00
Duco van Amstel
74699a8262
Split-out Slack user and channel management ( #762 )
2019-03-12 22:52:36 +01:00
Wim
e955a056e2
Trim <p> and </p> tags (matrix). Closes #686 ( #753 )
2019-03-03 00:29:29 +01:00
Wim
53aa076555
Do not send duplicate messages (rocketchat). Fixes #745 ( #752 )
...
For an unknown reason we get duplicate messages (from the same channel)
using the realtime API when we have > 1 channel subscribed on.
Solution for now is caching the message ID in a LRU cache and ignoring
the duplicates.
This should be reviewed when we have actual editing support from the
realtime API
2019-03-02 22:58:14 +01:00
Wim
f57370f33a
Add support for URL in messageEntities (telegram). Fixes #735 ( #736 )
2019-03-02 22:38:44 +01:00
Wim
c557d51b6f
Need to specify /topic:mytopic for channel configuration (zulip). ( #751 )
...
Breaking change for zulip channel configuration.
For zulip the channel configuration will now need to specify also
the topic with /topic:yourtopic.
Example:
[[gateway.inout]]
account="zulip.streamchat"
channel="general/topic:mytopic"
This fixes the incorrect PR #701 which didn't work with multiple
gateways.
2019-03-02 20:31:38 +01:00
Wim
df3fdc26a0
Use whatsapp forks ( #750 )
2019-03-02 13:04:28 +01:00
Wim
af00c34aac
Do not relay any bot messages (discord) ( #743 )
2019-02-28 12:59:52 +01:00
Wim
26a7e35f27
Add MediaConvertWebPToPNG option (telegram). ( #741 )
...
* Add MediaConvertWebPToPNG option (telegram).
When enabled matterbridge will convert .webp files to .png files
before uploading them to the mediaserver of the other bridges.
Fixes #398
2019-02-27 00:41:50 +01:00
Wim
b09a73040f
Print errors as string instead of %#v ( #738 )
2019-02-26 17:21:23 +01:00
Wim
740b5f2602
Keep reconnecting until succeed (zulip) ( #737 )
2019-02-26 17:08:20 +01:00
Wim
96841c70c7
Fix regression in HTML handling (telegram). Closes #734
...
* Revert back to blackfriday v1
* Add testing
2019-02-24 15:13:56 +01:00
Wim
a775b57134
Do not send topic changes on connect (xmpp). Fixes #732 ( #733 )
...
This checks if we get a topic change < 5 seconds after connection.
If that's the case, ignore it.
Also this PR makes the topic change an actual EventTopicChange.
2019-02-23 23:03:21 +01:00
Wim
bf21604d42
Make all loggers derive from non-default instance ( #728 )
2019-02-23 22:51:27 +01:00
Wim
1bb39eba87
Add scripting (tengo) support for every incoming message ( #731 )
...
TengoModifyMessage allows you to specify the location of a tengo (https://github.com/d5/tengo/ ) script.
This script will receive every incoming message and can be used to modify the Username and the Text of that message.
The script will have the following global variables:
to modify: msgUsername and msgText
to read: msgChannel and msgAccount
The script is reloaded on every message, so you can modify the script on the fly.
Example script can be found in https://github.com/42wim/matterbridge/tree/master/gateway/bench.tengo
and https://github.com/42wim/matterbridge/tree/master/contrib/example.tengo
The example below will check if the text contains blah and if so, it'll replace the text and the username of that message.
text := import("text")
if text.re_match("blah",msgText) {
msgText="replaced by this"
msgUsername="fakeuser"
}
More information about tengo on: https://github.com/d5/tengo/blob/master/docs/tutorial.md and
https://github.com/d5/tengo/blob/master/docs/stdlib.md
2019-02-23 16:39:44 +01:00
Wim
1f1634ea59
Add extra debug option (slack)
2019-02-22 19:36:50 +01:00
Declan Hoare
a7dd033c3b
Allow sending discriminator with Discord username ( #726 )
2019-02-22 14:28:27 +01:00
Krzysiek Madejski
55e79063d6
Add initial WhatsApp support ( #711 )
2019-02-21 20:28:13 +01:00
Wim
d76a04bd0a
Support quits from irc correctly. Fixes #722 ( #724 )
2019-02-17 22:43:04 +01:00
Wim
a8fe54a78d
Allow zulip bridge to specify topic per channel. Closes #701 ( #723 )
2019-02-17 21:50:05 +01:00
Wim
0bcb0b882f
Support join/leaves from discord. Closes #654 ( #721 )
2019-02-17 21:49:45 +01:00
Wim
aeaea0574f
Detect html nicks in RemoteNickFormat (matrix). Fixes #696 ( #719 )
2019-02-17 21:48:32 +01:00
Wim
99d71c2177
Send notices on join/parts (matrix). Fixes #712 ( #716 )
2019-02-16 18:36:09 +01:00
Wim
3e60cfafd3
Send username when uploading video/images (matrix). Fixes #715 ( #717 )
2019-02-16 18:35:36 +01:00
Wim
3123695869
Upgrade to latest girc version (irc) ( #718 )
2019-02-16 17:24:04 +01:00
Wim
716751cf76
Refactor and update RocketChat bridge ( #707 )
...
* Add support for editing/deleting messages
* Add support for uploading files
* Add support for avatars
* Use the Rocket.Chat.Go.SDK
* Use the rest and streaming api
2019-02-15 18:20:32 +01:00
Wim
6ebd5cbbd8
Refactor and update RocketChat bridge
...
* Add support for editing/deleting messages
* Add support for uploading files
* Add support for avatars
* Use the Rocket.Chat.Go.SDK
* Use the rest and streaming api
2019-02-15 18:19:34 +01:00
Wim
077b818d82
Add extra debug of SubMessage to empty messages error (slack). #709
2019-02-15 18:05:10 +01:00
Wim
5af1d80055
Do not panic on non-json response from server (zulip)
2019-02-13 00:29:34 +01:00
Wim
40d76b2296
Fix error handling on bad event queue id (zulip). Closes #694
2019-02-11 01:34:50 +01:00
Wim
57f156be83
Hint at thread replies when messages are unthreaded (slack) ( #684 )
2019-02-10 17:23:50 +01:00
Wim
c81c0dd22a
Update vendor, move to labstack/echo/v4 Fixes #698
2019-01-31 17:06:36 +01:00
Wim
4ae028fe73
Optimize handling of very large slack teams. Fixes #695
...
Stop getting users if we reach 2000 users. Slack will rate-limit us
even if we follow their limits.
This means that we now have to lookup every user that says a message
for the first time. This should be less intensive on the API.
This also disables partly fb713ed91b
for now.
ChannelMembers will not be filled.
2019-01-30 23:28:37 +01:00
Wim
94812d8648
Handle servers without MOTD (irc). Closes #692
2019-01-24 21:58:27 +01:00
Wim
8548b69e6e
Fix possible data race (irc). Closes #693
2019-01-24 21:51:52 +01:00
Wim
e3cb665d92
Make discord user token work correctly (discord) #689
2019-01-19 20:39:58 +01:00
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
2019-01-18 18:35:31 +01:00
Wim
d99eacc2e1
Run go fmt
2019-01-14 19:41:32 +01:00
Zomboy Alfrir
62e55214fc
Allow to bridge non-bot Discord users (discord) ( #689 )
...
If you prefix a token with `User ` it'll treat is as a user token.
Co-Authored-By: zomboy-alfrir <zomboy@dancodes.com.ar>
2019-01-14 19:27:49 +01:00
David Hill
f88c5f6c08
Fix displaying usernames for plain text clients. (matrix) ( #685 )
2019-01-09 23:15:26 +01:00
Patrick Connolly
b33b50987b
Add support for mattermost threading ( #627 )
2019-01-09 21:50:03 +01:00
James Nylen
5193634a52
Use only one webhook if possible (discord) ( #681 )
2019-01-09 21:28:47 +01:00
Wim
46e2683995
Add file comment to webhook messages (discord). Fixes #358
2019-01-07 22:16:00 +01:00
James Nylen
492722af8b
Improve error reporting on failure to join Discord. Fixes #672 ( #680 )
2019-01-07 21:39:53 +01:00
Wim
04567c765e
Add support for markdown to HTML conversion (matrix). Closes #663 ( #670 )
...
This uses our own gomatrix lib with the SendHTML function which
adds HTML to formatted_body in matrix.
golang-commonmark is used to convert markdown into valid HTML.
2019-01-06 22:25:19 +01:00
ValdikSS
7326b9e10d
Add various sshchat fixes ( #675 )
...
* SSH-Chat: set quiet mode to filter joins/quits
* SSH-Chat: Trim newlines in the end of relayed messages
* SSH-Chat: fix media links
* SSH-Chat: do not relay "Rate limiting is in effect" message
2019-01-05 15:42:36 +01:00
Qais Patankar
8522d8f29c
Fix #668 strip lang in code fences sent to Slack ( #673 )
2019-01-04 20:32:58 +01:00
Wim
bab385c342
Remove unused key (config)
2019-01-04 16:37:45 +01:00
Wim
c585d00f16
Ignore LatencyReport event (slack)
2019-01-02 23:55:00 +01:00
Duco van Amstel
da8e415ae1
Use logrus imports instead of log ( #662 )
2018-12-26 15:16:09 +01:00
Duco van Amstel
1b834c6858
Fix sshchat connection logic ( #661 )
2018-12-26 15:09:36 +01:00
Jerry Heiselman
d82726cd1b
Try downloading files again if slack is too slow (slack). Closes #655 ( #656 )
2018-12-19 22:01:05 +01:00
Wim
53c86702a3
Add wait option for populateUsers/Channels (slack) Fixes #579 ( #653 )
...
When setting wait to true, we wait until the populating isn't in progress anymore.
This is used on startup connections where we really need the initial information
which could take a long time on big servers.
2018-12-15 23:11:03 +01:00
David Hill
192fe89789
Populate user on channel join (slack) ( #644 )
2018-12-15 22:57:54 +01:00
Wim
959ca3cef3
Fix bot (legacy token) messages not being send. Closes #571
2018-12-13 20:49:14 +01:00
Wim
bfa9a83d31
Refactor telegram ( #649 )
...
* Decrease complexity in Send() (makes codeclimate happy)
2018-12-12 23:50:08 +01:00
Wim
2f7b4d7f68
Refactor sshchat bridge ( #650 )
...
* Decrease complexity in Send()
* Add handleUploadFile() function
2018-12-12 23:47:07 +01:00
Wim
d887855e16
Add bot debug info (slack)
2018-12-12 00:27:55 +01:00
Duco van Amstel
a2754f15fc
Enable errcheck linter ( #646 )
2018-12-08 17:04:10 +01:00
Wim
f9fb33e696
Refactor steam bridge ( #630 )
...
* split up in different files
* decrease complexity
2018-12-07 23:48:24 +01:00
Wim
f72d5de2d7
Disable some unparam checks (discord)
2018-12-07 23:48:00 +01:00
Duco van Amstel
0365c0786a
Split Discord bridge in multiple files ( #632 )
2018-12-07 23:36:01 +01:00
Duco van Amstel
8a7efce941
Move golangci-lint configuration to file ( #635 )
2018-12-05 11:34:34 +01:00
Wim
4265d43096
Refactor handleUploadFile (matrix) ( #629 )
2018-12-03 16:51:11 +01:00
Wim
27f5a1a685
Fix multiple channel join regression. Closes #639
2018-12-03 16:37:12 +01:00
Wim
859ebad55d
Make slack-legacy change less restrictive ( #626 )
2018-12-02 23:09:21 +01:00
Patrick Connolly
e538a4d304
Update nlopes/slack to 4.1-dev ( #595 )
2018-12-01 19:55:35 +01:00
Wim
f94c2b40a3
Refactor mattermost bridge ( #622 )
...
* Split up in different files
* Decrease complexity
* Fix linting issues
2018-12-01 00:49:08 +01:00
Wim
7923cfe8f8
Fix telegram crash #620
2018-11-29 23:03:50 +01:00
Wim
df02f51c56
Fix regression on using server ID (discord). #619 #617
2018-11-28 23:50:40 +01:00
Patrick Connolly
fc5e3a6728
Create getChannelsByX functions to make codeclimate happy (slack) ( #610 )
2018-11-28 11:04:26 +01:00
Wim
57fbd3c723
Refactor irc handlers. Fix linting ( #611 )
2018-11-28 10:58:56 +01:00
Wim
25cd1e2cc1
Refactor telegram handlers. Fix linting ( #609 )
...
* Refactor telegram handlers. Fix linting
2018-11-28 10:57:59 +01:00
Patrick Connolly
f5659d455d
Sync channel topics between Slack bridges ( #585 )
...
Added logic to allow for configurable synchronisation of topics and purposes of channels between Slack bridges.
2018-11-26 09:47:04 +00:00
Duco van Amstel
09875fe160
Update direct dependencies where possible
2018-11-25 21:21:04 +01:00
Wim
f716b8fc0f
Merge pull request #606 from 42wim/fix-590
2018-11-25 20:40:22 +01:00
Wim
9f66f93641
Add option to send RAW commands after connection (irc). Fixes #490 ( #604 )
2018-11-25 19:32:16 +01:00
Wim
f00d4d7d3f
Make sure threaded files stay in thread (slack). Fixes #590
2018-11-25 19:27:45 +01:00
Wim
0929535b2e
Do not post empty messages (slack). Fixes #574
2018-11-25 19:26:47 +01:00
Wim
8869e253ca
Handle deleted/edited thread starting messages (slack). Fixes #600 ( #605 )
2018-11-25 10:08:57 +00:00
Wim
f4d4dc91b1
Add option to ignore failing bridge on start. Fixes #455 ( #603 )
2018-11-25 10:35:35 +01:00
Wim
c6fd65d1d7
Limit discord username via webhook to 32 chars
2018-11-23 20:52:31 +01:00
Wim
0795906533
Rework connection logic (irc)
...
If IRC connection fails on first connect, bail out.
Wait until after nickserv auth until joining channels (also after reconnects)
Don't do a separate irc timeout, some connections take a while #503
2018-11-23 00:26:50 +01:00
Wim
a2b45bc799
Fix Nickserv logic (irc) #602
2018-11-22 22:46:38 +01:00
Wim
ae32bae791
Add protocol to msg.ID in cache ( #596 )
2018-11-19 21:28:23 +01:00
Wim
32f57b7c26
Add links to slack bot and legacy config in error message (slack)
2018-11-18 17:14:47 +01:00
Duco van Amstel
ce21ba1545
Fix golint linter issues and enable it in CI ( #593 )
2018-11-15 20:43:43 +01:00
Duco van Amstel
c89085bf44
Fix and enable goimports linter ( #591 )
2018-11-15 19:24:22 +01:00
Patrick Connolly
4254ed3c63
Fix regression in skip logic (slack). ( #592 )
2018-11-15 19:23:46 +01:00
Duco van Amstel
85564a35fd
Fix IRC line splitting. Closes #584 ( #587 )
2018-11-14 22:43:52 +01:00
Patrick Connolly
09713d40ba
Fix file caching issue (slack). #572 ( #575 )
2018-11-14 21:00:21 +01:00
Duco van Amstel
16d5aeac7c
Make config.Config more unit-test friendly ( #586 )
2018-11-13 23:30:56 +01:00
Duco van Amstel
e19ba5a06a
Add new Slack connection and forked legacy Slack bridge ( #582 )
2018-11-13 20:51:19 +01:00
Wim
f7a5077d5d
Fix goconst linter failure
2018-11-13 20:40:15 +01:00
Wim
f8dc24bc09
Switch back go upstream bwmarrin/discordgo
...
Commit ffa9956c9b
got merged in.
2018-11-13 00:02:07 +01:00
Duco van Amstel
e9419f10d3
Restore file comments coming from Slack ( #583 )
2018-11-12 15:58:00 +01:00
Wim
d2ae3ebf9e
Disable Connect(), JoinChannel(), Send() for mattermost.plugin
2018-11-11 22:44:10 +01:00
Duco van Amstel
2f042ad915
Add more rate-limit handling (slack) ( #581 )
2018-11-10 22:09:41 +01:00
Wim
78401214b0
Make scopelint happy
2018-11-08 22:29:34 +01:00
Wim
b2a07aba3a
Make goconst linter happy
2018-11-08 22:20:03 +01:00
Wim
1e0bb3da95
Make gocritic linter happier
2018-11-08 22:01:29 +01:00
Wim
59994da176
Act only on UserTypingEvents when enabled
2018-11-08 21:52:10 +01:00
Patrick Connolly
3d281b3316
Add ability to show when user is typing across Slack bridges ( #559 )
2018-11-08 20:45:40 +01:00
Duco van Amstel
ea86849a58
Fix Slack edit usernames ( #570 )
2018-11-08 20:07:21 +01:00
Wim
399789811e
Make gocritic linter happy
2018-11-08 00:46:34 +01:00
Wim
8d117cb0a4
Make structcheck linter happy
2018-11-08 00:38:33 +01:00
Wim
588b8e0303
Make interfacer linter happy
2018-11-08 00:35:30 +01:00
Wim
1794922263
Make unparam linter happy
2018-11-08 00:29:30 +01:00
Patrick Connolly
f2703979a4
Clean up config loading. ( #561 )
2018-11-07 22:32:12 +01:00
Duco van Amstel
d2a1dc792f
Refactor and clean-up handlers. (slack) ( #533 )
2018-11-07 21:35:59 +01:00
David Hill
0e2522279e
Clean up various stuff ( #508 )
...
* various cleanups
2018-11-07 20:36:50 +01:00
Duco van Amstel
a1bf37e457
Do not join Slack channel without API access (slack) ( #563 )
2018-11-07 17:25:00 +01:00
Patrick Connolly
a20b7895a9
Preserve threading between Slack instances ( #529 )
...
* Opportunistically preserve Slack threading when parent thread in cache. [#529 ]
* Removed slack-specific processing from gateway.
* Added docs.
* Add option to enable threading, with default to off.
* Did cleanup on @42wim's comments.
* Update gateway/gateway.go
Co-Authored-By: patcon <patrick.c.connolly@gmail.com>
* Suggestion from @42wim :)
* Suggestions from @42wim.
* More suggestions.
2018-11-07 09:14:31 +01:00
Patrick Connolly
5666821e7b
Add a health endpoint to API ( #554 )
2018-11-07 09:11:59 +01:00
Patrick Connolly
5132d8f097
Stop setting API ring buffer capacity if not specified. ( #552 )
2018-11-05 21:53:51 +01:00
Patrick Connolly
7e62bc4819
Remove hyphens when auto-loading envvars from viper config ( #545 )
...
* When auto-loading envvars from toml keys, remove hyphens.
See: https://unix.stackexchange.com/questions/23659/can-shell-variable-include-character
2018-11-03 14:42:27 +01:00
NikkyAI
d058be25ad
Respond with message on connect (api) ( #550 )
...
fix #549
2018-11-02 16:35:13 +01:00
Duco van Amstel
1269be1d04
Prevent Slack API rate-limit overflow ( #539 )
2018-11-01 21:28:22 +01:00
Wim
e2b50d6194
Add better support for multiperson DM (mattermost)
2018-10-27 22:02:25 +02:00
Wim
107969c09a
Split up cookie token and personal token (mattermost). Fixes #530 ( #540 )
2018-10-26 16:47:56 +02:00
Patrick Connolly
d379118772
Fix bridge no longer POSTing username and avatar (slack) ( #536 )
...
* Fixed pointer/reference issue in populateUsers. [#536 ]
* Accepted codestyle suggestion.
* Update bridge/slack/helpers.go
Co-Authored-By: patcon <patrick.c.connolly@gmail.com>
* Update helpers.go
2018-10-24 21:12:20 +02:00
Duco van Amstel
f2cdda7278
Update Blackfriday dependency ( closes #522 ) ( #532 )
...
- Fixup Telegram bridge implementation to support updated dependency.
2018-10-22 19:48:29 +02:00
Duco van Amstel
6911458d15
Clean up message send logic (slack). ( #531 )
2018-10-22 19:43:57 +02:00
Duco van Amstel
6238effdc2
Clean up user and channel information management (slack) ( #521 )
2018-10-16 20:34:09 +02:00
Duco van Amstel
498377a230
Clean up code and strengthening (slack) ( #519 )
...
Changes include:
- Refactor of strings into package-wide constants.
- Predeclaration of regexps to be instantiated at package load time.
- Checking of unchecked errors.
- Structural changes:
- Adding verifications to type-casting code.
- Remove unnecessary 'len(X) > 0' checks before iterating over X.
- Remove unnecessary 'else' clause after 'if' with 'return'.
- Unexporting of public fields of Bridge struct.
- Formatting:
- One-field-per-line struct definitions.
2018-10-13 01:02:14 +02:00
Duco van Amstel
e15b0e04b8
Refactor slack bridge prelude ( #517 )
...
Distributing the source of the Slack bridge across multiple files to
increase readability and as a prelude to various refactors and
clean-ups.
2018-10-12 23:16:34 +02:00
NikkyAI
54adb0509e
Fix mentions cuttíng off all text after the mention (discord) ( #506 )
2018-09-29 20:02:59 +02:00
Wim
bd3a3b6eaf
Let webhook also replace mentions (discord). Closes #502
2018-09-22 22:15:19 +02:00
NikkyAI
296428d53e
Fix Discord mentions by populating the nickMemberMap at connect ( #498 )
2018-09-17 21:25:06 +02:00
Jerry Heiselman
a431a4fa04
Replace @... string with user mention if match found (discord) ( #492 ). Closes #460
...
* Added check for @-mention pattern and replacing it with a user with a matching Nick on incoming messages
2018-09-12 22:30:14 +02:00
Wim
330ddb6a30
Fix panic by using matterclient calls in the right place. Related to cb7278eb
(mattermost). Closes #491
2018-08-30 23:04:50 +02:00
Wim
52dbd702ad
Get up to 1000 channels and private/mp/im channels (slack). Related to #489
2018-08-28 22:33:07 +02:00
Wim
d7c3570ba3
Check nickname on kick (irc). Closes #488
2018-08-27 21:20:41 +02:00
Wim
b51fdbce9f
Add caching to fix issue with slack API changes (slack). #481
2018-08-18 00:12:05 +02:00
Wim
351b423e15
Add a bit more debugging (irc). #482
2018-08-16 23:02:28 +02:00
Wim
7690be1647
Fix slack file/image downloads after api changes (slack)
2018-08-10 00:39:07 +02:00
Wim
7f3cbcedc0
Use own forks for logrus-prefixed-formatter and discordgo
2018-08-06 21:11:13 +02:00
Wim
d71850cef6
Use UserID to look for avatar instead of username (slack). Closes #472
2018-08-06 16:44:15 +02:00
Wim
2597c9bfac
Clip too long messages sent to discord (discord). Closes #440
2018-07-22 00:28:17 +02:00
Wim
93307b57aa
Skip empty messages being sent with the webhook (discord). #469
2018-07-21 23:19:11 +02:00
Wim
618953c865
Remove ununsed function (slack)
2018-07-13 23:28:23 +02:00
Wim
e04dd78624
Add support for slack channels by ID. Closes #436
2018-07-13 23:23:11 +02:00
Wim
fa0c4025f7
Fix avatar uploads to work with MediaDownloadPath. Closes #454
2018-07-11 23:44:29 +02:00
John
2d2d185200
Stop numbers being stripped after non-color control codes (irc) ( #465 )
...
Currently numbers are stripped not just after the color control code (\x03) but also after other formatting such as bold (\x02) and italic (\x1D), which is both unnecessary and leads to missing text from irc. This fixes that by only stripping numbers after the color control code.
2018-07-11 22:50:49 +02:00
Wim
cb7278eb50
Use nickname instead of username if defined (mattermost). Closes #452
2018-07-03 22:41:09 +02:00
Wim
ed062e0ce5
Add a space before url in file uploads (discord). Closes #461
2018-06-29 22:35:29 +02:00
Wim
a69ef8402b
Fix previous commit
2018-06-28 21:19:02 +02:00
Wim
8779f67d2d
Allow join-leave and topic changes to webhook (discord)
2018-06-28 21:14:31 +02:00
Wim
e4b72136b8
Fix possible panic. #448
2018-06-19 22:53:45 +02:00
Wim
221a63d980
Fix build (telegram)
2018-06-18 23:49:28 +02:00
Wim
d02eda147c
Add support for MessageFormat=htmlnick (telegram). #444
2018-06-18 23:38:52 +02:00
Bruno Bierbaumer
6628a47f23
Add channel password support for XMPP ( #451 )
2018-06-18 22:55:45 +02:00
Wim
d2c02be3a0
Handle slack attachments sent to mattermost. Closes #447
2018-06-16 00:11:15 +02:00
Maxim
594492fbdd
Add Title from attachment slack message ( #446 )
2018-06-13 21:58:51 +02:00
Wim
bd9ea7a88d
Add MediaDownloadBlacklist option. Closes #442
2018-06-09 14:35:02 +02:00
Liam Stanley
51327a4056
Reconnect on quit. (irc) See #431 ( #445 )
...
* potential fixes for #431
* go: fix formatting/gofmt/goreturns
2018-06-09 12:47:40 +02:00
Remi Reuvekamp
33bd60528b
Add config option MediaDownloadPath ( #443 )
...
* Add config option MediaUploadPath
MediaDownloadPath can be used instead of MediaServerUpload, for when your
webserver is on the same system as matterbridge and matterbridge has
write access to the serve dir.
* Limit length of hash in MediaServer urls to 8chars
Full SHA256 is unnecessary for uniqueness.
Also; if a file has the same first 8 charachters of the SHA256 hash,
it's still not a problem, as long as the filename is not the same.
2018-06-08 22:30:35 +02:00
Wim
e307069d62
Ignore messages from ourself. (sshchat) Closes #439
2018-06-06 00:51:42 +02:00
ValdikSS
91db63294c
Add message correction support for XMPP ( #437 )
...
It works worse than it could be, since message correction in XMPP
works differently compared to other messengers. XMPP replaces old
message with old ID with new message with new ID. Matterbridge
remembers only old ID, that's why you can edit a message from
XMPP to the gateway only once.
Edited messages from other networks to XMPP are handled correctly
though.
2018-05-29 23:29:51 +02:00
Yuval Langer
6576409d60
Prevent white or black color codes (irc) ( #434 )
2018-05-29 22:52:01 +02:00
Patrick Connolly
045cb2058c
Fix regexp in replaceMention (slack). ( #435 )
2018-05-29 22:49:10 +02:00
Wim
07885f5810
Fix iconurl regression (mattermost,slack,rocketchat). Closes #430
2018-05-27 22:30:17 +02:00
Wim
696c518550
Add error message about webhook (slack)
2018-05-27 22:14:31 +02:00
Wim
411ef2691c
Use uuid instead of userid. Fixes #429
2018-05-27 21:50:00 +02:00
OyyoDams
f6eefa4ecc
Fix issue #432 - Avatar spoofing from Slack to Discord with uppercase in nick doesn't work ( #433 )
2018-05-26 13:25:26 +02:00
Kazuhiro NISHIYAMA
f1db166ac4
Fix format string bug (irc) ( #428 )
2018-05-18 21:45:39 +02:00
Yuval Langer
887c2bc56d
End IRC username formatting with a total formatting reset (irc) ( #425 )
...
* Add zero padding to the color code
* Change color ending into total formatting reset
2018-05-18 21:33:37 +02:00
Yuval Langer
f0738a93c3
[WIP] Colorize username sent to IRC using its crc32 IEEE checksum ( #423 )
...
* Colorize username sent to IRC using its crc32 IEEE checksum
* Add `ColorNicks` configuration variable
* Add `ColorNicks` setting
2018-05-11 23:02:43 +02:00
Wim
75381c2c6e
Add support for CJK to/from utf-8 (irc). #400
2018-05-11 21:55:53 +02:00
Wim
406a54b597
Add QuoteFormat option (telegram). Closes #413
2018-05-11 20:59:15 +02:00
ValdikSS
be04d1a862
Send attached files to XMPP in different message with OOB data and without body ( #421 )
...
Conversations can't show inline pictures if there's anything besides URL in the message body.
Workaround this issue by sending one usual message and one message with OOB data and without message body.
The second message should not be shown in the clients without OOB support, so the user won't see the empty message.
2018-05-09 23:04:10 +02:00
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