Skip to content

Commit

Permalink
Add support for receiving attachments (keybase) (42wim#923)
Browse files Browse the repository at this point in the history
  • Loading branch information
goncalor authored and zeridon committed Feb 12, 2020
1 parent 3d36dbb commit 4b3c6a5
Showing 1 changed file with 27 additions and 4 deletions.
31 changes: 27 additions & 4 deletions bridge/keybase/keybase.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package bkeybase

import (
"io/ioutil"
"os"
"path/filepath"
"strconv"

"github.com/42wim/matterbridge/bridge"
Expand Down Expand Up @@ -66,17 +69,37 @@ func (b *Bkeybase) Send(msg config.Message) (string, error) {
// Delete message if we have an ID
// Delete message not supported by keybase go library yet

// Upload a file if it exists
// kbchat lib does not support attachments yet

// Edit message if we have an ID
// kbchat lib does not support message editing yet

if len(msg.Extra["file"]) > 0 {
// Upload a file
dir, err := ioutil.TempDir("", "matterbridge")
if err != nil {
return "", err
}
defer os.RemoveAll(dir)

for _, f := range msg.Extra["file"] {
fname := f.(config.FileInfo).Name
fdata := *f.(config.FileInfo).Data
fcaption := f.(config.FileInfo).Comment
fpath := filepath.Join(dir, fname)

if err = ioutil.WriteFile(fpath, fdata, 0600); err != nil {
return "", err
}

_, _ = b.kbc.SendAttachmentByTeam(b.team, fpath, fcaption, &b.channel)
}

return "", nil
}

// Send regular message
resp, err := b.kbc.SendMessageByTeamName(b.team, msg.Username+msg.Text, &b.channel)
if err != nil {
return "", err
}

return strconv.Itoa(resp.Result.MsgID), err
}

0 comments on commit 4b3c6a5

Please sign in to comment.