From 797d8b67694d3e24968be5043b80accc4ca28ad4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Bachmann?= Date: Tue, 14 Apr 2026 10:59:25 +0000 Subject: [PATCH] add server.js --- server.js | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 server.js diff --git a/server.js b/server.js new file mode 100644 index 0000000..97e65f1 --- /dev/null +++ b/server.js @@ -0,0 +1,58 @@ +const { Client, LocalAuth } = require('whatsapp-web.js'); +const express = require('express'); +const qrcode = require('qrcode'); +const app = express(); + +app.use(express.json()); + +let lastQr = ""; +let isReady = false; + +// Wir speichern die Session im /data Ordner des Add-ons +const client = new Client({ + authStrategy: new LocalAuth({ dataPath: '/data/auth' }), + puppeteer: { + executablePath: '/usr/bin/chromium-browser', + args: ['--no-sandbox', '--disable-setuid-sandbox'] + } +}); + +client.on('qr', (qr) => { + lastQr = qr; + console.log('Neuer QR Code generiert. Bitte in der Web UI scannen.'); +}); + +client.on('ready', () => { + isReady = true; + lastQr = ""; + console.log('WhatsApp ist bereit!'); +}); + +// Webseite für den QR-Code (Ingress) +app.get('/', async (req, res) => { + if (isReady) { + res.send('

WhatsApp ist verbunden! ✅

'); + } else if (lastQr) { + const qrImage = await qrcode.toDataURL(lastQr); + res.send(`

WhatsApp Login

Scanne den Code mit deinem Handy:

`); + } else { + res.send('

Warte auf QR-Code...

Das kann beim ersten Start einen Moment dauern.

'); + } +}); + +// API-Endpunkt zum Senden +app.post('/send', async (req, res) => { + const { number, message } = req.body; + if (!isReady) return res.status(503).json({ error: 'Client nicht bereit' }); + + try { + const chatId = number.includes('@c.us') ? number : `${number}@c.us`; + await client.sendMessage(chatId, message); + res.json({ success: true }); + } catch (err) { + res.status(500).json({ error: err.message }); + } +}); + +client.initialize(); +app.listen(3000, () => console.log('Add-on Server läuft auf Port 3000')); \ No newline at end of file