|
|
|
@ -13,6 +13,7 @@ import ( |
|
|
|
"github.com/aldinokemal/go-whatsapp-web-multidevice/validations" |
|
|
|
fiberUtils "github.com/gofiber/fiber/v2/utils" |
|
|
|
"github.com/h2non/bimg" |
|
|
|
"github.com/sirupsen/logrus" |
|
|
|
"github.com/valyala/fasthttp" |
|
|
|
"go.mau.fi/whatsmeow" |
|
|
|
waProto "go.mau.fi/whatsmeow/binary/proto" |
|
|
|
@ -108,6 +109,9 @@ func (service serviceSend) SendImage(ctx context.Context, request domainSend.Ima |
|
|
|
|
|
|
|
// Generate thumbnail with smalled image
|
|
|
|
openThumbnailBuffer, err := bimg.Read(oriImagePath) |
|
|
|
if err != nil { |
|
|
|
return response, pkgError.InternalServerError(fmt.Sprintf("failed to read image %v", err)) |
|
|
|
} |
|
|
|
imageThumbnail = fmt.Sprintf("%s/thumbnails-%s", config.PathSendItems, request.Image.Filename) |
|
|
|
thumbnailImage, err := bimg.NewImage(openThumbnailBuffer).Process(bimg.Options{Quality: 90, Width: 100, Embed: true}) |
|
|
|
if err != nil { |
|
|
|
@ -122,6 +126,9 @@ func (service serviceSend) SendImage(ctx context.Context, request domainSend.Ima |
|
|
|
if request.Compress { |
|
|
|
// Resize image
|
|
|
|
openImageBuffer, err := bimg.Read(oriImagePath) |
|
|
|
if err != nil { |
|
|
|
return response, pkgError.InternalServerError(fmt.Sprintf("failed to read image %v", err)) |
|
|
|
} |
|
|
|
newImage, err := bimg.NewImage(openImageBuffer).Process(bimg.Options{Quality: 90, Width: 600, Embed: true}) |
|
|
|
if err != nil { |
|
|
|
return response, err |
|
|
|
@ -146,10 +153,13 @@ func (service serviceSend) SendImage(ctx context.Context, request domainSend.Ima |
|
|
|
} |
|
|
|
uploadedImage, err := service.WaCli.Upload(context.Background(), dataWaImage, whatsmeow.MediaImage) |
|
|
|
if err != nil { |
|
|
|
fmt.Printf("Failed to upload file: %v", err) |
|
|
|
fmt.Printf("failed to upload file: %v", err) |
|
|
|
return response, err |
|
|
|
} |
|
|
|
dataWaThumbnail, err := os.ReadFile(imageThumbnail) |
|
|
|
if err != nil { |
|
|
|
return response, pkgError.InternalServerError(fmt.Sprintf("failed to read thumbnail %v", err)) |
|
|
|
} |
|
|
|
|
|
|
|
msg := &waProto.Message{ImageMessage: &waProto.ImageMessage{ |
|
|
|
JpegThumbnail: dataWaThumbnail, |
|
|
|
@ -258,6 +268,9 @@ func (service serviceSend) SendVideo(ctx context.Context, request domainSend.Vid |
|
|
|
|
|
|
|
// Resize Thumbnail
|
|
|
|
openImageBuffer, err := bimg.Read(thumbnailVideoPath) |
|
|
|
if err != nil { |
|
|
|
return response, pkgError.InternalServerError(fmt.Sprintf("failed to read thumbnail %v", err)) |
|
|
|
} |
|
|
|
resize, err := bimg.NewImage(openImageBuffer).Process(bimg.Options{Quality: 90, Width: 600, Embed: true}) |
|
|
|
if err != nil { |
|
|
|
return response, pkgError.InternalServerError(fmt.Sprintf("failed to resize thumbnail %v", err)) |
|
|
|
@ -321,7 +334,7 @@ func (service serviceSend) SendVideo(ctx context.Context, request domainSend.Vid |
|
|
|
go func() { |
|
|
|
errDelete := utils.RemoveFile(1, deletedItems...) |
|
|
|
if errDelete != nil { |
|
|
|
fmt.Println(errDelete) |
|
|
|
logrus.Infof("error when deleting picture: %v", errDelete) |
|
|
|
} |
|
|
|
}() |
|
|
|
if err != nil { |
|
|
|
|