@@ -620,7 +620,7 @@ export class BaileysStartupService extends ChannelStartupService {
620620 const existingChatIdSet = new Set ( existingChatIds . map ( ( chat ) => chat . remoteJid ) ) ;
621621
622622 const chatsToInsert = chats
623- . filter ( ( chat ) => ! existingChatIdSet . has ( chat . id ) )
623+ . filter ( ( chat ) => ! existingChatIdSet ? .has ( chat . id ) )
624624 . map ( ( chat ) => ( { remoteJid : chat . id , instanceId : this . instanceId , name : chat . name } ) ) ;
625625
626626 this . sendDataWebhook ( Events . CHATS_UPSERT , chatsToInsert ) ;
@@ -757,6 +757,7 @@ export class BaileysStartupService extends ChannelStartupService {
757757 ) ;
758758 }
759759 } catch ( error ) {
760+ console . error ( error ) ;
760761 this . logger . error ( 'line 817' ) ;
761762 this . logger . error ( `Error: ${ error . message } ` ) ;
762763 }
@@ -849,7 +850,7 @@ export class BaileysStartupService extends ChannelStartupService {
849850 ) ;
850851
851852 for ( const chat of chats ) {
852- if ( chatsRepository . has ( chat . id ) ) {
853+ if ( chatsRepository ? .has ( chat . id ) ) {
853854 continue ;
854855 }
855856
@@ -906,7 +907,7 @@ export class BaileysStartupService extends ChannelStartupService {
906907 }
907908 }
908909
909- if ( messagesRepository . has ( m . key . id ) ) {
910+ if ( messagesRepository ? .has ( m . key . id ) ) {
910911 continue ;
911912 }
912913
@@ -1053,6 +1054,7 @@ export class BaileysStartupService extends ChannelStartupService {
10531054 } ;
10541055
10551056 if ( messageRaw . message . extendedTextMessage ) {
1057+ messageRaw . messageType = 'conversation' ;
10561058 messageRaw . message . conversation = messageRaw . message . extendedTextMessage . text ;
10571059 delete messageRaw . message . extendedTextMessage ;
10581060 }
@@ -1949,6 +1951,14 @@ export class BaileysStartupService extends ChannelStartupService {
19491951 messageSent = await this . sendMessage ( sender , message , mentions , linkPreview , quoted ) ;
19501952 }
19511953
1954+ const isMedia =
1955+ messageSent ?. message ?. imageMessage ||
1956+ messageSent ?. message ?. videoMessage ||
1957+ messageSent ?. message ?. stickerMessage ||
1958+ messageSent ?. message ?. documentMessage ||
1959+ messageSent ?. message ?. documentWithCaptionMessage ||
1960+ messageSent ?. message ?. audioMessage ;
1961+
19521962 const contentMsg = messageSent . message [ getContentType ( messageSent . message ) ] as any ;
19531963
19541964 if ( Long . isLong ( messageSent ?. messageTimestamp ) ) {
@@ -1967,10 +1977,98 @@ export class BaileysStartupService extends ChannelStartupService {
19671977 } ;
19681978
19691979 if ( messageRaw . message . extendedTextMessage ) {
1980+ messageRaw . messageType = 'conversation' ;
19701981 messageRaw . message . conversation = messageRaw . message . extendedTextMessage . text ;
19711982 delete messageRaw . message . extendedTextMessage ;
19721983 }
19731984
1985+ if ( this . configService . get < Database > ( 'DATABASE' ) . SAVE_DATA . NEW_MESSAGE ) {
1986+ const msg = await this . prismaRepository . message . create ( {
1987+ data : messageRaw ,
1988+ } ) ;
1989+
1990+ if ( isMedia && this . configService . get < S3 > ( 'S3' ) . ENABLE ) {
1991+ try {
1992+ const message : any = messageSent ;
1993+ const media = await this . getBase64FromMediaMessage (
1994+ {
1995+ message,
1996+ } ,
1997+ true ,
1998+ ) ;
1999+
2000+ const { buffer, mediaType, fileName, size } = media ;
2001+
2002+ const mimetype = mime . getType ( fileName ) . toString ( ) ;
2003+
2004+ const fullName = join ( `${ this . instance . id } ` , messageSent . key . remoteJid , mediaType , fileName ) ;
2005+
2006+ await s3Service . uploadFile ( fullName , buffer , size . fileLength ?. low , {
2007+ 'Content-Type' : mimetype ,
2008+ } ) ;
2009+
2010+ await this . prismaRepository . media . create ( {
2011+ data : {
2012+ messageId : msg . id ,
2013+ instanceId : this . instanceId ,
2014+ type : mediaType ,
2015+ fileName : fullName ,
2016+ mimetype,
2017+ } ,
2018+ } ) ;
2019+
2020+ const mediaUrl = await s3Service . getObjectUrl ( fullName ) ;
2021+
2022+ messageRaw . message . mediaUrl = mediaUrl ;
2023+
2024+ await this . prismaRepository . message . update ( {
2025+ where : { id : msg . id } ,
2026+ data : messageRaw ,
2027+ } ) ;
2028+ } catch ( error ) {
2029+ this . logger . error ( [ 'Error on upload file to minio' , error ?. message , error ?. stack ] ) ;
2030+ }
2031+ }
2032+ }
2033+
2034+ if ( isMedia && ! this . configService . get < S3 > ( 'S3' ) . ENABLE ) {
2035+ const buffer = await downloadMediaMessage (
2036+ { key : messageSent . key , message : messageSent ?. message } ,
2037+ 'buffer' ,
2038+ { } ,
2039+ {
2040+ logger : P ( { level : 'error' } ) as any ,
2041+ reuploadRequest : this . client . updateMediaMessage ,
2042+ } ,
2043+ ) ;
2044+
2045+ messageRaw . message . base64 = buffer ? buffer . toString ( 'base64' ) : undefined ;
2046+ }
2047+
2048+ if ( this . configService . get < Openai > ( 'OPENAI' ) . ENABLED ) {
2049+ const openAiDefaultSettings = await this . prismaRepository . openaiSetting . findFirst ( {
2050+ where : {
2051+ instanceId : this . instanceId ,
2052+ } ,
2053+ include : {
2054+ OpenaiCreds : true ,
2055+ } ,
2056+ } ) ;
2057+
2058+ if (
2059+ openAiDefaultSettings &&
2060+ openAiDefaultSettings . openaiCredsId &&
2061+ openAiDefaultSettings . speechToText &&
2062+ messageSent ?. message ?. audioMessage
2063+ ) {
2064+ messageRaw . message . speechToText = await this . openaiService . speechToText (
2065+ openAiDefaultSettings . OpenaiCreds ,
2066+ messageSent ,
2067+ this . client . updateMediaMessage ,
2068+ ) ;
2069+ }
2070+ }
2071+
19742072 this . logger . log ( messageRaw ) ;
19752073
19762074 this . sendDataWebhook ( Events . SEND_MESSAGE , messageRaw ) ;
@@ -2052,7 +2150,7 @@ export class BaileysStartupService extends ChannelStartupService {
20522150 }
20532151 }
20542152
2055- return messageSent ;
2153+ return messageRaw ;
20562154 } catch ( error ) {
20572155 this . logger . error ( 'line 2081' ) ;
20582156 this . logger . error ( error ) ;
@@ -3314,7 +3412,7 @@ export class BaileysStartupService extends ChannelStartupService {
33143412 const cacheConf = configService . get < CacheConf > ( 'CACHE' ) ;
33153413
33163414 if ( ( cacheConf ?. REDIS ?. ENABLED && cacheConf ?. REDIS ?. URI !== '' ) || cacheConf ?. LOCAL ?. ENABLED ) {
3317- if ( await groupMetadataCache . has ( groupJid ) ) {
3415+ if ( await groupMetadataCache ? .has ( groupJid ) ) {
33183416 console . log ( `Cache request for group: ${ groupJid } ` ) ;
33193417 const meta = await groupMetadataCache . get ( groupJid ) ;
33203418
0 commit comments