Skip to content

Commit

Permalink
Improve image parent field
Browse files Browse the repository at this point in the history
  • Loading branch information
hsluoyz committed Mar 8, 2024
1 parent e5723ea commit 0b8e230
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 15 deletions.
11 changes: 7 additions & 4 deletions object/message.go
Original file line number Diff line number Diff line change
Expand Up @@ -165,14 +165,16 @@ func RefineMessageImages(message *Message, origin string) error {
}

for _, match := range matches {
_, content, err := parseBase64Image(match)
var content []byte
content, err = parseBase64Image(match)
if err != nil {
return err
}

filename := fmt.Sprintf(`%s\%s\%s\%s`, message.Organization, message.User, message.Chat, message.FileName)
filePath := fmt.Sprintf(`%s\%s\%s\%s`, message.Organization, message.User, message.Chat, message.FileName)

fileUrl, err := obj.PutObject(message.User, "Casibase-Image", filename, bytes.NewBuffer(content))
var fileUrl string
fileUrl, err = obj.PutObject(message.User, message.Chat, filePath, bytes.NewBuffer(content))
if err != nil {
return err
}
Expand All @@ -182,7 +184,8 @@ func RefineMessageImages(message *Message, origin string) error {
fileUrl = tokens[0]
}

httpUrl, err := getUrlFromPath(fileUrl, origin)
var httpUrl string
httpUrl, err = getUrlFromPath(fileUrl, origin)
if err != nil {
return err
}
Expand Down
16 changes: 5 additions & 11 deletions object/message_image.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,27 +39,21 @@ func getExtFromMimeType(mimeType string) (string, error) {
return res, nil
}

func parseBase64Image(data string) (string, []byte, error) {
func parseBase64Image(data string) ([]byte, error) {
parts := strings.SplitN(data, ";", 2)
if len(parts) < 2 {
return "", nil, fmt.Errorf("parseBase64Image() error: invalid image format")
}

mimeType := parts[0][5:]
ext, err := getExtFromMimeType(mimeType)
if err != nil {
return "", nil, err
return nil, fmt.Errorf("parseBase64Image() error: invalid image format")
}

b64Parts := strings.SplitN(parts[1], ",", 2)
if len(b64Parts) < 2 {
return "", nil, fmt.Errorf("parseBase64Image() error: invalid image format")
return nil, fmt.Errorf("parseBase64Image() error: invalid image format")
}

imageContent, err := base64.StdEncoding.DecodeString(b64Parts[1])
if err != nil {
return "", nil, err
return nil, err
}

return ext, imageContent, nil
return imageContent, nil
}

0 comments on commit 0b8e230

Please sign in to comment.