diff --git a/routes/qr.js b/routes/qr.js index a6c197e..935ffb3 100644 --- a/routes/qr.js +++ b/routes/qr.js @@ -18,12 +18,12 @@ const { downloadContentFromMessage, generateWAMessageFromContent, normalizeMessageContent, - fetchLatestBaileysVersion + fetchLatestBaileysVersion, + makeCacheableSignalKeyStore // Added necessary cryptographic key dependency } = require("@whiskeysockets/baileys"); const sessionDir = path.join(__dirname, "session"); - router.get('/', async (req, res) => { const id = casperId(); let responseSent = false; @@ -32,7 +32,11 @@ router.get('/', async (req, res) => { async function cleanUpSession() { if (!sessionCleanedUp) { - await removeFile(path.join(sessionDir, id)); + try { + await removeFile(path.join(sessionDir, id)); + } catch (cleanupError) { + console.error("Cleanup error:", cleanupError); + } sessionCleanedUp = true; } } @@ -40,12 +44,17 @@ router.get('/', async (req, res) => { async function CASPER_QR_CODE() { const { version } = await fetchLatestBaileysVersion(); const { state, saveCreds } = await useMultiFileAuthState(path.join(sessionDir, id)); + const logger = pino({ level: "silent" }).child({ level: "silent" }); + try { let Casper = casperConnect({ version, - auth: state, + auth: { + creds: state.creds, + keys: makeCacheableSignalKeyStore(state.keys, logger), // Fixed malformed auth state mapping + }, printQRInTerminal: false, - logger: pino({ level: "silent" }), + logger: logger, browser: Browsers.macOS("Desktop"), connectTimeoutMs: 60000, keepAliveIntervalMs: 30000 @@ -56,233 +65,236 @@ router.get('/', async (req, res) => { const { connection, lastDisconnect, qr } = s; if (qr && !responseSent) { - const qrImage = await QRCode.toDataURL(qr); - if (!res.headersSent) { - res.send(` - - -
-Scan this QR code with your phone to connect
- Back -