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

@ -14,7 +14,7 @@ type Config struct {
StoragePath string `json:"storage_path,omitempty"`
MaxIdsPerUser int `json:"max_ids_per_user,omitempty"`
MsgDbRollingPeriod int `json:"msg_db_rolling_period,omitempty"`
Chunksize int `json:"chunksize,omitempty"`
Chunksize int64 `json:"chunksize,omitempty"`
ServerPollInterval int `json:"server_poll_interval,omitempty"`
// GUI
LastOpenChat string `json:"last_open_chat,omitempty"`

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
}