mirror of
https://github.com/FranP-code/Baileys.git
synced 2025-10-13 00:32:22 +00:00
add extractMessageContent
This commit is contained in:
@@ -2,7 +2,7 @@ import BinaryNode from "../BinaryNode";
|
||||
import { Boom } from '@hapi/boom'
|
||||
import { EventEmitter } from 'events'
|
||||
import { Chat, Presence, WAMessageCursor, SocketConfig, WAMessage, WAMessageKey, ParticipantAction, WAMessageProto, WAMessageStatus, WAMessageStubType, GroupMetadata, AnyMessageContent, MiscMessageGenerationOptions, WAFlag, WAMetric, WAUrlInfo, MediaConnInfo, MessageUpdateType, MessageInfo, MessageInfoUpdate, WAMediaUploadFunction, MediaType, WAMessageUpdate } from "../Types";
|
||||
import { isGroupID, toNumber, whatsappID, generateWAMessage, decryptMediaMessageBuffer } from "../Utils";
|
||||
import { isGroupID, toNumber, whatsappID, generateWAMessage, decryptMediaMessageBuffer, extractMessageContent } from "../Utils";
|
||||
import makeChatsSocket from "./chats";
|
||||
import { DEFAULT_ORIGIN, MEDIA_PATH_MAP, WA_DEFAULT_EPHEMERAL } from "../Defaults";
|
||||
import got from "got";
|
||||
@@ -444,7 +444,7 @@ const makeMessagesSocket = (config: SocketConfig) => {
|
||||
downloadMediaMessage: async(message: WAMessage, type: 'buffer' | 'stream' = 'buffer') => {
|
||||
|
||||
const downloadMediaMessage = async () => {
|
||||
let mContent = message.message?.ephemeralMessage?.message || message.message
|
||||
let mContent = extractMessageContent(message.message)
|
||||
if (!mContent) throw new Boom('No message present', { statusCode: 400, data: message })
|
||||
|
||||
const stream = await decryptMediaMessageBuffer(mContent)
|
||||
|
||||
@@ -336,4 +336,30 @@ export const generateWAMessage = async(
|
||||
),
|
||||
options
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
/**
|
||||
* Extract the true message content from a message
|
||||
* Eg. extracts the inner message from a disappearing message/view once message
|
||||
*/
|
||||
export const extractMessageContent = (content: WAMessageContent | undefined | null): WAMessageContent | undefined => {
|
||||
if(content?.buttonsMessage) {
|
||||
const { buttonsMessage } = content
|
||||
if(buttonsMessage.imageMessage) {
|
||||
return { imageMessage: buttonsMessage.imageMessage }
|
||||
} else if(buttonsMessage.documentMessage) {
|
||||
return { documentMessage: buttonsMessage.documentMessage }
|
||||
} else if(buttonsMessage.videoMessage) {
|
||||
return { videoMessage: buttonsMessage.videoMessage }
|
||||
} else if(buttonsMessage.locationMessage) {
|
||||
return { locationMessage: buttonsMessage.locationMessage }
|
||||
} else {
|
||||
return { conversation: buttonsMessage.contentText }
|
||||
}
|
||||
} else {
|
||||
return content?.ephemeralMessage?.message ||
|
||||
content?.viewOnceMessage?.message ||
|
||||
content ||
|
||||
undefined
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user