This repository has been archived on 2020-09-27. You can view files and clone it, but cannot push or open issues or pull requests.
thrempp/component/threema/file.go

30 lines
725 B
Go

package threema
import (
"fmt"
"io/ioutil"
"strconv"
"gosrc.io/xmpp"
)
func (a *Account) FileToXMPP(from string, msgID uint64, ext string, data []byte) (xmpp.Message, error) {
msgIDStr := strconv.FormatUint(msgID, 10)
msg := xmpp.Message{
PacketAttrs: xmpp.PacketAttrs{
Id: msgIDStr,
From: from,
To: a.XMPP.String(),
},
}
url := fmt.Sprintf("%s/%d.%s", a.threema.httpUploadURL, msgID, ext)
path := fmt.Sprintf("%s/%d.%s", a.threema.httpUploadPath, msgID, ext)
if err := ioutil.WriteFile(path, data, 0644); err != nil {
msg.Body = "unable to save file on transport to forward"
return msg, err
}
msg.Body = url
msg.Extensions = append(msg.Extensions, xmpp.OOB{URL: url})
return msg, nil
}