[core] ChatWoot - use media from replyTo.media if provided
This commit is contained in:
1 parent
17a7764b97
commit
f70bcd0b53
2 files changed
+26
-9
No files matched your search
@@ -50,13 +50,29 @@ export class StatusReplyMessage extends TextMessage {
|
||||
|
||||
let attachments: SendAttachment[] = [];
|
||||
const quoted = this.getStatusQuotedMessageInfo(payload);
|
||||
const wamessage = await this.fetchStatusMessage(quoted.id);
|
||||
if (wamessage?.media?.url) {
|
||||
const extension = mime.extension(wamessage.media.mimetype);
|
||||
wamessage.media.filename = `status-message.${extension}`;
|
||||
const quotedAttachments = await super.getAttachments(wamessage);
|
||||
let wamessage = null; // aka "quoted from store"
|
||||
|
||||
// Media - Use provided replyTo.media if present
|
||||
if (attachments.length === 0 && payload.replyTo.media) {
|
||||
const extension = mime.extension(payload.replyTo.media.mimetype);
|
||||
payload.replyTo.media.filename = `status-message.${extension}`;
|
||||
const quotedAttachments = await super.getAttachments(payload.replyTo);
|
||||
attachments = [...attachments, ...quotedAttachments];
|
||||
} else {
|
||||
}
|
||||
|
||||
// Media - fetch message by id from store and use it's "media"
|
||||
if (attachments.length == 0) {
|
||||
wamessage = await this.fetchStatusMessage(quoted.id);
|
||||
if (wamessage?.media?.url) {
|
||||
const extension = mime.extension(wamessage.media.mimetype);
|
||||
wamessage.media.filename = `status-message.${extension}`;
|
||||
const quotedAttachments = await super.getAttachments(wamessage);
|
||||
attachments = [...attachments, ...quotedAttachments];
|
||||
}
|
||||
}
|
||||
|
||||
// Media - get media url, key and try to decrypt it
|
||||
if (attachments.length == 0) {
|
||||
const replyData = payload.replyTo._data;
|
||||
const quotedMedia = EngineHelper.ExtractQuotedMedia(replyData);
|
||||
if (quotedMedia) {
|
||||
|
||||
@@ -11,6 +11,7 @@ import { MessageToChatWootConverter } from '@waha/apps/chatwoot/messages/to/chat
|
||||
import { WhatsappToMarkdown } from '@waha/apps/chatwoot/messages/to/chatwoot/utils/markdown';
|
||||
import { JobLink } from '@waha/apps/app_sdk/JobUtils';
|
||||
import { Job } from 'bullmq';
|
||||
import { WAMedia } from '@waha/structures/media.dto';
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
||||
const mime = require('mime-types');
|
||||
@@ -57,9 +58,9 @@ export class TextMessage implements MessageToChatWootConverter {
|
||||
};
|
||||
}
|
||||
|
||||
protected async getAttachments(
|
||||
payload: WAMessage,
|
||||
): Promise<SendAttachment[]> {
|
||||
protected async getAttachments(payload: {
|
||||
media?: WAMedia;
|
||||
}): Promise<SendAttachment[]> {
|
||||
const hasMedia = payload.media?.url;
|
||||
if (!hasMedia) {
|
||||
return [];
|
||||
|
||||
Reference in new issue
Block a user