Skip to content

Commit 78f7618

Browse files
Merge pull request #1884 from nestordavalos/feat/whatsapp/convert-to-jpeg
Feat/whatsapp/convert-to-jpeg
2 parents 33a9229 + 57b19d8 commit 78f7618

File tree

1 file changed

+36
-2
lines changed

1 file changed

+36
-2
lines changed

src/api/integrations/channel/whatsapp/whatsapp.baileys.service.ts

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2448,9 +2448,43 @@ export class BaileysStartupService extends ChannelStartupService {
24482448
try {
24492449
const type = mediaMessage.mediatype === 'ptv' ? 'video' : mediaMessage.mediatype;
24502450

2451+
let mediaInput: any;
2452+
if (mediaMessage.mediatype === 'image') {
2453+
let imageBuffer: Buffer;
2454+
if (isURL(mediaMessage.media)) {
2455+
let config: any = { responseType: 'arraybuffer' };
2456+
2457+
if (this.localProxy?.enabled) {
2458+
config = {
2459+
...config,
2460+
httpsAgent: makeProxyAgent({
2461+
host: this.localProxy.host,
2462+
port: this.localProxy.port,
2463+
protocol: this.localProxy.protocol,
2464+
username: this.localProxy.username,
2465+
password: this.localProxy.password,
2466+
}),
2467+
};
2468+
}
2469+
2470+
const response = await axios.get(mediaMessage.media, config);
2471+
imageBuffer = Buffer.from(response.data, 'binary');
2472+
} else {
2473+
imageBuffer = Buffer.from(mediaMessage.media, 'base64');
2474+
}
2475+
2476+
mediaInput = await sharp(imageBuffer).jpeg().toBuffer();
2477+
mediaMessage.fileName ??= 'image.jpg';
2478+
mediaMessage.mimetype = 'image/jpeg';
2479+
} else {
2480+
mediaInput = isURL(mediaMessage.media)
2481+
? { url: mediaMessage.media }
2482+
: Buffer.from(mediaMessage.media, 'base64');
2483+
}
2484+
24512485
const prepareMedia = await prepareWAMessageMedia(
24522486
{
2453-
[type]: isURL(mediaMessage.media) ? { url: mediaMessage.media } : Buffer.from(mediaMessage.media, 'base64'),
2487+
[type]: mediaInput,
24542488
} as any,
24552489
{ upload: this.client.waUploadToServer },
24562490
);
@@ -2464,7 +2498,7 @@ export class BaileysStartupService extends ChannelStartupService {
24642498
}
24652499

24662500
if (mediaMessage.mediatype === 'image' && !mediaMessage.fileName) {
2467-
mediaMessage.fileName = 'image.png';
2501+
mediaMessage.fileName = 'image.jpg';
24682502
}
24692503

24702504
if (mediaMessage.mediatype === 'video' && !mediaMessage.fileName) {

0 commit comments

Comments
 (0)