Fix Whatsapp link issue

This commit is contained in:
Darren Clarke 2024-07-19 11:25:35 +02:00
parent c32c26088f
commit 1512cca858
3 changed files with 203 additions and 18 deletions

View file

@ -75,6 +75,7 @@ export default class WhatsappService extends Service {
const socket = makeWASocket({
...options,
auth: state,
generateHighQualityLinkPreview: false,
msgRetryCounterMap,
shouldIgnoreJid: (jid) =>
isJidBroadcast(jid) || isJidStatusBroadcast(jid),
@ -168,7 +169,11 @@ export default class WhatsappService extends Service {
message,
messageTimestamp,
} = webMessageInfo;
if (!fromMe && message && remoteJid !== "status@broadcast") {
const isValidMessage =
message &&
remoteJid !== "status@broadcast" &&
(!fromMe || (fromMe && !!message?.extendedTextMessage));
if (isValidMessage) {
const { audioMessage, documentMessage, imageMessage, videoMessage } =
message;
const isMediaMessage =
@ -210,20 +215,24 @@ export default class WhatsappService extends Service {
attachment = buffer.toString("base64");
}
// @ts-ignore
if (messageContent || attachment) {
const message =
webMessageInfo?.message?.conversation ??
webMessageInfo?.message?.extendedTextMessage?.text ??
webMessageInfo?.message?.imageMessage?.caption ??
webMessageInfo?.message?.videoMessage?.caption;
const conversation = message?.conversation;
const extendedTextMessage = message?.extendedTextMessage?.text;
const imageMessage = message?.imageMessage?.caption;
const videoMessage = message?.videoMessage?.caption;
const messageText = [
conversation,
extendedTextMessage,
imageMessage,
videoMessage,
].find((text) => text && text !== "");
const payload = {
to: botID,
from: webMessageInfo.key.remoteJid?.split("@")[0],
from: remoteJid?.split("@")[0],
messageId: id,
sentAt: new Date((messageTimestamp as number) * 1000).toISOString(),
message,
message: messageText,
attachment,
filename,
mimeType,
@ -296,7 +305,6 @@ export default class WhatsappService extends Service {
_lastReceivedDate: Date,
): Promise<proto.IWebMessageInfo[]> {
const connection = this.connections[botID]?.socket;
console.log({ connection });
const messages = await connection.loadAllUnreadMessages();
return messages;