whatsapp_bridge/server.js aktualisiert

This commit is contained in:
2026-04-14 11:35:47 +00:00
parent 6dac4820b5
commit e919933244

View File

@@ -8,18 +8,22 @@ app.use(express.json());
let lastQr = ""; let lastQr = "";
let isReady = false; let isReady = false;
// Wir speichern die Session im /data Ordner des Add-ons
const client = new Client({ const client = new Client({
authStrategy: new LocalAuth({ dataPath: '/data/auth' }), authStrategy: new LocalAuth({ dataPath: '/data/auth' }),
puppeteer: { puppeteer: {
executablePath: '/usr/bin/chromium-browser', executablePath: '/usr/bin/chromium-browser',
args: ['--no-sandbox', '--disable-setuid-sandbox'] args: [
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-dev-shm-usage',
'--disable-gpu'
]
} }
}); });
client.on('qr', (qr) => { client.on('qr', (qr) => {
lastQr = qr; lastQr = qr;
console.log('Neuer QR Code generiert. Bitte in der Web UI scannen.'); console.log('Neuer QR Code generiert.');
}); });
client.on('ready', () => { client.on('ready', () => {
@@ -28,19 +32,18 @@ client.on('ready', () => {
console.log('WhatsApp ist bereit!'); console.log('WhatsApp ist bereit!');
}); });
// Webseite für den QR-Code (Ingress) // Web UI für Ingress
app.get('/', async (req, res) => { app.get('/', async (req, res) => {
if (isReady) { if (isReady) {
res.send('<h1>WhatsApp ist verbunden! ✅</h1>'); res.send('<div style="text-align:center;font-family:sans-serif;"><h1>WhatsApp verbunden! ✅</h1><p>Du kannst dieses Fenster jetzt schließen.</p></div>');
} else if (lastQr) { } else if (lastQr) {
const qrImage = await qrcode.toDataURL(lastQr); const qrImage = await qrcode.toDataURL(lastQr);
res.send(`<h1>WhatsApp Login</h1><p>Scanne den Code mit deinem Handy:</p><img src="${qrImage}">`); res.send(`<div style="text-align:center;font-family:sans-serif;"><h1>WhatsApp Login</h1><p>Scanne den Code mit deinem Handy:</p><img src="${qrImage}"></div>`);
} else { } else {
res.send('<h1>Warte auf QR-Code...</h1><p>Das kann beim ersten Start einen Moment dauern.</p>'); res.send('<div style="text-align:center;font-family:sans-serif;"><h1>Warte auf QR-Code...</h1><p>Bitte Seite in 10 Sekunden neu laden.</p></div>');
} }
}); });
// API-Endpunkt zum Senden
app.post('/send', async (req, res) => { app.post('/send', async (req, res) => {
const { number, message } = req.body; const { number, message } = req.body;
if (!isReady) return res.status(503).json({ error: 'Client nicht bereit' }); if (!isReady) return res.status(503).json({ error: 'Client nicht bereit' });