diff --git a/src/Client.js b/src/Client.js index 5a2614a..ecc2ead 100644 --- a/src/Client.js +++ b/src/Client.js @@ -382,6 +382,7 @@ class Client extends EventEmitter { async sendMessage(chatId, content, options = {}) { let internalOptions = { linkPreview: options.linkPreview === false ? undefined : true, + sendAudioAsVoice: options.sendAudioAsVoice, caption: options.caption, quotedMessageId: options.quotedMessageId, mentionedJidList: Array.isArray(options.mentions) ? options.mentions.map(contact => contact.id._serialized) : [] diff --git a/src/util/Injected.js b/src/util/Injected.js index 68dbcc3..d2f4309 100644 --- a/src/util/Injected.js +++ b/src/util/Injected.js @@ -48,7 +48,7 @@ exports.LoadUtils = () => { window.WWebJS.sendMessage = async (chat, content, options = {}) => { let attOptions = {}; if (options.attachment) { - attOptions = await window.WWebJS.processMediaData(options.attachment); + attOptions = await window.WWebJS.processMediaData(options.attachment, options.sendAudioAsVoice); delete options.attachment; } @@ -114,7 +114,7 @@ exports.LoadUtils = () => { return window.Store.Msg.get(newMsgId._serialized); }; - window.WWebJS.processMediaData = async (mediaInfo) => { + window.WWebJS.processMediaData = async (mediaInfo, forceVoice) => { const file = window.WWebJS.mediaInfoToFile(mediaInfo); const mData = await window.Store.OpaqueData.default.createFromData(file, file.type); const mediaPrep = window.Store.MediaPrep.prepRawMedia(mData, {}); @@ -126,6 +126,10 @@ exports.LoadUtils = () => { isGif: mediaData.isGif }); + if(forceVoice && mediaData.type === 'audio') { + mediaData.type = 'ptt'; + } + if (!(mediaData.mediaBlob instanceof window.Store.OpaqueData.default)) { mediaData.mediaBlob = await window.Store.OpaqueData.default.createFromData(mediaData.mediaBlob, mediaData.mediaBlob.type); }