diff --git a/bridge/gitter/gitter.go b/bridge/gitter/gitter.go index d8f1aa3d..64b6344f 100644 --- a/bridge/gitter/gitter.go +++ b/bridge/gitter/gitter.go @@ -125,6 +125,23 @@ func (b *Bgitter) Send(msg config.Message) (string, error) { } return "", nil } + + 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 + } + _, err := b.c.SendMessage(roomID, msg.Username+msg.Text) + if err != nil { + return "", err + } + } + return "", nil + } + } + resp, err := b.c.SendMessage(roomID, msg.Username+msg.Text) if err != nil { return "", err diff --git a/bridge/irc/irc.go b/bridge/irc/irc.go index f1ed5bd8..2d56bbc6 100644 --- a/bridge/irc/irc.go +++ b/bridge/irc/irc.go @@ -184,13 +184,11 @@ func (b *Birc) Send(msg config.Message) (string, error) { 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} } + b.Local <- config.Message{Text: msg.Text, Username: msg.Username, Channel: msg.Channel, Event: msg.Event} } + return "", nil } - return "", nil } for _, text := range strings.Split(msg.Text, "\n") { diff --git a/bridge/xmpp/xmpp.go b/bridge/xmpp/xmpp.go index 6999e801..b5429b1f 100644 --- a/bridge/xmpp/xmpp.go +++ b/bridge/xmpp/xmpp.go @@ -85,6 +85,19 @@ func (b *Bxmpp) Send(msg config.Message) (string, error) { return "", nil } flog.Debugf("Receiving %#v", msg) + 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.xc.Send(xmpp.Chat{Type: "groupchat", Remote: msg.Channel + "@" + b.Config.Muc, Text: msg.Username + msg.Text}) + } + return "", nil + } + } + b.xc.Send(xmpp.Chat{Type: "groupchat", Remote: msg.Channel + "@" + b.Config.Muc, Text: msg.Username + msg.Text}) return "", nil }