This commit is contained in:
julien 2025-05-07 11:03:28 +02:00
parent d01955c1f7
commit a5b6717920
3 changed files with 64 additions and 2 deletions

View File

@ -4,6 +4,8 @@ const path = require('path');
const fs = require('fs');
const NodeCache = require('node-cache');
const mime = require('mime-types');
const fetch = require('node-fetch'); // en haut si pas encore ajouté
const {
default: makeWASocket,
@ -14,7 +16,20 @@ const {
generateWAMessageFromContent,
prepareWAMessageMedia
} = require('@fizzxydev/baileys-pro');
const http = require('http');
const WebSocket = require('ws');
const server = http.createServer(app);
const wss = new WebSocket.Server({ server });
function broadcastToClients(data) {
const message = JSON.stringify(data);
wss.clients.forEach(client => {
if (client.readyState === WebSocket.OPEN) {
client.send(message);
}
});
}
const app = express();
app.use(express.json());
app.use(express.static('public'));
@ -31,6 +46,11 @@ async function getMessageFromStore(key) {
// À adapter selon ta logique réelle
return { conversation: "Message temporaire pour retry" };
}
app.post('/webhook/status', (req, res) => {
console.log('📩 Webhook reçu :', req.body);
res.sendStatus(200);
});
const initBaileys = async () => {
const { version } = await fetchLatestBaileysVersion();
@ -108,7 +128,13 @@ const initBaileys = async () => {
}
});
};
sock.ev.on('messages.update', async (updates) => {
broadcastToClients({
messageId,
status,
jid
});
});
initBaileys();
app.use('/static', express.static(path.join(__dirname, 'public')));

View File

@ -14,7 +14,9 @@
"qrcode": "^1.5.1",
"sharp": "^0.33.0",
"node-cache": "^5.1.2",
"mime-types": "^2.1.35"
"mime-types": "^2.1.35",
"ws": "^8.0.0",
"node-fetch": "^3.3.2"
}

34
public/dashboard.html Normal file
View File

@ -0,0 +1,34 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Status des messages WhatsApp</title>
<style>
body { font-family: sans-serif; padding: 20px; background: #f5f5f5; }
h1 { color: #333; }
.message {
background: white;
padding: 10px;
margin-bottom: 10px;
border-left: 4px solid #4CAF50;
}
</style>
</head>
<body>
<h1>📊 Suivi des messages WhatsApp</h1>
<div id="log"></div>
<script>
const logContainer = document.getElementById('log');
const ws = new WebSocket('ws://' + location.host);
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
const div = document.createElement('div');
div.className = 'message';
div.innerHTML = `<strong>${data.status}</strong> pour <code>${data.jid}</code><br>ID: <code>${data.messageId}</code>`;
logContainer.prepend(div);
};
</script>
</body>
</html>