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' const JID = '1234-1234@g.us'
conn.sendMessage(JID, 'hello', MessageType.text) conn.sendMessage(JID, 'hello', MessageType.text)
conn.on ('message-status-update', update => { conn.on ('message-status-update', async update => {
if (update.to === JID) { if (update.to === JID) {
assert.equal (update.type, WA_MESSAGE_STATUS_TYPE.ERROR) assert.equal (update.type, WA_MESSAGE_STATUS_TYPE.ERROR)
await conn.deleteChat (JID)
done () done ()
} }
}) })

View File

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