codeBOKER commited on
Commit
29f52ca
Β·
verified Β·
1 Parent(s): e49dd93

Update app.js

Browse files
Files changed (1) hide show
  1. app.js +71 -86
app.js CHANGED
@@ -1,105 +1,90 @@
1
  require("dotenv").config();
 
2
  const {
3
- default: makeWASocket,
4
- DisconnectReason
 
5
  } = require("@whiskeysockets/baileys");
6
 
7
- const express = require("express");
8
  const qrcode = require("qrcode-terminal");
9
  const pino = require("pino");
10
- const axios = require("axios");
11
- const fs = require("fs");
12
- const crypto = require("crypto");
13
-
14
- const app = express();
15
-
16
- app.use(express.json());
17
-
18
- const PORT = process.env.PORT || 7860;
19
-
20
- const SEND_WEBHOOK_URL = process.env.LLM_WEBHOOK_URL+"/whatsapp";
21
-
22
-
23
- let sock = null;
24
- let isReconnecting = false;
25
-
26
 
27
  async function startWhatsApp() {
28
  try {
 
 
 
 
 
 
 
 
 
 
29
 
30
  sock.ev.on("creds.update", saveCreds);
31
 
32
  sock.ev.on("connection.update", async (update) => {
33
- const {
34
- connection,
35
- lastDisconnect,
36
- qr
37
- } = update;
38
-
39
- console.log("con", connection);
40
- console.log("qr", qr);
41
- console.log("------------");
42
- if (qr) {
43
- console.log("\nπŸ“± Scan QR Code:\n");
44
- qrcode.generate(qr, { small: true });
45
- }
46
-
47
- if (connection === "open") {
48
- console.log("βœ… WhatsApp Connected");
49
- isReconnecting = false;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50
  }
 
 
51
 
52
- if (connection === "close") {
53
- const statusCode =
54
- lastDisconnect?.error?.output?.statusCode;
55
-
56
- console.log(
57
- `❌ Connection closed. Status: ${statusCode}`
58
- );
59
-
60
- const shouldLogout =
61
- statusCode === 401 ||
62
- statusCode === 405 ||
63
- statusCode === DisconnectReason.loggedOut;
64
-
65
- if (shouldLogout) {
66
- console.log(
67
- "🧹 Session invalid. Removing auth folder..."
68
- );
69
-
70
- setTimeout(() => {
71
- startWhatsApp();
72
- }, 3000);
73
-
74
- return;
75
- }
76
-
77
- if (!isReconnecting) {
78
- isReconnecting = true;
79
 
80
- console.log(
81
- "πŸ”„ Reconnecting in 5 seconds..."
82
- );
83
 
84
- setTimeout(() => {
85
- isReconnecting = false;
86
- startWhatsApp();
87
- }, 5000);
88
- }
89
- }
90
- });
91
  }
92
- };
93
- app.get("/", (req, res) => {
94
- res.json({
95
- status: "running"
96
- });
97
- });
98
-
99
- app.listen(PORT, () => {
100
- console.log(
101
- `πŸš€ Server running on port ${PORT}`
102
- );
103
 
104
- startWhatsApp();
105
- });
 
1
  require("dotenv").config();
2
+
3
  const {
4
+ default: makeWASocket,
5
+ DisconnectReason,
6
+ useMultiFileAuthState,
7
  } = require("@whiskeysockets/baileys");
8
 
 
9
  const qrcode = require("qrcode-terminal");
10
  const pino = require("pino");
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
 
12
  async function startWhatsApp() {
13
  try {
14
+ console.log("πŸš€ Starting WhatsApp...");
15
+
16
+ const { state, saveCreds } =
17
+ await useMultiFileAuthState("./auth");
18
+
19
+ const sock = makeWASocket({
20
+ auth: state,
21
+ logger: pino({ level: "debug" }),
22
+ printQRInTerminal: false,
23
+ });
24
 
25
  sock.ev.on("creds.update", saveCreds);
26
 
27
  sock.ev.on("connection.update", async (update) => {
28
+ console.log("\n========== CONNECTION UPDATE ==========");
29
+ console.log(JSON.stringify(update, null, 2));
30
+
31
+ const { connection, lastDisconnect, qr } = update;
32
+
33
+ if (qr) {
34
+ console.log("\nπŸ“± QR RECEIVED\n");
35
+ qrcode.generate(qr, { small: true });
36
+ }
37
+
38
+ if (connection === "open") {
39
+ console.log("βœ… WhatsApp Connected");
40
+ }
41
+
42
+ if (connection === "connecting") {
43
+ console.log("πŸ”„ Connecting...");
44
+ }
45
+
46
+ if (connection === "close") {
47
+ const statusCode =
48
+ lastDisconnect?.error?.output?.statusCode;
49
+
50
+ console.log(
51
+ `❌ Connection Closed. Status Code: ${statusCode}`
52
+ );
53
+
54
+ console.error(
55
+ "Disconnect Error:",
56
+ lastDisconnect?.error
57
+ );
58
+
59
+ const loggedOut =
60
+ statusCode === DisconnectReason.loggedOut ||
61
+ statusCode === 401;
62
+
63
+ if (!loggedOut) {
64
+ console.log("πŸ”„ Reconnecting in 5 seconds...");
65
+ setTimeout(startWhatsApp, 5000);
66
+ } else {
67
+ console.log(
68
+ "🚫 Logged out. Delete auth folder and rescan."
69
+ );
70
  }
71
+ }
72
+ });
73
 
74
+ sock.ev.on("messages.upsert", (msg) => {
75
+ console.log(
76
+ "πŸ“¨ Message Event:",
77
+ JSON.stringify(msg, null, 2)
78
+ );
79
+ });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
80
 
81
+ } catch (err) {
82
+ console.error("πŸ”₯ Fatal Error");
83
+ console.error(err);
84
 
85
+ console.log("πŸ”„ Restarting in 10 seconds...");
86
+ setTimeout(startWhatsApp, 10000);
 
 
 
 
 
87
  }
88
+ }
 
 
 
 
 
 
 
 
 
 
89
 
90
+ startWhatsApp();