File size: 2,135 Bytes
eed270f
29f52ca
eed270f
29f52ca
 
 
eed270f
2ba79da
eed270f
 
 
 
eefda52
29f52ca
 
 
 
 
 
 
 
 
 
eefda52
 
 
 
29f52ca
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
eefda52
29f52ca
 
eefda52
29f52ca
 
 
 
 
 
eed270f
29f52ca
 
 
eed270f
29f52ca
 
eefda52
29f52ca
eefda52
29f52ca
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
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();