mirror of
https://github.com/FranP-code/Baileys.git
synced 2025-10-13 00:32:22 +00:00
correct message updates
This commit is contained in:
@@ -32,9 +32,9 @@ async function example() {
|
|||||||
/* Note: one can take this auth_info.json file and login again from any computer without having to scan the QR code,
|
/* Note: one can take this auth_info.json file and login again from any computer without having to scan the QR code,
|
||||||
and get full access to one's WhatsApp. Despite the convenience, be careful with this file */
|
and get full access to one's WhatsApp. Despite the convenience, be careful with this file */
|
||||||
conn.on ('user-presence-update', json => console.log(json.id + ' presence is ' + json.type))
|
conn.on ('user-presence-update', json => console.log(json.id + ' presence is ' + json.type))
|
||||||
conn.on ('message-update', message => {
|
conn.on ('message-update', json => {
|
||||||
//const participant = json.participant ? ' (' + json.participant + ')' : '' // participant exists when the message is from a group
|
const participant = json.participant ? ' (' + json.participant + ')' : '' // participant exists when the message is from a group
|
||||||
//console.log(`${json.to}${participant} acknlowledged message(s) ${json.ids} as ${json.type}`)
|
console.log(`${json.to}${participant} acknlowledged message(s) ${json.ids} as ${json.type}`)
|
||||||
})
|
})
|
||||||
// set to false to NOT relay your own sent messages
|
// set to false to NOT relay your own sent messages
|
||||||
conn.on('message-new', async (m) => {
|
conn.on('message-new', async (m) => {
|
||||||
|
|||||||
@@ -116,7 +116,6 @@ describe ('Reconnects', () => {
|
|||||||
|
|
||||||
// let it fail reconnect a few times
|
// let it fail reconnect a few times
|
||||||
if (closes > 4) {
|
if (closes > 4) {
|
||||||
console.log ('here')
|
|
||||||
conn.removeAllListeners ('closed')
|
conn.removeAllListeners ('closed')
|
||||||
conn.removeAllListeners ('connecting')
|
conn.removeAllListeners ('connecting')
|
||||||
resolve ()
|
resolve ()
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import WS from 'ws'
|
import WS from 'ws'
|
||||||
import * as Utils from './Utils'
|
import * as Utils from './Utils'
|
||||||
import { WAMessage, WAChat, WAContact, MessageLogLevel, WANode, KEEP_ALIVE_INTERVAL_MS } from './Constants'
|
import { WAMessage, WAChat, WAContact, MessageLogLevel, WANode, KEEP_ALIVE_INTERVAL_MS, BaileysError } from './Constants'
|
||||||
import {WAConnection as Base} from './1.Validation'
|
import {WAConnection as Base} from './1.Validation'
|
||||||
import Decoder from '../Binary/Decoder'
|
import Decoder from '../Binary/Decoder'
|
||||||
|
|
||||||
@@ -266,6 +266,10 @@ export class WAConnection extends Base {
|
|||||||
this.cancelReconnect = null
|
this.cancelReconnect = null
|
||||||
break
|
break
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
// don't continue reconnecting if error is 400
|
||||||
|
if (error instanceof BaileysError && error.status >= 400) {
|
||||||
|
break
|
||||||
|
}
|
||||||
this.log (`error in reconnecting: ${error}, reconnecting...`, MessageLogLevel.info)
|
this.log (`error in reconnecting: ${error}, reconnecting...`, MessageLogLevel.info)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -128,6 +128,7 @@ export class WAConnection extends Base {
|
|||||||
const chat = this.chats.get( whatsappID(update.to) )
|
const chat = this.chats.get( whatsappID(update.to) )
|
||||||
if (!chat) return
|
if (!chat) return
|
||||||
|
|
||||||
|
this.emit ('message-update', update)
|
||||||
this.chatUpdatedMessage (update.ids, update.type, chat)
|
this.chatUpdatedMessage (update.ids, update.type, chat)
|
||||||
}
|
}
|
||||||
this.registerCallback('Msg', func)
|
this.registerCallback('Msg', func)
|
||||||
@@ -183,11 +184,19 @@ export class WAConnection extends Base {
|
|||||||
case WAMessageProto.ProtocolMessage.PROTOCOL_MESSAGE_TYPE.REVOKE:
|
case WAMessageProto.ProtocolMessage.PROTOCOL_MESSAGE_TYPE.REVOKE:
|
||||||
const found = chat.messages.find(m => m.key.id === protocolMessage.key.id)
|
const found = chat.messages.find(m => m.key.id === protocolMessage.key.id)
|
||||||
if (found && found.message) {
|
if (found && found.message) {
|
||||||
//this.log ('deleting message: ' + protocolMessage.key.id + ' in chat: ' + protocolMessage.key.remoteJid)
|
|
||||||
|
this.log ('deleting message: ' + protocolMessage.key.id + ' in chat: ' + protocolMessage.key.remoteJid, MessageLogLevel.info)
|
||||||
|
|
||||||
found.messageStubType = WA_MESSAGE_STUB_TYPE.REVOKE
|
found.messageStubType = WA_MESSAGE_STUB_TYPE.REVOKE
|
||||||
found.message = null
|
found.message = null
|
||||||
|
const update: MessageStatusUpdate = {
|
||||||
this.emit ('message-update', found)
|
from: this.user.id,
|
||||||
|
to: message.key.remoteJid,
|
||||||
|
ids: [message.key.id],
|
||||||
|
timestamp: new Date(),
|
||||||
|
type: -1
|
||||||
|
}
|
||||||
|
this.emit ('message-update', update)
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
default:
|
default:
|
||||||
@@ -249,8 +258,6 @@ export class WAConnection extends Base {
|
|||||||
if (messageIDs.includes(msg.key.id)) {
|
if (messageIDs.includes(msg.key.id)) {
|
||||||
if (isGroupID(chat.jid)) msg.status = WA_MESSAGE_STATUS_TYPE.SERVER_ACK
|
if (isGroupID(chat.jid)) msg.status = WA_MESSAGE_STATUS_TYPE.SERVER_ACK
|
||||||
else msg.status = status
|
else msg.status = status
|
||||||
|
|
||||||
this.emit ('message-update', msg)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -294,8 +301,8 @@ export class WAConnection extends Base {
|
|||||||
on (event: 'chat-update', listener: (chat: Partial<WAChat> & { jid: string }) => void): this
|
on (event: 'chat-update', listener: (chat: Partial<WAChat> & { jid: string }) => void): this
|
||||||
/** when a new message is relayed */
|
/** when a new message is relayed */
|
||||||
on (event: 'message-new', listener: (message: WAMessage) => void): this
|
on (event: 'message-new', listener: (message: WAMessage) => void): this
|
||||||
/** when a message is updated (deleted, delivered, read) */
|
/** when a message is updated (deleted, delivered, read, sent etc.) */
|
||||||
on (event: 'message-update', listener: (message: WAMessage) => void): this
|
on (event: 'message-update', listener: (message: MessageStatusUpdate) => void): this
|
||||||
/** when participants are added to a group */
|
/** when participants are added to a group */
|
||||||
on (event: 'group-participants-add', listener: (update: {jid: string, participants: string[], actor?: string}) => void): this
|
on (event: 'group-participants-add', listener: (update: {jid: string, participants: string[], actor?: string}) => void): this
|
||||||
/** when participants are removed or leave from a group */
|
/** when participants are removed or leave from a group */
|
||||||
|
|||||||
Reference in New Issue
Block a user