Commit Graph

1078 Commits

Author SHA1 Message Date
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 aba9e4f3be Fix travis before_deploy 2019-04-04 23:22:56 +02:00
Wim 4d575ba13a Fix travis deploy condition and update to golangci-lint v1.16 2019-04-04 23:05:58 +02:00
Duco van Amstel 7f0e4ad448 Add CI fixes and improvements (#780)
* Update GolangCI-lint and lint config

The `algo` parameter for the `unparam` linter has been removed and we
should thus no longer specify it. Also, bumping the GolangCI-lint
version to the latest available minor release.

See: mvdan/unparam@e6a6d1c51b

* Fix and improve bintray CI script

* Further CI setup improvements

* Split-out CI steps into stand-alone scripts
2019-04-04 22:54:51 +02:00
Wim 17cc14a9d2 Send user_added and removed event through message channel (mattermost) 2019-04-02 00:15:58 +02:00
Wim 1f8016182c Return channelId for other channeltypes too (mattermost) 2019-04-01 22:50:19 +02:00
Wim caf9ef2c4b Bump travis to go 1.12.x 2019-03-27 23:22:55 +01: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 cc05ba8907 Thank DigitalOcean (https://digitalocean.com) for another year of sponsorship 2019-03-25 21:13:11 +01:00
Wim 16763b715a
Look up #channel too (rocketchat). Fix #773 (#775) 2019-03-24 20:15:15 +01:00
Wim ffaa598796 Bump version 2019-03-24 19:52:31 +01:00
Wim 858e16d34f Release v1.14.1 2019-03-21 21:07:11 +01:00
Wim a60e62efb1 Update doc wrt rocketchat api issue 2019-03-21 21:05:27 +01:00
David Hill 97f9d4be67 Fix double unlock (slack) (#771) 2019-03-21 17:30:28 +01:00
Wim fa4eec41f7 Release v1.14.0 2019-03-20 23:30:03 +01:00
Wim 77516c97db
Allow the # in rocketchat channels (backward compatible) (#769) 2019-03-20 23:19:27 +01:00
Wim cba01f0865 Update rocketchat documentation 2019-03-20 23:18:40 +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
Duco van Amstel eabf2a4582 Check module files in CI run (#761) 2019-03-12 22:47:18 +01:00
Wim 325d62b41c Update vendor d5/tengo 2019-03-05 23:10:45 +01:00
Wim e955a056e2
Trim <p> and </p> tags (matrix). Closes #686 (#753) 2019-03-03 00:29:29 +01:00
Wim 723f8c5fd5 Only build travis on master branch 2019-03-03 00:24:49 +01:00
Wim a16137f53f Bump version 2019-03-02 23:48:46 +01:00
Wim d60b8b97f9 Add related projects to README 2019-03-02 23:48:30 +01:00
Wim 7b0bc51183 Release v1.14.0-rc2 2019-03-02 23:23:43 +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 120bf39f55
Handle file upload/download only once for each message (#742) 2019-02-27 20:52:05 +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 d44d2a5f00 Build on all branches 2019-02-26 20:47:30 +01:00
Wim 7f1d86b338
Fail gracefully on incorrect human input. Fixes #739 (#740) 2019-02-26 18:03:50 +01:00
Wim d8816280f0 Update changelog 2019-02-26 17:44:35 +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 f92735d35d Add goreleaser.yml 2019-02-24 01:09:53 +01:00
Wim 516fd3c92d Release v1.14.0-rc1 2019-02-23 23:20:25 +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 3190703dc8
Support rewriting messages from relaybots using ExtractNicks. Fixes #466 (#730)
some examples:
this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
you can use multiple entries for multiplebots
this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
OPTIONAL (default empty)
ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
2019-02-23 16:35:54 +01:00
Wim 5095db8a43 Update vendor 2019-02-23 14:14:29 +01:00