Deploy: 2026-05-22 01:25:54
This commit is contained in:
@@ -104,12 +104,15 @@ async function startSession(session_key, webhook_url) {
|
||||
msg.message?.videoMessage?.caption || '';
|
||||
|
||||
const isAudio = !!msg.message?.audioMessage;
|
||||
const isImage = !!msg.message?.imageMessage;
|
||||
|
||||
// Only process messages that have text content OR are audio messages
|
||||
if (!body && !isAudio) continue;
|
||||
// Only process messages that have text content OR are audio/image messages
|
||||
if (!body && !isAudio && !isImage) continue;
|
||||
|
||||
let audioBase64 = null;
|
||||
let audioMimeType = null;
|
||||
let imageBase64 = null;
|
||||
let imageMimeType = null;
|
||||
|
||||
if (isAudio) {
|
||||
try {
|
||||
@@ -129,6 +132,24 @@ async function startSession(session_key, webhook_url) {
|
||||
console.error('[Baileys] Failed to download audio message:', e.message);
|
||||
continue; // Skip if audio download fails to prevent empty processing
|
||||
}
|
||||
} else if (isImage) {
|
||||
try {
|
||||
console.log(`[Baileys] Downloading image message for ${remoteJid}`);
|
||||
const buffer = await downloadMediaMessage(
|
||||
msg,
|
||||
'buffer',
|
||||
{},
|
||||
{
|
||||
logger: pino({ level: 'silent' }),
|
||||
rekey: true
|
||||
}
|
||||
);
|
||||
imageBase64 = buffer.toString('base64');
|
||||
imageMimeType = msg.message.imageMessage.mimetype || 'image/jpeg';
|
||||
} catch (e) {
|
||||
console.error('[Baileys] Failed to download image message:', e.message);
|
||||
continue; // Skip if image download fails
|
||||
}
|
||||
}
|
||||
|
||||
// Extract sender phone number (handle LID privacy scheme)
|
||||
@@ -147,6 +168,8 @@ async function startSession(session_key, webhook_url) {
|
||||
|
||||
if (isAudio) {
|
||||
console.log(`[Message] Received audio voice note from ${senderPhone} (JID: ${remoteJid})`);
|
||||
} else if (isImage) {
|
||||
console.log(`[Message] Received image from ${senderPhone} (JID: ${remoteJid})`);
|
||||
} else {
|
||||
console.log(`[Message] Received from ${senderPhone} (JID: ${remoteJid}): ${body}`);
|
||||
}
|
||||
@@ -161,6 +184,8 @@ async function startSession(session_key, webhook_url) {
|
||||
body: body,
|
||||
audio: audioBase64,
|
||||
mimeType: audioMimeType,
|
||||
image: imageBase64,
|
||||
imageMimeType: imageMimeType,
|
||||
timestamp: msg.messageTimestamp
|
||||
}
|
||||
});
|
||||
@@ -285,9 +310,14 @@ async function sendMessage(session_key, phone, message, mediaUrl = null) {
|
||||
return await sock.sendMessage(jid, { text: message });
|
||||
}
|
||||
|
||||
function getActiveSessions() {
|
||||
return Array.from(sessions.keys());
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
startSession,
|
||||
disconnectSession,
|
||||
sendMessage
|
||||
sendMessage,
|
||||
getActiveSessions
|
||||
};
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ for (const p of envPaths) {
|
||||
|
||||
const express = require('express');
|
||||
const cors = require('cors');
|
||||
const { startSession, disconnectSession, sendMessage } = require('./baileys-client');
|
||||
const { startSession, disconnectSession, sendMessage, getActiveSessions } = require('./baileys-client');
|
||||
|
||||
const app = express();
|
||||
app.use(cors());
|
||||
@@ -78,7 +78,7 @@ app.post('/api/sessions/disconnect', async (req, res) => {
|
||||
|
||||
// Get list of active session keys in memory
|
||||
app.get('/api/sessions/active', (req, res) => {
|
||||
res.json({ status: 'success', active_sessions: Array.from(sessions.keys()) });
|
||||
res.json({ status: 'success', active_sessions: getActiveSessions() });
|
||||
});
|
||||
|
||||
// Send outbound message
|
||||
|
||||
Reference in New Issue
Block a user