Add sendVideoAsGif option (#578)

* Add sendVideoAsGif option

* fix typo

Co-authored-by: Pedro S. Lopez <pslamoros@hotmail.com>
This commit is contained in:
Wictor Nogueira
2021-05-31 20:18:10 -03:00
committed by GitHub
parent efc7018f9a
commit 6c66ab2bef
3 changed files with 11 additions and 2 deletions

2
index.d.ts vendored
View File

@@ -584,6 +584,8 @@ declare namespace WAWebJS {
linkPreview?: boolean
/** Send audio as voice message */
sendAudioAsVoice?: boolean
/** Send video as gif */
sendVideoAsGif?: boolean
/** Send media as sticker */
sendMediaAsSticker?: boolean
/** Send media as document */

View File

@@ -430,6 +430,7 @@ class Client extends EventEmitter {
* @typedef {Object} MessageSendOptions
* @property {boolean} [linkPreview=true] - Show links preview
* @property {boolean} [sendAudioAsVoice=false] - Send audio as voice message
* @property {boolean} [sendVideoAsGif=false] - Send video as gif
* @property {boolean} [sendMediaAsSticker=false] - Send media as a sticker
* @property {boolean} [sendMediaAsDocument=false] - Send media as a document
* @property {boolean} [parseVCards=true] - Automatically parse vCards and send them as contacts
@@ -455,6 +456,7 @@ class Client extends EventEmitter {
let internalOptions = {
linkPreview: options.linkPreview === false ? undefined : true,
sendAudioAsVoice: options.sendAudioAsVoice,
sendVideoAsGif: options.sendVideoAsGif,
sendMediaAsSticker: options.sendMediaAsSticker,
sendMediaAsDocument: options.sendMediaAsDocument,
caption: options.caption,

View File

@@ -62,7 +62,8 @@ exports.LoadUtils = () => {
? await window.WWebJS.processStickerData(options.attachment)
: await window.WWebJS.processMediaData(options.attachment, {
forceVoice: options.sendAudioAsVoice,
forceDocument: options.sendMediaAsDocument
forceDocument: options.sendMediaAsDocument,
forceGif: options.sendVideoAsGif
});
content = options.sendMediaAsSticker ? undefined : attOptions.preview;
@@ -195,7 +196,7 @@ exports.LoadUtils = () => {
return stickerInfo;
};
window.WWebJS.processMediaData = async (mediaInfo, { forceVoice, forceDocument }) => {
window.WWebJS.processMediaData = async (mediaInfo, { forceVoice, forceDocument, forceGif }) => {
const file = window.WWebJS.mediaInfoToFile(mediaInfo);
const mData = await window.Store.OpaqueData.createFromData(file, file.type);
const mediaPrep = window.Store.MediaPrep.prepRawMedia(mData, { asDocument: forceDocument });
@@ -211,6 +212,10 @@ exports.LoadUtils = () => {
mediaData.type = 'ptt';
}
if (forceGif && mediaData.type === 'video') {
mediaData.isGif = true;
}
if (forceDocument) {
mediaData.type = 'document';
}