feat: added played receipt

This commit is contained in:
Adhiraj Singh
2022-08-04 11:55:35 +05:30
parent 9f3b00d58d
commit bed9e384ba
3 changed files with 13 additions and 12 deletions

View File

@@ -119,7 +119,7 @@ const startSock = async() => {
for(const msg of upsert.messages) {
if(!msg.key.fromMe && doReplies) {
console.log('replying to', msg.key.remoteJid)
await sock!.sendReadReceipt(msg.key.remoteJid!, msg.key.participant!, [msg.key.id!])
await sock!.readMessages([msg.key])
await sendMessageWTyping({ text: 'Hello there!' }, msg.key.remoteJid!)
}
}

View File

@@ -108,19 +108,20 @@ export const makeMessagesSocket = (config: SocketConfig) => {
await sendNode(node)
}
const sendReadReceipt = async(jid: string, participant: string | undefined, messageIds: string[]) => {
const privacySettings = await fetchPrivacySettings()
// based on privacy settings, we have to change the read type
const readType = privacySettings.readreceipts === 'all' ? 'read' : 'read-self'
return sendReceipt(jid, participant, messageIds, readType)
/** Correctly bulk send receipts to multiple chats, participants */
const sendReceipts = async(keys: WAMessageKey[], type: MessageReceiptType) => {
const recps = aggregateMessageKeysNotFromMe(keys)
for(const { jid, participant, messageIds } of recps) {
await sendReceipt(jid, participant, messageIds, type)
}
}
/** Bulk read messages. Keys can be from different chats & participants */
const readMessages = async(keys: WAMessageKey[]) => {
const recps = aggregateMessageKeysNotFromMe(keys)
for(const { jid, participant, messageIds } of recps) {
await sendReadReceipt(jid, participant, messageIds)
}
const privacySettings = await fetchPrivacySettings()
// based on privacy settings, we have to change the read type
const readType = privacySettings.readreceipts === 'all' ? 'read' : 'read-self'
await sendReceipts(keys, readType)
}
/** Fetch all the devices we've to send a message to */
@@ -527,7 +528,7 @@ export const makeMessagesSocket = (config: SocketConfig) => {
assertSessions,
relayMessage,
sendReceipt,
sendReadReceipt,
sendReceipts,
readMessages,
refreshMediaConn,
waUploadToServer,

View File

@@ -24,7 +24,7 @@ export type MessageType = keyof proto.Message
export type DownloadableMessage = { mediaKey?: Uint8Array | null, directPath?: string | null, url?: string | null }
export type MessageReceiptType = 'read' | 'read-self' | 'hist_sync' | 'peer_msg' | 'sender' | 'inactive' | undefined
export type MessageReceiptType = 'read' | 'read-self' | 'hist_sync' | 'peer_msg' | 'sender' | 'inactive' | 'played' | undefined
export type MediaConnInfo = {
auth: string