Separated sendGenericMessage & generateMessage

This commit is contained in:
Adhiraj
2020-08-04 11:37:39 +05:30
parent e915342eed
commit a5fffb6218
2 changed files with 22 additions and 12 deletions

View File

@@ -1,6 +1,6 @@
{ {
"name": "@adiwajshing/baileys", "name": "@adiwajshing/baileys",
"version": "2.2.0", "version": "2.3.0",
"description": "WhatsApp Web API", "description": "WhatsApp Web API",
"homepage": "https://github.com/adiwajshing/Baileys", "homepage": "https://github.com/adiwajshing/Baileys",
"main": "lib/WAClient/WAClient.js", "main": "lib/WAClient/WAClient.js",

View File

@@ -193,7 +193,7 @@ export default class WhatsAppWebMessages extends WhatsAppWebGroups {
type: proto.ProtocolMessage.PROTOCOL_MESSAGE_TYPE.REVOKE type: proto.ProtocolMessage.PROTOCOL_MESSAGE_TYPE.REVOKE
} }
} }
return this.sendGenericMessage (id, json, {}) return this.sendMessageContent (id, json, {})
} }
/** /**
* Forward a message like WA does * Forward a message like WA does
@@ -217,7 +217,7 @@ export default class WhatsAppWebMessages extends WhatsAppWebGroups {
if (score > 0) content[key].contextInfo = { forwardingScore: score, isForwarded: true } if (score > 0) content[key].contextInfo = { forwardingScore: score, isForwarded: true }
else content[key].contextInfo = {} else content[key].contextInfo = {}
return this.sendGenericMessage (id, content, {}) return this.sendMessageContent (id, content, {})
} }
async sendMessage( async sendMessage(
id: string, id: string,
@@ -251,7 +251,7 @@ export default class WhatsAppWebMessages extends WhatsAppWebGroups {
m = await this.prepareMediaMessage(message as Buffer, type, options) m = await this.prepareMediaMessage(message as Buffer, type, options)
break break
} }
return this.sendGenericMessage(id, m, options) return this.sendMessageContent(id, m, options)
} }
/** Prepare a media message for sending */ /** Prepare a media message for sending */
async prepareMediaMessage(buffer: Buffer, mediaType: MessageType, options: MessageOptions = {}) { async prepareMediaMessage(buffer: Buffer, mediaType: MessageType, options: MessageOptions = {}) {
@@ -315,9 +315,13 @@ export default class WhatsAppWebMessages extends WhatsAppWebGroups {
} }
return message as WAMessageContent return message as WAMessageContent
} }
/** Generic send message function */ /** Send message content */
async sendGenericMessage(id: string, message: WAMessageContent, options: MessageOptions) { async sendMessageContent(id: string, message: WAMessageContent, options: MessageOptions) {
const messageJSON = this.generateWAMessage (id, message, options)
return this.sendWAMessage (messageJSON)
}
/** generates a WAMessage from the given content & options */
generateWAMessage(id: string, message: WAMessageContent, options: MessageOptions) {
if (!options.timestamp) options.timestamp = new Date() // set timestamp to now if (!options.timestamp) options.timestamp = new Date() // set timestamp to now
const key = Object.keys(message)[0] const key = Object.keys(message)[0]
@@ -354,13 +358,19 @@ export default class WhatsAppWebMessages extends WhatsAppWebGroups {
participant: id.includes('@g.us') ? this.userMetaData.id : null, participant: id.includes('@g.us') ? this.userMetaData.id : null,
status: WAMessageProto.proto.WebMessageInfo.WEB_MESSAGE_INFO_STATUS.PENDING status: WAMessageProto.proto.WebMessageInfo.WEB_MESSAGE_INFO_STATUS.PENDING
} }
const json = ['action', {epoch: this.msgCount.toString(), type: 'relay'}, [['message', null, messageJSON]]] return messageJSON as WAMessage
const flag = id === this.userMetaData.id ? WAFlag.acknowledge : WAFlag.ignore // acknowledge when sending message to oneself }
const response = await this.queryExpecting200(json, [WAMetric.message, flag], null, messageJSON.key.id) /**
* Send a WAMessage; more advanced functionality, you may want to stick with sendMessage()
* */
async sendWAMessage(message: WAMessage) {
const json = ['action', {epoch: this.msgCount.toString(), type: 'relay'}, [['message', null, message]]]
const flag = message.key.remoteJid === this.userMetaData.id ? WAFlag.acknowledge : WAFlag.ignore // acknowledge when sending message to oneself
const response = await this.queryExpecting200(json, [WAMetric.message, flag], null, message.key.id)
return { return {
status: response.status as number, status: response.status as number,
messageID: messageJSON.key.id, messageID: message.key.id,
message: messageJSON as WAMessage message: message as WAMessage
} as WASendMessageResponse } as WASendMessageResponse
} }
/** /**