@alannxd/baileys 2.1.4 → 3.0.0

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