This commit is contained in:
Adhiraj
2020-09-14 16:58:43 +05:30
parent 8bc19a8a82
commit 3f35baee2f
2 changed files with 30 additions and 16 deletions

View File

@@ -9,7 +9,7 @@ import {
WALocationMessage, WALocationMessage,
WAContactMessage, WAContactMessage,
WATextMessage, WATextMessage,
WAMessageContent, WAMetric, WAFlag, WAMessage, BaileysError, MessageLogLevel, WA_MESSAGE_STATUS_TYPE, WAMessageProto, MediaConnInfo WAMessageContent, WAMetric, WAFlag, WAMessage, BaileysError, MessageLogLevel, WA_MESSAGE_STATUS_TYPE, WAMessageProto, MediaConnInfo, MessageTypeProto
} from './Constants' } from './Constants'
import { generateMessageID, sha256, hmacSign, aesEncrypWithIV, randomBytes, generateThumbnail, getMediaKeys, decodeMediaMessageBuffer, extensionForMediaMessage, whatsappID, unixTimestampSeconds } from './Utils' import { generateMessageID, sha256, hmacSign, aesEncrypWithIV, randomBytes, generateThumbnail, getMediaKeys, decodeMediaMessageBuffer, extensionForMediaMessage, whatsappID, unixTimestampSeconds } from './Utils'
import { Mutex } from './Mutex' import { Mutex } from './Mutex'
@@ -70,6 +70,7 @@ export class WAConnection extends Base {
break break
default: default:
m = await this.prepareMessageMedia(message as Buffer, type, options) m = await this.prepareMessageMedia(message as Buffer, type, options)
console.log (m)
break break
} }
return WAMessageProto.Message.create (m) return WAMessageProto.Message.create (m)
@@ -126,18 +127,22 @@ export class WAConnection extends Base {
} }
if (!mediaUrl) throw new Error('Media upload failed on all hosts') if (!mediaUrl) throw new Error('Media upload failed on all hosts')
const message = {} const message = {
message[mediaType] = { [mediaType]: MessageTypeProto[mediaType].create (
url: mediaUrl, {
mediaKey: mediaKey, url: mediaUrl,
mimetype: options.mimetype, mediaKey: mediaKey,
fileEncSha256: sha256(body),//fileEncSha256B64, mimetype: options.mimetype,
fileSha256: fileSha256, fileEncSha256: sha256(body),//fileEncSha256B64,
fileLength: buffer.length, fileSha256: fileSha256,
fileName: options.filename || 'file', fileLength: buffer.length,
gifPlayback: isGIF || null, fileName: options.filename || 'file',
caption: options.caption gifPlayback: isGIF || null,
} caption: options.caption,
}
)
}
return WAMessageProto.Message.create(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 */
@@ -147,8 +152,6 @@ 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
@@ -169,7 +172,10 @@ export class WAConnection extends Base {
message[key].contextInfo.remoteJid = quoted.key.remoteJid message[key].contextInfo.remoteJid = quoted.key.remoteJid
} }
} }
if (!message[key].jpegThumbnail) message[key].jpegThumbnail = options?.thumbnail if (options?.thumbnail) {
message[key].jpegThumbnail = Buffer.from(options.thumbnail, 'base64')
}
message = WAMessageProto.Message.create (message)
const messageJSON = { const messageJSON = {
key: { key: {

View File

@@ -260,6 +260,14 @@ export enum MessageType {
audio = 'audioMessage', audio = 'audioMessage',
product = 'productMessage' product = 'productMessage'
} }
export const MessageTypeProto = {
[MessageType.image]: proto.ImageMessage,
[MessageType.video]: proto.VideoMessage,
[MessageType.audio]: proto.AudioMessage,
[MessageType.sticker]: proto.StickerMessage,
[MessageType.document]: proto.DocumentMessage,
}
export enum ChatModification { export enum ChatModification {
archive='archive', archive='archive',
unarchive='unarchive', unarchive='unarchive',