@@ -51,6 +51,7 @@ import {
5151 getBinaryNodeChildren ,
5252 getBinaryNodeChildString ,
5353 isJidGroup ,
54+ isJidNewsletter ,
5455 isJidStatusBroadcast ,
5556 isLidUser ,
5657 isPnUser ,
@@ -1250,30 +1251,36 @@ export const makeMessagesRecvSocket = (config: SocketConfig) => {
12501251 await sendMessageAck ( node , NACK_REASONS . UnhandledError )
12511252 } )
12521253 } else {
1253- // no type in the receipt => message delivered
1254- let type : MessageReceiptType = undefined
1255- let participant = msg . key . participant
1256- if ( category === 'peer' ) {
1257- // special peer message
1258- type = 'peer_msg'
1259- } else if ( msg . key . fromMe ) {
1260- // message was sent by us from a different device
1261- type = 'sender'
1262- // need to specially handle this case
1263- if ( isLidUser ( msg . key . remoteJid ! ) || isLidUser ( msg . key . remoteJidAlt ) ) {
1264- participant = author // TODO: investigate sending receipts to LIDs and not PNs
1254+ await sendMessageAck ( node )
1255+ const isNewsletter = isJidNewsletter ( msg . key . remoteJid ! )
1256+ if ( ! isNewsletter ) {
1257+ // no type in the receipt => message delivered
1258+ let type : MessageReceiptType = undefined
1259+ let participant = msg . key . participant
1260+ if ( category === 'peer' ) {
1261+ // special peer message
1262+ type = 'peer_msg'
1263+ } else if ( msg . key . fromMe ) {
1264+ // message was sent by us from a different device
1265+ type = 'sender'
1266+ // need to specially handle this case
1267+ if ( isLidUser ( msg . key . remoteJid ! ) || isLidUser ( msg . key . remoteJidAlt ) ) {
1268+ participant = author // TODO: investigate sending receipts to LIDs and not PNs
1269+ }
1270+ } else if ( ! sendActiveReceipts ) {
1271+ type = 'inactive'
12651272 }
1266- } else if ( ! sendActiveReceipts ) {
1267- type = 'inactive'
1268- }
12691273
1270- await sendReceipt ( msg . key . remoteJid ! , participant ! , [ msg . key . id ! ] , type )
1274+ await sendReceipt ( msg . key . remoteJid ! , participant ! , [ msg . key . id ! ] , type )
12711275
1272- // send ack for history message
1273- const isAnyHistoryMsg = getHistoryMsg ( msg . message ! )
1274- if ( isAnyHistoryMsg ) {
1275- const jid = jidNormalizedUser ( msg . key . remoteJid ! )
1276- await sendReceipt ( jid , undefined , [ msg . key . id ! ] , 'hist_sync' )
1276+ // send ack for history message
1277+ const isAnyHistoryMsg = getHistoryMsg ( msg . message ! )
1278+ if ( isAnyHistoryMsg ) {
1279+ const jid = jidNormalizedUser ( msg . key . remoteJid ! )
1280+ await sendReceipt ( jid , undefined , [ msg . key . id ! ] , 'hist_sync' )
1281+ }
1282+ } else {
1283+ logger . debug ( { key : msg . key } , 'processed newsletter message without receipts' )
12771284 }
12781285 }
12791286
0 commit comments