Skip to content

Commit

Permalink
feat: send audio as voice note
Browse files Browse the repository at this point in the history
This adds the 'sendAudioAsVoice' option for messages

close #160
  • Loading branch information
pedroslopez committed Apr 15, 2020
1 parent 59ee68b commit 686c99f
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 2 deletions.
1 change: 1 addition & 0 deletions src/Client.js
Original file line number Diff line number Diff line change
Expand Up @@ -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) : []
Expand Down
8 changes: 6 additions & 2 deletions src/util/Injected.js
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down Expand Up @@ -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, {});
Expand All @@ -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);
}
Expand Down

0 comments on commit 686c99f

Please sign in to comment.