messages are proto objects

This commit is contained in:
Adhiraj
2020-09-14 16:38:53 +05:30
parent f41bf888f1
commit 8bc19a8a82
2 changed files with 12 additions and 9 deletions

View File

@@ -145,9 +145,10 @@ WAConnectionTest('Messages', conn => {
const JID = '1234-1234@g.us'
conn.sendMessage(JID, 'hello', MessageType.text)
conn.on ('message-status-update', update => {
conn.on ('message-status-update', async update => {
if (update.to === JID) {
assert.equal (update.type, WA_MESSAGE_STATUS_TYPE.ERROR)
await conn.deleteChat (JID)
done ()
}
})

View File

@@ -54,19 +54,19 @@ export class WAConnection extends Base {
case MessageType.text:
case MessageType.extendedText:
if (typeof message === 'string') {
m.extendedTextMessage = {text: message}
m.extendedTextMessage = WAMessageProto.ExtendedTextMessage.create({text: message} as any)
} else if ('text' in message) {
m.extendedTextMessage = message as WATextMessage
m.extendedTextMessage = WAMessageProto.ExtendedTextMessage.create(message as any)
} else {
throw new BaileysError ('message needs to be a string or object with property \'text\'', message)
}
break
case MessageType.location:
case MessageType.liveLocation:
m.locationMessage = message as WALocationMessage
m.locationMessage = WAMessageProto.LocationMessage.create(message as any)
break
case MessageType.contact:
m.contactMessage = message as WAContactMessage
m.contactMessage = WAMessageProto.ContactMessage.create(message as any)
break
default:
m = await this.prepareMessageMedia(message as Buffer, type, options)
@@ -129,16 +129,16 @@ export class WAConnection extends Base {
const message = {}
message[mediaType] = {
url: mediaUrl,
mediaKey: mediaKey.toString('base64'),
mediaKey: mediaKey,
mimetype: options.mimetype,
fileEncSha256: fileEncSha256B64,
fileSha256: fileSha256.toString('base64'),
fileEncSha256: sha256(body),//fileEncSha256B64,
fileSha256: fileSha256,
fileLength: buffer.length,
fileName: options.filename || 'file',
gifPlayback: isGIF || null,
caption: options.caption
}
return message as WAMessageContent
return WAMessageProto.Message.create(message)// as WAMessageContent
}
/** prepares a WAMessage for sending from the given content & options */
prepareMessageFromContent(id: string, message: WAMessageContent, options: MessageOptions) {
@@ -147,6 +147,8 @@ export class WAConnection extends Base {
// prevent an annoying bug (WA doesn't accept sending messages with '@c.us')
id = whatsappID (id)
message = WAMessageProto.Message.create (message)
const key = Object.keys(message)[0]
const timestamp = unixTimestampSeconds(options.timestamp)
const quoted = options.quoted