summaryrefslogtreecommitdiffstats
path: root/gateway/gateway.go
Commit message (Collapse)AuthorAgeFilesLines
* Add scripting (tengo) support for every incoming message (#731)Wim2019-02-231-0/+31
| | | | | | | | | | | | | | | | | | | | | | 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
* Support rewriting messages from relaybots using ExtractNicks. Fixes #466 (#730)Wim2019-02-231-0/+2
| | | | | | | | | | 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+" ] ]
* Fix typoWim2019-02-211-1/+1
|
* Handle quit message relay better on gateways with one channel on the irc ↵Wim2019-02-211-0/+5
| | | | bridge #722
* Fix bug in #721Wim2019-02-171-2/+2
|
* Support quits from irc correctly. Fixes #722 (#724)Wim2019-02-171-1/+17
|
* Support join/leaves from discord. Closes #654 (#721)Wim2019-02-171-0/+12
|
* Allow regexs in ignoreNicks. Closes #690 (#720)Wim2019-02-171-33/+21
|
* Hint at thread replies when messages are unthreaded (slack) (#684)Wim2019-02-101-0/+6
|
* Fail if channel starts with hashtag (mattermost). Closes #625Wim2019-01-071-0/+5
|
* Use logrus imports instead of log (#662)Duco van Amstel2018-12-261-5/+5
|
* Refactor gateway (#648)Wim2018-12-121-205/+98
| | | | | | | * 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
* Enable gosec linter (#645)Duco van Amstel2018-12-061-2/+2
|
* Tidy up fetching of config values. (#616)Patrick Connolly2018-12-011-12/+6
|
* Extract bridgeMap into own package to improve testability (#601)Patrick Connolly2018-11-301-31/+1
|
* Sync channel topics between Slack bridges (#585)Patrick Connolly2018-11-261-2/+4
| | | Added logic to allow for configurable synchronisation of topics and purposes of channels between Slack bridges.
* Add protocol to msg.ID in cache (#596)Wim2018-11-191-10/+10
|
* Fix golint linter issues and enable it in CI (#593)Duco van Amstel2018-11-151-22/+22
|
* Make config.Config more unit-test friendly (#586)Duco van Amstel2018-11-131-11/+14
|
* Add new Slack connection and forked legacy Slack bridge (#582)Duco van Amstel2018-11-131-21/+20
|
* Add support for mattermost matterbridge pluginWim2018-11-111-0/+6
|
* Make gochecknoinits linter happyWim2018-11-081-4/+1
|
* Make scopelint happyWim2018-11-081-0/+1
|
* Make goconst linter happyWim2018-11-081-4/+8
|
* Add ability to show when user is typing across Slack bridges (#559)Patrick Connolly2018-11-081-1/+8
|
* Make gocritic linter happyWim2018-11-081-1/+1
|
* Make unparam linter happyWim2018-11-081-2/+2
|
* Clean up various stuff (#508)David Hill2018-11-071-2/+2
| | | * various cleanups
* Preserve threading between Slack instances (#529)Patrick Connolly2018-11-071-11/+51
| | | | | | | | | | | | | | | | | | | | | | * 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.
* Allow origin CHANNEL to be used in RemoteNickFormat (#515)Patrick Connolly2018-10-231-0/+1
| | | | | | | | * Added origin CHANNEL to RemoteNickFormat. Updated config docs. [Fixes #515] * Update matterbridge.toml.sample Co-Authored-By: patcon <patrick.c.connolly@gmail.com>
* Add Gateway's name to RemoteNickFormat (#501)Duco van Amstel2018-10-071-0/+1
| | | | | In order to support extra use cases we should add the `{GATEWAY}` tag to the `RemoteNickFormat` string which would be replaced by the value of the `name=` field from a gateway's configuration. This is _very_ useful when you are forwarding, for example, multiple channels from one chat to a single channel on another one (one-way). It will help you identify the source channel of a message on the target chat.
* Reconnect on quit. (irc) See #431 (#445)Liam Stanley2018-06-091-12/+12
| | | | | * potential fixes for #431 * go: fix formatting/gofmt/goreturns
* Add config option MediaDownloadPath (#443)Remi Reuvekamp2018-06-081-28/+69
| | | | | | | | | | | | | | * 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.
* Add initial zulip supportWim2018-05-071-0/+2
|
* Use only alphanumeric for file uploads to mediaserver. Closes #416Wim2018-05-061-0/+6
|
* Fix crash on invalid filenamesWim2018-05-061-2/+6
|
* Fix regression on empty text with files attachedWim2018-03-061-1/+1
|
* Get the correct config values (gateway)Wim2018-03-061-3/+3
|
* Fix panic on empty config. Closes #386Wim2018-03-051-0/+1
|
* Fix tests and make megacheck happyWim2018-03-051-9/+0
|
* Use viper (github.com/spf13/viper) for configurationWim2018-03-041-25/+19
|
* Improve debug messagesWim2018-02-281-1/+2
|
* Do some small cleanupsWim2018-02-271-19/+25
|
* Add environment override backWim2018-02-271-0/+2
|
* Refactor using factoryWim2018-02-271-1/+47
|
* Allow empty messages with file urls (irc)Wim2018-02-251-1/+2
|
* Use prefixed-formatter for better loggingWim2018-02-211-13/+19
|
* Move Sirupsen => sirupsenWim2018-02-201-1/+1
|
* Add label support in RemoteNickFormatWim2018-02-201-0/+1
|
* Download (and upload) avatar images from mattermost and telegram when ↵Wim2018-02-201-5/+23
| | | | | | | | | | | | | | 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.