@@ -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