zi / app.js
codeBOKER's picture
Update app.js
29f52ca verified
Raw
History Blame Contribute Delete
2.14 kB
require("dotenv").config();
const {
default: makeWASocket,
DisconnectReason,
useMultiFileAuthState,
} = require("@whiskeysockets/baileys");
const qrcode = require("qrcode-terminal");
const pino = require("pino");
async function startWhatsApp() {
try {
console.log("πŸš€ Starting WhatsApp...");
const { state, saveCreds } =
await useMultiFileAuthState("./auth");
const sock = makeWASocket({
auth: state,
logger: pino({ level: "debug" }),
printQRInTerminal: false,
});
sock.ev.on("creds.update", saveCreds);
sock.ev.on("connection.update", async (update) => {
console.log("\n========== CONNECTION UPDATE ==========");
console.log(JSON.stringify(update, null, 2));
const { connection, lastDisconnect, qr } = update;
if (qr) {
console.log("\nπŸ“± QR RECEIVED\n");
qrcode.generate(qr, { small: true });
}
if (connection === "open") {
console.log("βœ… WhatsApp Connected");
}
if (connection === "connecting") {
console.log("πŸ”„ Connecting...");
}
if (connection === "close") {
const statusCode =
lastDisconnect?.error?.output?.statusCode;
console.log(
`❌ Connection Closed. Status Code: ${statusCode}`
);
console.error(
"Disconnect Error:",
lastDisconnect?.error
);
const loggedOut =
statusCode === DisconnectReason.loggedOut ||
statusCode === 401;
if (!loggedOut) {
console.log("πŸ”„ Reconnecting in 5 seconds...");
setTimeout(startWhatsApp, 5000);
} else {
console.log(
"🚫 Logged out. Delete auth folder and rescan."
);
}
}
});
sock.ev.on("messages.upsert", (msg) => {
console.log(
"πŸ“¨ Message Event:",
JSON.stringify(msg, null, 2)
);
});
} catch (err) {
console.error("πŸ”₯ Fatal Error");
console.error(err);
console.log("πŸ”„ Restarting in 10 seconds...");
setTimeout(startWhatsApp, 10000);
}
}
startWhatsApp();