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 { Boom } from '@hapi/boom'
|
||||||
import { EventEmitter } from 'events'
|
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 { 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 makeChatsSocket from "./chats";
|
||||||
import { DEFAULT_ORIGIN, MEDIA_PATH_MAP, WA_DEFAULT_EPHEMERAL } from "../Defaults";
|
import { DEFAULT_ORIGIN, MEDIA_PATH_MAP, WA_DEFAULT_EPHEMERAL } from "../Defaults";
|
||||||
import got from "got";
|
import got from "got";
|
||||||
@@ -444,7 +444,7 @@ const makeMessagesSocket = (config: SocketConfig) => {
|
|||||||
downloadMediaMessage: async(message: WAMessage, type: 'buffer' | 'stream' = 'buffer') => {
|
downloadMediaMessage: async(message: WAMessage, type: 'buffer' | 'stream' = 'buffer') => {
|
||||||
|
|
||||||
const downloadMediaMessage = async () => {
|
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 })
|
if (!mContent) throw new Boom('No message present', { statusCode: 400, data: message })
|
||||||
|
|
||||||
const stream = await decryptMediaMessageBuffer(mContent)
|
const stream = await decryptMediaMessageBuffer(mContent)
|
||||||
|
|||||||
@@ -336,4 +336,30 @@ export const generateWAMessage = async(
|
|||||||
),
|
),
|
||||||
options
|
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