diff options
author | Wim <wim@42.be> | 2017-11-24 22:36:19 +0100 |
---|---|---|
committer | Wim <wim@42.be> | 2017-11-24 22:36:19 +0100 |
commit | 1efe40add50a76b7a0ad95187f6034cc75845d16 (patch) | |
tree | 4a60722020653386e62a591ebc6b05d25622a865 /bridge | |
parent | cbd73ee313df8d4e590835e451200e7bff24473f (diff) | |
download | matterbridge-msglm-1efe40add50a76b7a0ad95187f6034cc75845d16.tar.gz matterbridge-msglm-1efe40add50a76b7a0ad95187f6034cc75845d16.tar.bz2 matterbridge-msglm-1efe40add50a76b7a0ad95187f6034cc75845d16.zip |
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
Diffstat (limited to 'bridge')
-rw-r--r-- | bridge/config/config.go | 25 | ||||
-rw-r--r-- | bridge/irc/irc.go | 15 |
2 files changed, 29 insertions, 11 deletions
diff --git a/bridge/config/config.go b/bridge/config/config.go index afb9f1a0..8a13b488 100644 --- a/bridge/config/config.go +++ b/bridge/config/config.go @@ -36,6 +36,7 @@ type FileInfo struct { Name string Data *[]byte Comment string + URL string } type ChannelInfo struct { @@ -48,17 +49,19 @@ type ChannelInfo struct { } type Protocol struct { - AuthCode string // steam - BindAddress string // mattermost, slack // DEPRECATED - Buffer int // api - Charset string // irc - EditSuffix string // mattermost, slack, discord, telegram, gitter - EditDisable bool // mattermost, slack, discord, telegram, gitter - IconURL string // mattermost, slack - IgnoreNicks string // all protocols - IgnoreMessages string // all protocols - Jid string // xmpp - Login string // mattermost, matrix + AuthCode string // steam + BindAddress string // mattermost, slack // DEPRECATED + Buffer int // api + Charset string // irc + EditSuffix string // mattermost, slack, discord, telegram, gitter + EditDisable bool // mattermost, slack, discord, telegram, gitter + IconURL string // mattermost, slack + IgnoreNicks string // all protocols + IgnoreMessages string // all protocols + Jid string // xmpp + Login string // mattermost, matrix + MediaServerDownload string + MediaServerUpload string MessageQueue int // IRC, size of message queue for flood control MessageDelay int // IRC, time in millisecond to wait between messages MessageLength int // IRC, max length of a message allowed diff --git a/bridge/irc/irc.go b/bridge/irc/irc.go index 78981f08..f1ed5bd8 100644 --- a/bridge/irc/irc.go +++ b/bridge/irc/irc.go @@ -178,6 +178,21 @@ func (b *Birc) Send(msg config.Message) (string, error) { msg.Text = buf.String() } + if msg.Extra != nil { + if len(msg.Extra["file"]) > 0 { + for _, f := range msg.Extra["file"] { + fi := f.(config.FileInfo) + if fi.URL != "" { + msg.Text = fi.URL + b.Local <- config.Message{Text: msg.Text, Username: msg.Username, Channel: msg.Channel, Event: msg.Event} + } else { + b.Local <- config.Message{Text: msg.Text, Username: msg.Username, Channel: msg.Channel, Event: msg.Event} + } + } + } + return "", nil + } + for _, text := range strings.Split(msg.Text, "\n") { if len(text) > b.Config.MessageLength { text = text[:b.Config.MessageLength] + " <message clipped>" |