@rexxhayanasi/elaina-baileys 1.1.0-rc.4 → 1.1.0-rc.6
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/README.MD +55 -14
- package/WAProto/WAProto.proto +1013 -169
- package/lib/Socket/Rhandler.js +158 -240
- package/lib/Socket/chats.js +96 -44
- package/lib/Socket/messages-send.js +13 -11
- package/lib/Socket/newsletter.js +36 -0
- package/lib/Socket/socket.js +14 -13
- package/package.json +2 -2
package/lib/Socket/Rhandler.js
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
|
|
5
|
+
const WAProto = require("../../WAProto").proto;
|
|
6
|
+
const crypto = require("crypto");
|
|
3
7
|
const Utils_1 = require("../Utils");
|
|
4
8
|
|
|
5
9
|
class RexxHayanasi {
|
|
@@ -7,39 +11,34 @@ class RexxHayanasi {
|
|
|
7
11
|
this.utils = utils;
|
|
8
12
|
this.relayMessage = relayMessageFn;
|
|
9
13
|
this.waUploadToServer = waUploadToServer;
|
|
10
|
-
|
|
11
14
|
this.bail = {
|
|
12
15
|
generateWAMessageContent: this.utils.generateWAMessageContent || Utils_1.generateWAMessageContent,
|
|
13
16
|
generateMessageID: Utils_1.generateMessageID,
|
|
14
|
-
// FIXED: safer getContentType guard
|
|
15
17
|
getContentType: (msg) => {
|
|
16
|
-
if (!msg || typeof msg !==
|
|
18
|
+
if (!msg || typeof msg !== "object") return null;
|
|
17
19
|
const m = msg.message || {};
|
|
18
|
-
if (typeof m !==
|
|
20
|
+
if (typeof m !== "object") return null;
|
|
19
21
|
return Object.keys(m)[0] || null;
|
|
20
22
|
}
|
|
21
23
|
};
|
|
22
24
|
}
|
|
23
25
|
|
|
24
26
|
detectType(content) {
|
|
25
|
-
if (content.requestPaymentMessage) return
|
|
26
|
-
if (content.productMessage) return
|
|
27
|
-
if (content.interactiveMessage) return
|
|
28
|
-
if (content.albumMessage) return
|
|
29
|
-
if (content.eventMessage) return
|
|
30
|
-
if (content.pollResultMessage) return
|
|
31
|
-
if (content.groupStatusMessage) return
|
|
27
|
+
if (content.requestPaymentMessage) return "PAYMENT";
|
|
28
|
+
if (content.productMessage) return "PRODUCT";
|
|
29
|
+
if (content.interactiveMessage) return "INTERACTIVE";
|
|
30
|
+
if (content.albumMessage) return "ALBUM";
|
|
31
|
+
if (content.eventMessage) return "EVENT";
|
|
32
|
+
if (content.pollResultMessage) return "POLL_RESULT";
|
|
33
|
+
if (content.groupStatusMessage) return "GROUP_STORY";
|
|
32
34
|
return null;
|
|
33
35
|
}
|
|
34
36
|
|
|
35
37
|
async handlePayment(content, quoted) {
|
|
36
|
-
// FIXED: Guard & error handling
|
|
37
38
|
const data = content?.requestPaymentMessage;
|
|
38
|
-
if (!data) throw new Error(
|
|
39
|
-
|
|
39
|
+
if (!data) throw new Error("Missing requestPaymentMessage in content");
|
|
40
40
|
try {
|
|
41
41
|
let notes = {};
|
|
42
|
-
|
|
43
42
|
if (data.sticker?.stickerMessage) {
|
|
44
43
|
notes = {
|
|
45
44
|
stickerMessage: {
|
|
@@ -63,7 +62,6 @@ class RexxHayanasi {
|
|
|
63
62
|
}
|
|
64
63
|
};
|
|
65
64
|
}
|
|
66
|
-
|
|
67
65
|
return {
|
|
68
66
|
requestPaymentMessage: WAProto.Message.RequestPaymentMessage.fromObject({
|
|
69
67
|
expiryTimestamp: data.expiry || 0,
|
|
@@ -73,55 +71,43 @@ class RexxHayanasi {
|
|
|
73
71
|
noteMessage: notes,
|
|
74
72
|
background: data.background ?? {
|
|
75
73
|
id: "DEFAULT",
|
|
76
|
-
placeholderArgb:
|
|
74
|
+
placeholderArgb: 0xfff0f0f0
|
|
77
75
|
}
|
|
78
76
|
})
|
|
79
77
|
};
|
|
80
78
|
} catch (err) {
|
|
81
|
-
console.error(
|
|
79
|
+
console.error("handlePayment error:", err);
|
|
82
80
|
throw err;
|
|
83
81
|
}
|
|
84
82
|
}
|
|
85
|
-
|
|
83
|
+
|
|
86
84
|
async handleProduct(content, jid, quoted) {
|
|
87
85
|
try {
|
|
88
86
|
const {
|
|
89
|
-
title = "",
|
|
90
|
-
description = "",
|
|
87
|
+
title = "",
|
|
88
|
+
description = "",
|
|
91
89
|
thumbnail,
|
|
92
|
-
productId,
|
|
93
|
-
retailerId,
|
|
94
|
-
url,
|
|
95
|
-
body = "",
|
|
96
|
-
footer = "",
|
|
90
|
+
productId,
|
|
91
|
+
retailerId,
|
|
92
|
+
url,
|
|
93
|
+
body = "",
|
|
94
|
+
footer = "",
|
|
97
95
|
buttons = [],
|
|
98
96
|
priceAmount1000 = null,
|
|
99
97
|
currencyCode = "IDR"
|
|
100
98
|
} = content.productMessage || {};
|
|
101
|
-
|
|
102
99
|
let productImage = null;
|
|
103
|
-
|
|
104
|
-
// FIXED: safer handling & fallback
|
|
105
100
|
if (thumbnail) {
|
|
106
101
|
try {
|
|
107
102
|
if (Buffer.isBuffer(thumbnail)) {
|
|
108
|
-
const res = await this.utils.generateWAMessageContent(
|
|
109
|
-
{ image: thumbnail },
|
|
110
|
-
{ upload: this.waUploadToServer }
|
|
111
|
-
);
|
|
103
|
+
const res = await this.utils.generateWAMessageContent({ image: thumbnail }, { upload: this.waUploadToServer });
|
|
112
104
|
productImage = res?.imageMessage || res?.message?.imageMessage || null;
|
|
113
|
-
} else if (typeof thumbnail ===
|
|
114
|
-
const res = await this.utils.generateWAMessageContent(
|
|
115
|
-
{ image: { url: thumbnail.url }},
|
|
116
|
-
{ upload: this.waUploadToServer }
|
|
117
|
-
);
|
|
105
|
+
} else if (typeof thumbnail === "object" && thumbnail.url) {
|
|
106
|
+
const res = await this.utils.generateWAMessageContent({ image: { url: thumbnail.url } }, { upload: this.waUploadToServer });
|
|
118
107
|
productImage = res?.imageMessage || res?.message?.imageMessage || null;
|
|
119
108
|
}
|
|
120
|
-
} catch
|
|
121
|
-
console.warn('Thumbnail upload failed', err);
|
|
122
|
-
}
|
|
109
|
+
} catch {}
|
|
123
110
|
}
|
|
124
|
-
|
|
125
111
|
const product = {
|
|
126
112
|
productId,
|
|
127
113
|
title,
|
|
@@ -132,9 +118,7 @@ class RexxHayanasi {
|
|
|
132
118
|
url,
|
|
133
119
|
productImageCount: productImage ? 1 : 0
|
|
134
120
|
};
|
|
135
|
-
|
|
136
121
|
if (productImage) product.productImage = productImage;
|
|
137
|
-
|
|
138
122
|
return {
|
|
139
123
|
viewOnceMessage: {
|
|
140
124
|
message: {
|
|
@@ -155,11 +139,11 @@ class RexxHayanasi {
|
|
|
155
139
|
}
|
|
156
140
|
};
|
|
157
141
|
} catch (err) {
|
|
158
|
-
console.error(
|
|
142
|
+
console.error("handleProduct error:", err);
|
|
159
143
|
throw err;
|
|
160
144
|
}
|
|
161
145
|
}
|
|
162
|
-
|
|
146
|
+
|
|
163
147
|
async handleInteractive(content, jid, quoted) {
|
|
164
148
|
try {
|
|
165
149
|
const {
|
|
@@ -178,96 +162,47 @@ class RexxHayanasi {
|
|
|
178
162
|
nativeFlowMessage,
|
|
179
163
|
header
|
|
180
164
|
} = content.interactiveMessage || {};
|
|
181
|
-
|
|
182
165
|
let media = null;
|
|
183
|
-
let mediaType = null;
|
|
184
|
-
|
|
185
166
|
if (thumbnail) {
|
|
167
|
+
media = await this.utils.prepareWAMessageMedia({ image: { url: thumbnail } }, { upload: this.waUploadToServer });
|
|
168
|
+
} else if (image) {
|
|
186
169
|
media = await this.utils.prepareWAMessageMedia(
|
|
187
|
-
{ image: { url:
|
|
170
|
+
typeof image === "object" && image.url ? { image: { url: image.url } } : { image },
|
|
188
171
|
{ upload: this.waUploadToServer }
|
|
189
172
|
);
|
|
190
|
-
mediaType = 'image';
|
|
191
|
-
} else if (image) {
|
|
192
|
-
if (typeof image === 'object' && image.url) {
|
|
193
|
-
media = await this.utils.prepareWAMessageMedia(
|
|
194
|
-
{ image: { url: image.url } },
|
|
195
|
-
{ upload: this.waUploadToServer }
|
|
196
|
-
);
|
|
197
|
-
} else {
|
|
198
|
-
media = await this.utils.prepareWAMessageMedia(
|
|
199
|
-
{ image },
|
|
200
|
-
{ upload: this.waUploadToServer }
|
|
201
|
-
);
|
|
202
|
-
}
|
|
203
|
-
mediaType = 'image';
|
|
204
173
|
} else if (video) {
|
|
205
|
-
if (typeof video === 'object' && video.url) {
|
|
206
|
-
media = await this.utils.prepareWAMessageMedia(
|
|
207
|
-
{ video: { url: video.url } },
|
|
208
|
-
{ upload: this.waUploadToServer }
|
|
209
|
-
);
|
|
210
|
-
} else {
|
|
211
|
-
media = await this.utils.prepareWAMessageMedia(
|
|
212
|
-
{ video },
|
|
213
|
-
{ upload: this.waUploadToServer }
|
|
214
|
-
);
|
|
215
|
-
}
|
|
216
|
-
mediaType = 'video';
|
|
217
|
-
} else if (document) {
|
|
218
|
-
let documentPayload = { document };
|
|
219
|
-
if (jpegThumbnail) {
|
|
220
|
-
if (typeof jpegThumbnail === 'object' && jpegThumbnail.url) {
|
|
221
|
-
documentPayload.jpegThumbnail = { url: jpegThumbnail.url };
|
|
222
|
-
} else {
|
|
223
|
-
documentPayload.jpegThumbnail = jpegThumbnail;
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
174
|
media = await this.utils.prepareWAMessageMedia(
|
|
227
|
-
|
|
175
|
+
typeof video === "object" && video.url ? { video: { url: video.url } } : { video },
|
|
228
176
|
{ upload: this.waUploadToServer }
|
|
229
177
|
);
|
|
178
|
+
} else if (document) {
|
|
179
|
+
const docPayload = { document };
|
|
180
|
+
if (jpegThumbnail) {
|
|
181
|
+
docPayload.jpegThumbnail = typeof jpegThumbnail === "object" && jpegThumbnail.url ? { url: jpegThumbnail.url } : jpegThumbnail;
|
|
182
|
+
}
|
|
183
|
+
media = await this.utils.prepareWAMessageMedia(docPayload, { upload: this.waUploadToServer });
|
|
230
184
|
if (fileName) media.documentMessage.fileName = fileName;
|
|
231
185
|
if (mimetype) media.documentMessage.mimetype = mimetype;
|
|
232
|
-
mediaType = 'document';
|
|
233
186
|
}
|
|
234
|
-
|
|
235
|
-
let interactiveMessage = {
|
|
187
|
+
const interactiveMessage = {
|
|
236
188
|
body: { text: title || "" },
|
|
237
189
|
footer: { text: footer || "" }
|
|
238
190
|
};
|
|
239
|
-
|
|
240
|
-
if (buttons && buttons.length > 0) {
|
|
191
|
+
if (buttons.length > 0) {
|
|
241
192
|
interactiveMessage.nativeFlowMessage = { buttons };
|
|
242
|
-
if (nativeFlowMessage)
|
|
243
|
-
interactiveMessage.nativeFlowMessage = {
|
|
244
|
-
...interactiveMessage.nativeFlowMessage,
|
|
245
|
-
...nativeFlowMessage
|
|
246
|
-
};
|
|
247
|
-
}
|
|
193
|
+
if (nativeFlowMessage) Object.assign(interactiveMessage.nativeFlowMessage, nativeFlowMessage);
|
|
248
194
|
} else if (nativeFlowMessage) {
|
|
249
195
|
interactiveMessage.nativeFlowMessage = nativeFlowMessage;
|
|
250
196
|
}
|
|
251
|
-
|
|
252
|
-
// FIXED: safer header spreading
|
|
253
197
|
if (media) {
|
|
254
198
|
const headerMedia = {};
|
|
255
199
|
if (media.imageMessage) headerMedia.imageMessage = media.imageMessage;
|
|
256
200
|
if (media.videoMessage) headerMedia.videoMessage = media.videoMessage;
|
|
257
201
|
if (media.documentMessage) headerMedia.documentMessage = media.documentMessage;
|
|
258
|
-
|
|
259
|
-
interactiveMessage.header = {
|
|
260
|
-
title: header || "",
|
|
261
|
-
hasMediaAttachment: true,
|
|
262
|
-
...headerMedia
|
|
263
|
-
};
|
|
202
|
+
interactiveMessage.header = { title: header || "", hasMediaAttachment: true, ...headerMedia };
|
|
264
203
|
} else {
|
|
265
|
-
interactiveMessage.header = {
|
|
266
|
-
title: header || "",
|
|
267
|
-
hasMediaAttachment: false
|
|
268
|
-
};
|
|
204
|
+
interactiveMessage.header = { title: header || "", hasMediaAttachment: false };
|
|
269
205
|
}
|
|
270
|
-
|
|
271
206
|
let finalContextInfo = {};
|
|
272
207
|
if (contextInfo) {
|
|
273
208
|
finalContextInfo = {
|
|
@@ -277,7 +212,6 @@ class RexxHayanasi {
|
|
|
277
212
|
...contextInfo
|
|
278
213
|
};
|
|
279
214
|
}
|
|
280
|
-
|
|
281
215
|
if (externalAdReply) {
|
|
282
216
|
finalContextInfo.externalAdReply = {
|
|
283
217
|
title: externalAdReply.title || "",
|
|
@@ -291,50 +225,44 @@ class RexxHayanasi {
|
|
|
291
225
|
...externalAdReply
|
|
292
226
|
};
|
|
293
227
|
}
|
|
294
|
-
|
|
295
228
|
if (Object.keys(finalContextInfo).length > 0) {
|
|
296
229
|
interactiveMessage.contextInfo = finalContextInfo;
|
|
297
230
|
}
|
|
298
|
-
|
|
299
231
|
return { interactiveMessage };
|
|
300
232
|
} catch (err) {
|
|
301
|
-
console.error(
|
|
233
|
+
console.error("handleInteractive error:", err);
|
|
302
234
|
throw err;
|
|
303
235
|
}
|
|
304
236
|
}
|
|
305
|
-
|
|
237
|
+
|
|
306
238
|
async handleAlbum(content, jid, quoted) {
|
|
307
239
|
try {
|
|
308
240
|
const array = Array.isArray(content.albumMessage) ? content.albumMessage : [];
|
|
309
|
-
if (array.length === 0) throw new Error(
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
messageSecret: crypto.randomBytes(32),
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
241
|
+
if (array.length === 0) throw new Error("albumMessage harus berupa array dengan isi media");
|
|
242
|
+
const album = await this.utils.generateWAMessageFromContent(
|
|
243
|
+
jid,
|
|
244
|
+
{
|
|
245
|
+
messageContextInfo: { messageSecret: crypto.randomBytes(32) },
|
|
246
|
+
albumMessage: {
|
|
247
|
+
expectedImageCount: array.filter((a) => a.image).length,
|
|
248
|
+
expectedVideoCount: array.filter((a) => a.video).length
|
|
249
|
+
}
|
|
318
250
|
},
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
251
|
+
{
|
|
252
|
+
userJid: this.utils.generateMessageID().split("@")[0] + "@s.whatsapp.net",
|
|
253
|
+
quoted,
|
|
254
|
+
upload: this.waUploadToServer
|
|
255
|
+
}
|
|
256
|
+
);
|
|
325
257
|
await this.relayMessage(jid, album.message, { messageId: album.key.id });
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
const img = await this.utils.generateWAMessage(jid, item, {
|
|
329
|
-
upload: this.waUploadToServer,
|
|
330
|
-
});
|
|
331
|
-
|
|
258
|
+
for (const item of array) {
|
|
259
|
+
const img = await this.utils.generateWAMessage(jid, item, { upload: this.waUploadToServer });
|
|
332
260
|
img.message.messageContextInfo = {
|
|
333
261
|
messageSecret: crypto.randomBytes(32),
|
|
334
262
|
messageAssociation: {
|
|
335
263
|
associationType: 1,
|
|
336
|
-
parentMessageKey: album.key
|
|
337
|
-
},
|
|
264
|
+
parentMessageKey: album.key
|
|
265
|
+
},
|
|
338
266
|
participant: "0@s.whatsapp.net",
|
|
339
267
|
remoteJid: "status@broadcast",
|
|
340
268
|
forwardingScore: 99999,
|
|
@@ -343,26 +271,20 @@ class RexxHayanasi {
|
|
|
343
271
|
starred: true,
|
|
344
272
|
labels: ["Y", "Important"],
|
|
345
273
|
isHighlighted: true,
|
|
346
|
-
businessMessageForwardInfo: {
|
|
347
|
-
|
|
348
|
-
},
|
|
349
|
-
dataSharingContext: {
|
|
350
|
-
showMmDisclosure: true,
|
|
351
|
-
},
|
|
274
|
+
businessMessageForwardInfo: { businessOwnerJid: jid },
|
|
275
|
+
dataSharingContext: { showMmDisclosure: true }
|
|
352
276
|
};
|
|
353
|
-
|
|
354
277
|
img.message.forwardedNewsletterMessageInfo = {
|
|
355
278
|
newsletterJid: "0@newsletter",
|
|
356
279
|
serverMessageId: 1,
|
|
357
|
-
newsletterName:
|
|
280
|
+
newsletterName: "WhatsApp",
|
|
358
281
|
contentType: 1,
|
|
359
282
|
timestamp: new Date().toISOString(),
|
|
360
283
|
senderName: "kikyy dugonggg",
|
|
361
284
|
content: "Text Message",
|
|
362
285
|
priority: "high",
|
|
363
|
-
status: "sent"
|
|
286
|
+
status: "sent"
|
|
364
287
|
};
|
|
365
|
-
|
|
366
288
|
img.message.disappearingMode = {
|
|
367
289
|
initiator: 3,
|
|
368
290
|
trigger: 4,
|
|
@@ -375,9 +297,8 @@ class RexxHayanasi {
|
|
|
375
297
|
initiatedByUser: true,
|
|
376
298
|
initiatedByApp: true,
|
|
377
299
|
initiatedByBot: true,
|
|
378
|
-
initiatedByMe: true
|
|
300
|
+
initiatedByMe: true
|
|
379
301
|
};
|
|
380
|
-
|
|
381
302
|
await this.relayMessage(jid, img.message, {
|
|
382
303
|
messageId: img.key.id,
|
|
383
304
|
quoted: {
|
|
@@ -385,98 +306,100 @@ class RexxHayanasi {
|
|
|
385
306
|
remoteJid: album.key.remoteJid,
|
|
386
307
|
id: album.key.id,
|
|
387
308
|
fromMe: true,
|
|
388
|
-
participant: this.utils.generateMessageID().split(
|
|
309
|
+
participant: this.utils.generateMessageID().split("@")[0] + "@s.whatsapp.net"
|
|
389
310
|
},
|
|
390
|
-
message: album.message
|
|
391
|
-
}
|
|
311
|
+
message: album.message
|
|
312
|
+
}
|
|
392
313
|
});
|
|
393
314
|
}
|
|
394
315
|
return album;
|
|
395
316
|
} catch (err) {
|
|
396
|
-
console.error(
|
|
317
|
+
console.error("handleAlbum error:", err);
|
|
397
318
|
throw err;
|
|
398
319
|
}
|
|
399
|
-
}
|
|
320
|
+
}
|
|
400
321
|
|
|
401
322
|
async handleEvent(content, jid, quoted) {
|
|
402
323
|
try {
|
|
403
324
|
const eventData = content.eventMessage;
|
|
404
|
-
if (!eventData) throw new Error(
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
eventMessage: {
|
|
421
|
-
contextInfo: {
|
|
422
|
-
mentionedJid: [jid],
|
|
423
|
-
participant: jid,
|
|
424
|
-
remoteJid: "status@broadcast",
|
|
425
|
-
forwardedNewsletterMessageInfo: {
|
|
426
|
-
newsletterName: "shenvn.",
|
|
427
|
-
newsletterJid: "120363297591152843@newsletter",
|
|
428
|
-
serverMessageId: 1
|
|
429
|
-
}
|
|
325
|
+
if (!eventData) throw new Error("Missing eventMessage");
|
|
326
|
+
const msg = await this.utils.generateWAMessageFromContent(
|
|
327
|
+
jid,
|
|
328
|
+
{
|
|
329
|
+
viewOnceMessage: {
|
|
330
|
+
message: {
|
|
331
|
+
messageContextInfo: {
|
|
332
|
+
deviceListMetadata: {},
|
|
333
|
+
deviceListMetadataVersion: 2,
|
|
334
|
+
messageSecret: crypto.randomBytes(32),
|
|
335
|
+
supportPayload: JSON.stringify({
|
|
336
|
+
version: 2,
|
|
337
|
+
is_ai_message: true,
|
|
338
|
+
should_show_system_message: true,
|
|
339
|
+
ticket_id: crypto.randomBytes(16).toString("hex")
|
|
340
|
+
})
|
|
430
341
|
},
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
342
|
+
eventMessage: {
|
|
343
|
+
contextInfo: {
|
|
344
|
+
mentionedJid: [jid],
|
|
345
|
+
participant: jid,
|
|
346
|
+
remoteJid: "status@broadcast",
|
|
347
|
+
forwardedNewsletterMessageInfo: {
|
|
348
|
+
newsletterName: "shenvn.",
|
|
349
|
+
newsletterJid: "120363297591152843@newsletter",
|
|
350
|
+
serverMessageId: 1
|
|
351
|
+
}
|
|
352
|
+
},
|
|
353
|
+
isCanceled: eventData.isCanceled || false,
|
|
354
|
+
name: eventData.name,
|
|
355
|
+
description: eventData.description,
|
|
356
|
+
location: eventData.location || {
|
|
357
|
+
degreesLatitude: 0,
|
|
358
|
+
degreesLongitude: 0,
|
|
359
|
+
name: "Location"
|
|
360
|
+
},
|
|
361
|
+
joinLink: eventData.joinLink || "",
|
|
362
|
+
startTime: typeof eventData.startTime === "string" ? parseInt(eventData.startTime) : eventData.startTime || Date.now(),
|
|
363
|
+
endTime: typeof eventData.endTime === "string" ? parseInt(eventData.endTime) : eventData.endTime || Date.now() + 3600000,
|
|
364
|
+
extraGuestsAllowed: eventData.extraGuestsAllowed !== false
|
|
365
|
+
}
|
|
443
366
|
}
|
|
444
367
|
}
|
|
445
|
-
}
|
|
446
|
-
|
|
447
|
-
|
|
368
|
+
},
|
|
369
|
+
{ quoted }
|
|
370
|
+
);
|
|
448
371
|
await this.relayMessage(jid, msg.message, { messageId: msg.key.id });
|
|
449
372
|
return msg;
|
|
450
373
|
} catch (err) {
|
|
451
|
-
console.error(
|
|
374
|
+
console.error("handleEvent error:", err);
|
|
452
375
|
throw err;
|
|
453
376
|
}
|
|
454
377
|
}
|
|
455
|
-
|
|
378
|
+
|
|
456
379
|
async handlePollResult(content, jid, quoted) {
|
|
457
380
|
try {
|
|
458
381
|
const pollData = content.pollResultMessage;
|
|
459
|
-
if (!pollData) throw new Error(
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
?
|
|
468
|
-
|
|
469
|
-
}
|
|
382
|
+
if (!pollData) throw new Error("Missing pollResultMessage");
|
|
383
|
+
const msg = await this.utils.generateWAMessageFromContent(
|
|
384
|
+
jid,
|
|
385
|
+
{
|
|
386
|
+
pollResultSnapshotMessage: {
|
|
387
|
+
name: pollData.name,
|
|
388
|
+
pollVotes: (pollData.pollVotes || []).map((v) => ({
|
|
389
|
+
optionName: v.optionName,
|
|
390
|
+
optionVoteCount: typeof v.optionVoteCount === "number" ? v.optionVoteCount.toString() : v.optionVoteCount
|
|
391
|
+
}))
|
|
392
|
+
}
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
userJid: this.utils.generateMessageID().split("@")[0] + "@s.whatsapp.net",
|
|
396
|
+
quoted
|
|
470
397
|
}
|
|
471
|
-
|
|
472
|
-
userJid: this.utils.generateMessageID().split('@')[0] + '@s.whatsapp.net',
|
|
473
|
-
quoted
|
|
474
|
-
});
|
|
475
|
-
|
|
398
|
+
);
|
|
476
399
|
await this.relayMessage(jid, msg.message, { messageId: msg.key.id });
|
|
477
400
|
return msg;
|
|
478
401
|
} catch (err) {
|
|
479
|
-
console.error(
|
|
402
|
+
console.error("handlePollResult error:", err);
|
|
480
403
|
throw err;
|
|
481
404
|
}
|
|
482
405
|
}
|
|
@@ -484,44 +407,39 @@ class RexxHayanasi {
|
|
|
484
407
|
async handleGroupStory(content, jid, quoted) {
|
|
485
408
|
try {
|
|
486
409
|
const storyData = content.groupStatusMessage;
|
|
487
|
-
if (!storyData) throw new Error(
|
|
488
|
-
|
|
410
|
+
if (!storyData) throw new Error("Missing groupStatusMessage");
|
|
489
411
|
let waMsgContent;
|
|
490
412
|
if (storyData.message) {
|
|
491
413
|
waMsgContent = storyData;
|
|
414
|
+
} else if (typeof this.bail?.generateWAMessageContent === "function") {
|
|
415
|
+
waMsgContent = await this.bail.generateWAMessageContent(storyData, {
|
|
416
|
+
upload: this.waUploadToServer
|
|
417
|
+
});
|
|
418
|
+
} else if (typeof this.utils?.generateWAMessageContent === "function") {
|
|
419
|
+
waMsgContent = await this.utils.generateWAMessageContent(storyData, {
|
|
420
|
+
upload: this.waUploadToServer
|
|
421
|
+
});
|
|
422
|
+
} else if (typeof this.utils?.prepareMessageContent === "function") {
|
|
423
|
+
waMsgContent = await this.utils.prepareMessageContent(storyData, {
|
|
424
|
+
upload: this.waUploadToServer
|
|
425
|
+
});
|
|
492
426
|
} else {
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
});
|
|
497
|
-
} else if (typeof this.utils?.generateWAMessageContent === "function") {
|
|
498
|
-
waMsgContent = await this.utils.generateWAMessageContent(storyData, {
|
|
499
|
-
upload: this.waUploadToServer
|
|
500
|
-
});
|
|
501
|
-
} else if (typeof this.utils?.prepareMessageContent === "function") {
|
|
502
|
-
waMsgContent = await this.utils.prepareMessageContent(storyData, {
|
|
503
|
-
upload: this.waUploadToServer
|
|
504
|
-
});
|
|
505
|
-
} else {
|
|
506
|
-
waMsgContent = await Utils_1.generateWAMessageContent(storyData, {
|
|
507
|
-
upload: this.waUploadToServer
|
|
508
|
-
});
|
|
509
|
-
}
|
|
427
|
+
waMsgContent = await Utils_1.generateWAMessageContent(storyData, {
|
|
428
|
+
upload: this.waUploadToServer
|
|
429
|
+
});
|
|
510
430
|
}
|
|
511
|
-
|
|
512
|
-
let msg = {
|
|
431
|
+
const msg = {
|
|
513
432
|
message: {
|
|
514
433
|
groupStatusMessageV2: {
|
|
515
434
|
message: waMsgContent.message || waMsgContent
|
|
516
435
|
}
|
|
517
436
|
}
|
|
518
437
|
};
|
|
519
|
-
|
|
520
438
|
return await this.relayMessage(jid, msg.message, {
|
|
521
439
|
messageId: this.bail.generateMessageID()
|
|
522
440
|
});
|
|
523
441
|
} catch (err) {
|
|
524
|
-
console.error(
|
|
442
|
+
console.error("handleGroupStory error:", err);
|
|
525
443
|
throw err;
|
|
526
444
|
}
|
|
527
445
|
}
|