Thumbnail

rani/matterbridge.git

Clone URL: https://git.buni.party/rani/matterbridge.git

commit f880badda8c179d64e8d98524d9c0cae16baa039 Author: Gary Kim <gary@garykim.dev> Date: Thu May 27 15:44:54 2021 +0000 Support sending file URLs (nctalk) (#1489) * nctalk: support sending file URLs Signed-off-by: Gary Kim <gary@garykim.dev> * nctalk: reduce nesting Co-authored-by: Wim <wim@42.be> Signed-off-by: Gary Kim <gary@garykim.dev> Co-authored-by: Wim <wim@42.be> diff --git a/bridge/nctalk/nctalk.go b/bridge/nctalk/nctalk.go index 2f12e4e..4537989 100644 --- a/bridge/nctalk/nctalk.go +++ b/bridge/nctalk/nctalk.go @@ -1359 +13519 @@ func (b *Btalk) Send(msg config.Message) (string, error) {   if msg.Event != "" {   return "", nil   } + + // Handle sending files if they are included + err := b.handleSendingFile(&msg, r) + if err != nil { + b.Log.Errorf("Could not send files in message to room %v from %v: %v", msg.Channel, msg.Username, err) + + return "", nil + } +   sentMessage, err := r.room.SendMessage(msg.Username + msg.Text)   if err != nil {   b.Log.Errorf("Could not send message to room %v from %v: %v", msg.Channel, msg.Username, err) +   return "", nil   }   return strconv.Itoa(sentMessage.ID), nil @@ -1776 +18727 @@ func (b *Btalk) handleFiles(mmsg *config.Message, message *ocs.TalkRoomMessageDa   return nil  }   +func (b *Btalk) handleSendingFile(msg *config.Message, r *Broom) error { + for _, f := range msg.Extra["file"] { + fi := f.(config.FileInfo) + if fi.URL == "" { + continue + } + + message := msg.Username + if fi.Comment != "" { + message += fi.Comment + " " + } + message += fi.URL + _, err := r.room.SendMessage(message) + if err != nil { + return err + } + } + + return nil +} +  // Spec: https://github.com/nextcloud/server/issues/1706#issue-182308785  func formatRichObjectString(message string, parameters map[string]ocs.RichObjectString) string {   for id, parameter := range parameters {