| const { |
| default: makeWASocket, |
| useMultiFileAuthState, |
| DisconnectReason |
| } = require("@whiskeysockets/baileys"); |
|
|
| const readline = require("readline"); |
| const { execSync } = require("child_process"); |
|
|
| |
| function run(cmd) { |
| try { |
| execSync(cmd, { stdio: "inherit", shell: "/bin/bash" }); |
| } catch (e) { |
| console.error("Failed:", cmd); |
| } |
| } |
|
|
| |
| let baileysVersion = "unknown"; |
|
|
| try { |
| baileysVersion = execSync("npm view @whiskeysockets/baileys version") |
| .toString() |
| .trim(); |
| } catch (_) {} |
|
|
| console.log("π¦ Baileys Version:", baileysVersion); |
|
|
| |
| const rl = readline.createInterface({ |
| input: process.stdin, |
| output: process.stdout |
| }); |
|
|
| async function startBot() { |
| const { state, saveCreds } = await useMultiFileAuthState("./session"); |
|
|
| const sock = makeWASocket({ |
| auth: state, |
| printQRInTerminal: false |
| }); |
|
|
| sock.ev.on("creds.update", saveCreds); |
|
|
| sock.ev.on("connection.update", (update) => { |
| const { connection, lastDisconnect } = update; |
|
|
| if (connection === "open") { |
| console.log("β
WhatsApp Connected"); |
|
|
| run("echo Bot started successfully"); |
|
|
| rl.close(); |
| } |
|
|
| if (connection === "close") { |
| const code = lastDisconnect?.error?.output?.statusCode; |
|
|
| if (code !== DisconnectReason.loggedOut) { |
| console.log("π Connection closed. Reconnecting..."); |
| startBot(); |
| } else { |
| console.log("β Logged out"); |
| } |
| } |
| }); |
|
|
| |
| if (!sock.authState.creds.registered) { |
| rl.question("π± Enter WhatsApp number (e.g. 15551234567): ", async (num) => { |
| try { |
| const code = await sock.requestPairingCode(num.trim()); |
| console.log("π Pairing Code:", code); |
|
|
| run("echo Pairing code generated"); |
| } catch (_) { |
| console.log("β οΈ Failed to generate pairing code"); |
| } |
| }); |
| } |
| } |
|
|
| startBot(); |