sendfile simple small files usermessage implementation
This commit is contained in:
parent
a2d4106d51
commit
bf901a7aa3
@ -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"`
|
||||
|
39
message.go
39
message.go
@ -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
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user