mirror of
https://github.com/FranP-code/Baileys.git
synced 2025-10-13 00:32:22 +00:00
feat: add "assertMediaContent" util
This commit is contained in:
@@ -1,8 +1,7 @@
|
|||||||
import { Boom } from '@hapi/boom'
|
|
||||||
import { proto } from '../../WAProto'
|
import { proto } from '../../WAProto'
|
||||||
import { WA_DEFAULT_EPHEMERAL } from '../Defaults'
|
import { WA_DEFAULT_EPHEMERAL } from '../Defaults'
|
||||||
import { AnyMessageContent, Chat, GroupMetadata, LegacySocketConfig, MediaConnInfo, MessageUpdateType, MessageUserReceipt, MessageUserReceiptUpdate, MiscMessageGenerationOptions, ParticipantAction, WAFlag, WAMessage, WAMessageCursor, WAMessageKey, WAMessageStatus, WAMessageStubType, WAMessageUpdate, WAMetric, WAUrlInfo } from '../Types'
|
import { AnyMessageContent, Chat, GroupMetadata, LegacySocketConfig, MediaConnInfo, MessageUpdateType, MessageUserReceipt, MessageUserReceiptUpdate, MiscMessageGenerationOptions, ParticipantAction, WAFlag, WAMessage, WAMessageCursor, WAMessageKey, WAMessageStatus, WAMessageStubType, WAMessageUpdate, WAMetric, WAUrlInfo } from '../Types'
|
||||||
import { downloadMediaMessage, generateWAMessage, getWAUploadToServer, MediaDownloadOptions, normalizeMessageContent, toNumber } from '../Utils'
|
import { assertMediaContent, downloadMediaMessage, generateWAMessage, getWAUploadToServer, MediaDownloadOptions, normalizeMessageContent, toNumber } from '../Utils'
|
||||||
import { areJidsSameUser, BinaryNode, getBinaryNodeMessages, isJidGroup, jidNormalizedUser } from '../WABinary'
|
import { areJidsSameUser, BinaryNode, getBinaryNodeMessages, isJidGroup, jidNormalizedUser } from '../WABinary'
|
||||||
import makeChatsSocket from './chats'
|
import makeChatsSocket from './chats'
|
||||||
|
|
||||||
@@ -78,13 +77,7 @@ const makeMessagesSocket = (config: LegacySocketConfig) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const updateMediaMessage = async(message: WAMessage) => {
|
const updateMediaMessage = async(message: WAMessage) => {
|
||||||
const content = message.message?.audioMessage || message.message?.videoMessage || message.message?.imageMessage || message.message?.stickerMessage || message.message?.documentMessage
|
const content = assertMediaContent(message.message)
|
||||||
if(!content) {
|
|
||||||
throw new Boom(
|
|
||||||
`given message ${message.key.id} is not a media message`,
|
|
||||||
{ statusCode: 400, data: message }
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
const response: BinaryNode = await query ({
|
const response: BinaryNode = await query ({
|
||||||
json: {
|
json: {
|
||||||
@@ -105,8 +98,6 @@ const makeMessagesSocket = (config: LegacySocketConfig) => {
|
|||||||
Object.assign(content, attrs) // update message
|
Object.assign(content, attrs) // update message
|
||||||
|
|
||||||
ev.emit('messages.upsert', { messages: [message], type: 'replace' })
|
ev.emit('messages.upsert', { messages: [message], type: 'replace' })
|
||||||
|
|
||||||
return response
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const onMessage = (message: WAMessage, type: MessageUpdateType) => {
|
const onMessage = (message: WAMessage, type: MessageUpdateType) => {
|
||||||
|
|||||||
@@ -614,3 +614,21 @@ export const downloadMediaMessage = async(message: WAMessage, type: 'buffer' | '
|
|||||||
|
|
||||||
return stream
|
return stream
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Checks whether the given message is a media message; if it is returns the inner content */
|
||||||
|
export const assertMediaContent = (content: proto.IMessage) => {
|
||||||
|
content = normalizeMessageContent(content)
|
||||||
|
const mediaContent = content?.documentMessage
|
||||||
|
|| content?.imageMessage
|
||||||
|
|| content?.videoMessage
|
||||||
|
|| content?.audioMessage
|
||||||
|
|| content?.stickerMessage
|
||||||
|
if(!mediaContent) {
|
||||||
|
throw new Boom(
|
||||||
|
'given message is not a media message',
|
||||||
|
{ statusCode: 400, data: content }
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
return mediaContent
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user