summaryrefslogtreecommitdiffstats
path: root/bridge
diff options
context:
space:
mode:
authorWim <wim@42.be>2017-11-24 22:36:19 +0100
committerWim <wim@42.be>2017-11-24 22:36:19 +0100
commit1efe40add50a76b7a0ad95187f6034cc75845d16 (patch)
tree4a60722020653386e62a591ebc6b05d25622a865 /bridge
parentcbd73ee313df8d4e590835e451200e7bff24473f (diff)
downloadmatterbridge-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.go25
-rw-r--r--bridge/irc/irc.go15
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>"