Deploy: 2026-05-22 01:25:54

This commit is contained in:
Hamza-Ayed
2026-05-22 01:25:54 +03:00
parent da7d3571e0
commit e5c6c54ca0
5 changed files with 240 additions and 8 deletions

View File

@@ -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
};

View File

@@ -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