sendfile simple small files usermessage implementation

This commit is contained in:
ycc
2022-12-18 21:52:03 +01:00
parent a2d4106d51
commit bf901a7aa3
2 changed files with 39 additions and 2 deletions

View File

@ -1,5 +1,42 @@
package meowlib
func (*UserMessage) addFile(filename string) {
import (
"errors"
"os"
"github.com/google/uuid"
)
func (msg *UserMessage) AddFile(filename string, maxMessageSize int64) error {
fi, err := os.Stat(filename)
if err != nil {
return err
}
if fi.Size() > maxMessageSize {
return errors.New("Cannot add file, file bigger than messge size")
}
var totalsize int64
totalsize = 0
for _, f := range msg.Files {
totalsize += int64(f.Size)
}
totalsize += fi.Size()
if totalsize > maxMessageSize {
return errors.New("Cannot add file, too many files, max message size exceeded")
}
data, err := os.ReadFile(filename)
if err != nil {
return err
}
var file File
file.Filename = filename
file.Size = uint64(fi.Size())
file.Data = data
msg.Files = append(msg.Files, &file)
msg.Status = &UserMessage_ConversationStatus{}
msg.Status.LocalUuid = uuid.New().String()
return nil
}