@@ -2,6 +2,7 @@ import ChatwootClient from '@figuro/chatwoot-sdk';
22import axios from 'axios' ;
33import FormData from 'form-data' ;
44import { createReadStream , readFileSync , unlinkSync , writeFileSync } from 'fs' ;
5+ import Jimp from 'jimp' ;
56import mimeTypes from 'mime-types' ;
67import path from 'path' ;
78
@@ -1399,11 +1400,9 @@ export class ChatwootService {
13991400 this . logger . verbose ( 'message is from Ads' ) ;
14001401
14011402 this . logger . verbose ( 'get base64 from media ads message' ) ;
1402- const getBase64AdMsg = await axios . get ( adsMessage . thumbnailUrl , { responseType : 'arraybuffer' } ) ;
1403- const base64 = getBase64AdMsg . data . toString ( 'base64' ) ;
1403+ const imgBuffer = await axios . get ( adsMessage . thumbnailUrl , { responseType : 'arraybuffer' } ) ;
14041404
1405- const contentType = getBase64AdMsg . headers [ 'content-type' ] ;
1406- const extension = mimeTypes . extension ( contentType ) ;
1405+ const extension = mimeTypes . extension ( imgBuffer . headers [ 'content-type' ] ) ;
14071406 const mimeType = extension && mimeTypes . lookup ( extension ) ;
14081407
14091408 if ( ! mimeType ) {
@@ -1413,13 +1412,18 @@ export class ChatwootService {
14131412
14141413 const random = Math . random ( ) . toString ( 36 ) . substring ( 7 ) ;
14151414 const nameFile = `${ random } .${ mimeTypes . extension ( mimeType ) } ` ;
1416- const fileData = Buffer . from ( base64 , 'base64 ' ) ;
1415+ const fileData = Buffer . from ( imgBuffer . data , 'binary ' ) ;
14171416 const fileName = `${ path . join ( waInstance ?. storePath , 'temp' , `${ nameFile } ` ) } ` ;
14181417
14191418 this . logger . verbose ( 'temp file name: ' + nameFile ) ;
1420-
14211419 this . logger . verbose ( 'create temp file' ) ;
1422- writeFileSync ( fileName , fileData , 'utf8' ) ;
1420+ await Jimp . read ( fileData )
1421+ . then ( async ( img ) => {
1422+ await img . cover ( 320 , 180 ) . writeAsync ( fileName ) ;
1423+ } )
1424+ . catch ( ( err ) => {
1425+ this . logger . error ( `image is not write: ${ err } ` ) ;
1426+ } ) ;
14231427 const truncStr = ( str : string , len : number ) => {
14241428 return str . length > len ? str . substring ( 0 , len ) + '...' : str ;
14251429 } ;
0 commit comments