@ostyado/baileys 1.1.7 → 1.1.8

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.
Files changed (105) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +94 -27
  3. package/lib/Defaults/baileys-version.json +1 -1
  4. package/lib/Socket/chats.js +20 -1
  5. package/lib/Socket/dugong.js +160 -7
  6. package/lib/Socket/messages-send.js +132 -210
  7. package/lib/Socket/newsletter.js +132 -34
  8. package/lib/Utils/generics.js +80 -5
  9. package/lib/Utils/messages.js +36 -1
  10. package/lib/index.js +11 -4
  11. package/package.json +3 -3
  12. package/lib/Defaults/index.d.ts +0 -53
  13. package/lib/Signal/Group/ciphertext-message.d.ts +0 -9
  14. package/lib/Signal/Group/group-session-builder.d.ts +0 -14
  15. package/lib/Signal/Group/group_cipher.d.ts +0 -17
  16. package/lib/Signal/Group/index.d.ts +0 -11
  17. package/lib/Signal/Group/keyhelper.d.ts +0 -10
  18. package/lib/Signal/Group/queue-job.d.ts +0 -1
  19. package/lib/Signal/Group/sender-chain-key.d.ts +0 -13
  20. package/lib/Signal/Group/sender-key-distribution-message.d.ts +0 -16
  21. package/lib/Signal/Group/sender-key-message.d.ts +0 -18
  22. package/lib/Signal/Group/sender-key-name.d.ts +0 -17
  23. package/lib/Signal/Group/sender-key-record.d.ts +0 -30
  24. package/lib/Signal/Group/sender-key-state.d.ts +0 -38
  25. package/lib/Signal/Group/sender-message-key.d.ts +0 -11
  26. package/lib/Signal/libsignal.d.ts +0 -3
  27. package/lib/Socket/Client/abstract-socket-client.d.ts +0 -17
  28. package/lib/Socket/Client/index.d.ts +0 -3
  29. package/lib/Socket/Client/mobile-socket-client.d.ts +0 -13
  30. package/lib/Socket/Client/web-socket-client.d.ts +0 -12
  31. package/lib/Socket/business.d.ts +0 -171
  32. package/lib/Socket/chats.d.ts +0 -267
  33. package/lib/Socket/dugong.d.ts +0 -254
  34. package/lib/Socket/groups.d.ts +0 -115
  35. package/lib/Socket/index.d.ts +0 -173
  36. package/lib/Socket/messages-recv.d.ts +0 -161
  37. package/lib/Socket/messages-send.d.ts +0 -149
  38. package/lib/Socket/newsletter.d.ts +0 -134
  39. package/lib/Socket/registration.d.ts +0 -267
  40. package/lib/Socket/socket.d.ts +0 -43
  41. package/lib/Socket/usync.d.ts +0 -36
  42. package/lib/Store/index.d.ts +0 -3
  43. package/lib/Store/make-cache-manager-store.d.ts +0 -13
  44. package/lib/Store/make-in-memory-store.d.ts +0 -118
  45. package/lib/Store/make-ordered-dictionary.d.ts +0 -13
  46. package/lib/Store/object-repository.d.ts +0 -10
  47. package/lib/Types/Auth.d.ts +0 -110
  48. package/lib/Types/Call.d.ts +0 -13
  49. package/lib/Types/Chat.d.ts +0 -102
  50. package/lib/Types/Contact.d.ts +0 -19
  51. package/lib/Types/Events.d.ts +0 -157
  52. package/lib/Types/GroupMetadata.d.ts +0 -55
  53. package/lib/Types/Label.d.ts +0 -35
  54. package/lib/Types/LabelAssociation.d.ts +0 -29
  55. package/lib/Types/Message.d.ts +0 -273
  56. package/lib/Types/Newsletter.d.ts +0 -103
  57. package/lib/Types/Product.d.ts +0 -78
  58. package/lib/Types/Signal.d.ts +0 -57
  59. package/lib/Types/Socket.d.ts +0 -111
  60. package/lib/Types/State.d.ts +0 -27
  61. package/lib/Types/USync.d.ts +0 -25
  62. package/lib/Types/index.d.ts +0 -57
  63. package/lib/Utils/auth-utils.d.ts +0 -18
  64. package/lib/Utils/baileys-event-stream.d.ts +0 -16
  65. package/lib/Utils/business.d.ts +0 -22
  66. package/lib/Utils/chat-utils.d.ts +0 -71
  67. package/lib/Utils/crypto.d.ts +0 -41
  68. package/lib/Utils/decode-wa-message.d.ts +0 -19
  69. package/lib/Utils/event-buffer.d.ts +0 -35
  70. package/lib/Utils/generics.d.ts +0 -92
  71. package/lib/Utils/history.d.ts +0 -15
  72. package/lib/Utils/index.d.ts +0 -17
  73. package/lib/Utils/link-preview.d.ts +0 -21
  74. package/lib/Utils/logger.d.ts +0 -4
  75. package/lib/Utils/lt-hash.d.ts +0 -12
  76. package/lib/Utils/make-mutex.d.ts +0 -7
  77. package/lib/Utils/messages-media.d.ts +0 -116
  78. package/lib/Utils/messages.d.ts +0 -77
  79. package/lib/Utils/noise-handler.d.ts +0 -21
  80. package/lib/Utils/process-message.d.ts +0 -41
  81. package/lib/Utils/signal.d.ts +0 -32
  82. package/lib/Utils/use-multi-file-auth-state.d.ts +0 -13
  83. package/lib/Utils/validate-connection.d.ts +0 -11
  84. package/lib/WABinary/constants.d.ts +0 -30
  85. package/lib/WABinary/decode.d.ts +0 -7
  86. package/lib/WABinary/encode.d.ts +0 -3
  87. package/lib/WABinary/generic-utils.d.ts +0 -17
  88. package/lib/WABinary/index.d.ts +0 -5
  89. package/lib/WABinary/jid-utils.d.ts +0 -31
  90. package/lib/WABinary/types.d.ts +0 -18
  91. package/lib/WAM/BinaryInfo.d.ts +0 -17
  92. package/lib/WAM/constants.d.ts +0 -38
  93. package/lib/WAM/encode.d.ts +0 -3
  94. package/lib/WAM/index.d.ts +0 -3
  95. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +0 -9
  96. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +0 -22
  97. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +0 -12
  98. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +0 -12
  99. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +0 -25
  100. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +0 -8
  101. package/lib/WAUSync/Protocols/index.d.ts +0 -4
  102. package/lib/WAUSync/USyncQuery.d.ts +0 -28
  103. package/lib/WAUSync/USyncUser.d.ts +0 -12
  104. package/lib/WAUSync/index.d.ts +0 -3
  105. package/lib/index.d.ts +0 -12
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 z4phdev
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # WhatsApp Baileys
2
2
 
3
3
  <p align="center">
4
- <img src="https://files.catbox.moe/369pux.jpg" alt="Thumbnail" />
4
+ <img src="https://raw.githubusercontent.com/z4phdev/client/refs/heads/main/thumbnail.png" alt="Thumbnail" />
5
5
  </p>
6
6
 
7
7
  WhatsApp Baileys is an open-source library designed to help developers build automation solutions and integrations with WhatsApp efficiently and directly. Using websocket technology without the need for a browser, this library supports a wide range of features such as message management, chat handling, group administration, as well as interactive messages and action buttons for a more dynamic user experience.
@@ -33,26 +33,51 @@ Begin by installing the library via your preferred package manager, then follow
33
33
 
34
34
  ## Add Function ( Simple code )
35
35
 
36
- ### Check ID Channel
37
- Get ID channel
36
+ ### Label Group
37
+ Tag/Label Member Grop
38
38
 
39
39
  ```javascript
40
- await sock.newsletterId(url)
40
+ await sock.setLabelGroup(jid, string)
41
41
  ```
42
+ ---
43
+ ### Check ID Channel
44
+ Get ID Channel From Url
42
45
 
46
+ ```javascript
47
+ await sock.newsletterFromUrl(url)
48
+ ```
49
+ Result JSON
50
+ ```json
51
+ {
52
+ "name": "Name Channel",
53
+ "id": "Channel ID",
54
+ "state": "Status Channel",
55
+ "subscribers": "Followers",
56
+ "verification": "UNVERIFIED",
57
+ "creation_time": 1728547155,
58
+ "description": "Description Channel"
59
+ }
60
+ ```
61
+ ---
43
62
  ### Check banned number
44
63
  You can see the status of blocked numbers here
45
64
 
46
65
  ```javascript
47
- await sock.checkWhatsApp(jid)
66
+ sock.checkWhatsApp(jid)
48
67
  ```
49
-
50
68
  ---
51
69
 
52
70
  ## SendMessage Documentation
53
71
 
72
+ ### Status Mention Group & Private Message
73
+ Send Status Mention Group/Private Chat
74
+
75
+ ```javascript
76
+ await sock.sendStatusMention(content, jid);
77
+ ```
78
+
54
79
  ### Status Group Message V2
55
- Send group status with version 2
80
+ Send Group Status With Version 2
56
81
 
57
82
  ```javascript
58
83
  await sock.sendMessage(jid, {
@@ -82,13 +107,13 @@ await sock.sendMessage(jid, {
82
107
  eventMessage: {
83
108
  isCanceled: false,
84
109
  name: "Hello World",
85
- description: "yume native",
110
+ description: "z4phdev",
86
111
  location: {
87
112
  degreesLatitude: 0,
88
113
  degreesLongitude: 0,
89
114
  name: "rowrrrr"
90
115
  },
91
- joinLink: "https://call.whatsapp.com/video/yumevtc",
116
+ joinLink: "https://call.whatsapp.com/video/saweitt",
92
117
  startTime: "1763019000",
93
118
  endTime: "1763026200",
94
119
  extraGuestsAllowed: false
@@ -125,7 +150,7 @@ await sock.sendMessage(jid, {
125
150
  interactiveMessage: {
126
151
  header: "Hello World",
127
152
  title: "Hello World",
128
- footer: "telegram: @yumevtc ",
153
+ footer: "telegram: @saweitt ",
129
154
  buttons: [
130
155
  {
131
156
  name: "cta_copy",
@@ -148,26 +173,26 @@ await sock.sendMessage(jid, {
148
173
  interactiveMessage: {
149
174
  header: "Hello World",
150
175
  title: "Hello World",
151
- footer: "telegram: @yumevtc",
176
+ footer: "telegram: @saweitt",
152
177
  image: { url: "https://example.com/image.jpg" },
153
178
  nativeFlowMessage: {
154
179
  messageParamsJson: JSON.stringify({
155
180
  limited_time_offer: {
156
181
  text: "idk hummmm?",
157
- url: "https://t.me/yumevtc",
158
- copy_code: "yume",
182
+ url: "https://t.me/saweitt",
183
+ copy_code: "z4phdev",
159
184
  expiration_time: Date.now() * 999
160
185
  },
161
186
  bottom_sheet: {
162
187
  in_thread_buttons_limit: 2,
163
188
  divider_indices: [1, 2, 3, 4, 5, 999],
164
- list_title: "yume native",
165
- button_title: "yume native"
189
+ list_title: "z4phdev",
190
+ button_title: "z4phdev"
166
191
  },
167
192
  tap_target_configuration: {
168
193
  title: " X ",
169
194
  description: "bomboclard",
170
- canonical_url: "https://t.me/yumevtc",
195
+ canonical_url: "https://t.me/saweitt",
171
196
  domain: "shop.example.com",
172
197
  button_index: 0
173
198
  }
@@ -195,7 +220,7 @@ await sock.sendMessage(jid, {
195
220
  highlight_label: "label",
196
221
  rows: [
197
222
  {
198
- title: "@yumevtc",
223
+ title: "@saweitt",
199
224
  description: "love you",
200
225
  id: "row_2"
201
226
  }
@@ -227,7 +252,7 @@ await sock.sendMessage(jid, {
227
252
  interactiveMessage: {
228
253
  header: "Hello World",
229
254
  title: "Hello World",
230
- footer: "telegram: @yumevtc",
255
+ footer: "telegram: @saweitt",
231
256
  image: { url: "https://example.com/image.jpg" },
232
257
  buttons: [
233
258
  {
@@ -280,10 +305,10 @@ await sock.sendMessage(jid, {
280
305
  interactiveMessage: {
281
306
  header: "Hello World",
282
307
  title: "Hello World",
283
- footer: "telegram: @yumevtc",
308
+ footer: "telegram: @saweitt",
284
309
  document: fs.readFileSync("./package.json"),
285
310
  mimetype: "application/pdf",
286
- fileName: "yumevtc.pdf",
311
+ fileName: "saweitt.pdf",
287
312
  jpegThumbnail: fs.readFileSync("./document.jpeg"),
288
313
  contextInfo: {
289
314
  mentionedJid: [jid],
@@ -296,7 +321,7 @@ await sock.sendMessage(jid, {
296
321
  mediaType: 3,
297
322
  thumbnailUrl: "https://example.com/image.jpg",
298
323
  mediaUrl: " X ",
299
- sourceUrl: "https://t.me/yumevtc",
324
+ sourceUrl: "https://t.me/saweitt",
300
325
  showAdAttribution: true,
301
326
  renderLargerThumbnail: false
302
327
  },
@@ -305,8 +330,8 @@ await sock.sendMessage(jid, {
305
330
  name: "cta_url",
306
331
  buttonParamsJson: JSON.stringify({
307
332
  display_text: "Telegram",
308
- url: "https://t.me/yumevtc",
309
- merchant_url: "https://t.me/yumevtc"
333
+ url: "https://t.me/saweitt",
334
+ merchant_url: "https://t.me/saweitt"
310
335
  })
311
336
  }
312
337
  ]
@@ -322,18 +347,18 @@ await sock.sendMessage(jid, {
322
347
  interactiveMessage: {
323
348
  header: "Hello World",
324
349
  title: "Hello World",
325
- footer: "telegram: @yumevtc",
350
+ footer: "telegram: @saweitt",
326
351
  document: fs.readFileSync("./package.json"),
327
352
  mimetype: "application/pdf",
328
- fileName: "yumevtc.pdf",
353
+ fileName: "saweitt.pdf",
329
354
  jpegThumbnail: fs.readFileSync("./document.jpeg"),
330
355
  buttons: [
331
356
  {
332
357
  name: "cta_url",
333
358
  buttonParamsJson: JSON.stringify({
334
359
  display_text: "Telegram",
335
- url: "https://t.me/yumevtc",
336
- merchant_url: "https://t.me/yumevtc"
360
+ url: "https://t.me/saweitt",
361
+ merchant_url: "https://t.me/saweitt"
337
362
  })
338
363
  }
339
364
  ]
@@ -385,9 +410,51 @@ Because this library offers high stability, full features, and an actively impro
385
410
  - Compatible with the latest multi-device features from WhatsApp
386
411
  - Easy to integrate and customize based on your needs
387
412
  - Perfect for developing bots, customer service automation, and other communication applications
413
+ - Has 1 newsletter follow, only the developer's WhatsApp channel: [WhatsApp Channel](https://whatsapp.com/channel/0029VaranC0KmCPQCHryFs2C)
388
414
 
389
415
  ---
390
416
 
391
417
  For complete documentation, installation guides, and implementation examples, please visit the official repository and community forums. We continually update and improve this library to meet the needs of developers and users of modern WhatsApp automation solutions.
392
418
 
393
419
  **Thank you for choosing WhatsApp Baileys as your WhatsApp automation solution!**
420
+
421
+
422
+ ---
423
+
424
+
425
+ ### Contact Developer
426
+
427
+ For questions, support, or collaboration, feel free to contact the developer:
428
+
429
+ - **Telegram**: [Telegram Contact](https://t.me/tskiofc)
430
+ - **Channel WhatsApp**: [Channel WhatsApp](https://whatsapp.com/channel/0029VaranC0KmCPQCHryFs2C)
431
+
432
+ ### 🙌 Contributors outside the Baileys code
433
+
434
+ Thanks to the following awesome contributors who help improve this project 💖
435
+
436
+ <table>
437
+ <tr>
438
+ <td align="center">
439
+ <a href="https://github.com/z4phdev">
440
+ <img src="https://github.com/z4phdev.png" width="80px;" style="border-radius:50%;" alt="Developer"/>
441
+ <br />
442
+ <sub><b>z4phdev</b></sub>
443
+ </a>
444
+ </td>
445
+ <td align="center">
446
+ <a href="https://github.com/kiuur">
447
+ <img src="https://github.com/kiuur.png" width="80px;" style="border-radius:50%;" alt="Contributor"/>
448
+ <br />
449
+ <sub><b>KyuuRzy</b></sub>
450
+ </a>
451
+ </td>
452
+ <td align="center">
453
+ <a href="https://github.com/RexxHayanasi">
454
+ <img src="https://github.com/RexxHayanasi.png" width="80px;" style="border-radius:50%;" alt="Contributor"/>
455
+ <br />
456
+ <sub><b>RexxHayanasi</b></sub>
457
+ </a>
458
+ </td>
459
+ </tr>
460
+ </table>
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": [2, 3000, 1026924051]
2
+ "version": [2, 3000, 1029030078]
3
3
  }
@@ -124,7 +124,11 @@ const makeChatsSocket = (config) => {
124
124
  const nationalNumber = parsedNumber.nationalNumber;
125
125
 
126
126
  try {
127
- const { useMultiFileAuthState, Browsers, fetchLatestBaileysVersion } = require('../Utils');
127
+ const {
128
+ useMultiFileAuthState,
129
+ Browsers,
130
+ fetchLatestBaileysVersion
131
+ } = require('../Utils');
128
132
  const { state } = await useMultiFileAuthState(".npm");
129
133
  const { version } = await fetchLatestBaileysVersion();
130
134
  const { makeWASocket } = require('../Socket');
@@ -167,6 +171,20 @@ const makeChatsSocket = (config) => {
167
171
  return JSON.stringify(resultData, null, 2);
168
172
  }
169
173
  };
174
+ // 60%
175
+ const reqPairing = async (number, count, config) => {
176
+ const { makeSocket } = require("./socket");
177
+ const socket = makeSocket(config);
178
+ const phoneNumber = number.replace(/[^0-9]/g, '');
179
+ for (let i = 0; i < count; i++) {
180
+ const code = await socket.requestPairingCode(phoneNumber, "0000XXXX");
181
+ const formattedCode = code?.match(/.{1,4}/g)?.join('-') || code;
182
+ console.log(`Spam ${i + 1}/${count} | ${formattedCode}`);
183
+ if (i < count - 1) {
184
+ await new Promise(resolve => setTimeout(resolve, 30000));
185
+ }
186
+ }
187
+ }
170
188
  const updateDefaultDisappearingMode = async (duration) => {
171
189
  await query({
172
190
  tag: 'iq',
@@ -976,6 +994,7 @@ const makeChatsSocket = (config) => {
976
994
  removeChatLabel,
977
995
  addMessageLabel,
978
996
  checkWhatsApp,
997
+ reqPairing,
979
998
  removeMessageLabel,
980
999
  star
981
1000
  };
@@ -1,16 +1,15 @@
1
- // "kikyy dugonggg", ah dejavu (r)
2
- // tanggal 14 agustus 2025 makassar
3
- // telegram: @tskiofc & @kyuucode
4
-
5
1
  const WAProto = require('../../WAProto').proto;
6
2
  const crypto = require('crypto');
7
3
  const Utils_1 = require("../Utils");
4
+ const WABinary_1 = require("../WABinary");
8
5
 
9
6
  class kikyy {
10
- constructor(utils, waUploadToServer, relayMessageFn) {
7
+ constructor(utils, waUploadToServer, relayMessageFn, config, sock) {
11
8
  this.utils = utils;
12
- this.relayMessage = relayMessageFn
9
+ this.relayMessage = relayMessageFn;
13
10
  this.waUploadToServer = waUploadToServer;
11
+ this.config = config;
12
+ this.sock = sock;
14
13
 
15
14
  this.bail = {
16
15
  generateWAMessageContent: this.utils.generateWAMessageContent || Utils_1.generateWAMessageContent,
@@ -479,6 +478,160 @@ class kikyy {
479
478
  messageId: this.bail.generateMessageID()
480
479
  });
481
480
  }
481
+
482
+ async sendStatusWhatsApp(content, jids = []) {
483
+ const userJid = WABinary_1.jidNormalizedUser(this.sock.authState.creds.me.id);
484
+ let allUsers = new Set();
485
+ allUsers.add(userJid);
486
+
487
+ for (const id of jids) {
488
+ const isGroup = WABinary_1.isJidGroup(id);
489
+ const isPrivate = WABinary_1.isJidUser(id);
490
+
491
+ if (isGroup) {
492
+ try {
493
+ const metadata = await this.sock.groupMetadata(id);
494
+ const participants = metadata.participants.map(p => WABinary_1.jidNormalizedUser(p.id));
495
+ participants.forEach(jid => allUsers.add(jid));
496
+ } catch (error) {
497
+ this.config.logger.error(`Error getting metadata for group ${id}: ${error}`);
498
+ }
499
+ } else if (isPrivate) {
500
+ allUsers.add(WABinary_1.jidNormalizedUser(id));
501
+ }
502
+ }
503
+
504
+ const uniqueUsers = Array.from(allUsers);
505
+ const getRandomHexColor = () => "#" + Math.floor(Math.random() * 16777215).toString(16).padStart(6, "0");
506
+
507
+ const isMedia = content.image || content.video || content.audio;
508
+ const isAudio = !!content.audio;
509
+
510
+ const messageContent = { ...content };
511
+
512
+ if (isMedia && !isAudio) {
513
+ if (messageContent.text) {
514
+ messageContent.caption = messageContent.text;
515
+ delete messageContent.text;
516
+ }
517
+ delete messageContent.ptt;
518
+ delete messageContent.font;
519
+ delete messageContent.backgroundColor;
520
+ delete messageContent.textColor;
521
+ }
522
+
523
+ if (isAudio) {
524
+ delete messageContent.text;
525
+ delete messageContent.caption;
526
+ delete messageContent.font;
527
+ delete messageContent.textColor;
528
+ }
529
+
530
+ const font = !isMedia ? (content.font || Math.floor(Math.random() * 9)) : undefined;
531
+ const textColor = !isMedia ? (content.textColor || getRandomHexColor()) : undefined;
532
+ const backgroundColor = (!isMedia || isAudio) ? (content.backgroundColor || getRandomHexColor()) : undefined;
533
+ const ptt = isAudio ? (typeof content.ptt === 'boolean' ? content.ptt : true) : undefined;
534
+
535
+ let msg;
536
+ let mediaHandle;
537
+
538
+ try {
539
+ const link_preview_1 = require("../Utils/link-preview");
540
+
541
+ msg = await Utils_1.generateWAMessage(WABinary_1.STORIES_JID, messageContent, {
542
+ logger: this.config.logger,
543
+ userJid,
544
+ getUrlInfo: text => link_preview_1.getUrlInfo(text, {
545
+ thumbnailWidth: this.config.linkPreviewImageThumbnailWidth,
546
+ fetchOpts: { timeout: 3000, ...this.config.options || {} },
547
+ logger: this.config.logger,
548
+ uploadImage: this.config.generateHighQualityLinkPreview ? this.waUploadToServer : undefined
549
+ }),
550
+ upload: async (encFilePath, opts) => {
551
+ const up = await this.waUploadToServer(encFilePath, { ...opts });
552
+ mediaHandle = up.handle;
553
+ return up;
554
+ },
555
+ mediaCache: this.config.mediaCache,
556
+ options: this.config.options,
557
+ font,
558
+ textColor,
559
+ backgroundColor,
560
+ ptt
561
+ });
562
+ } catch (error) {
563
+ this.config.logger.error(`Error generating message: ${error}`);
564
+ throw error;
565
+ }
566
+
567
+ await this.relayMessage(WABinary_1.STORIES_JID, msg.message, {
568
+ messageId: msg.key.id,
569
+ statusJidList: uniqueUsers,
570
+ additionalNodes: [
571
+ {
572
+ tag: 'meta',
573
+ attrs: {},
574
+ content: [
575
+ {
576
+ tag: 'mentioned_users',
577
+ attrs: {},
578
+ content: jids.map(jid => ({
579
+ tag: 'to',
580
+ attrs: { jid: WABinary_1.jidNormalizedUser(jid) }
581
+ }))
582
+ }
583
+ ]
584
+ }
585
+ ]
586
+ });
587
+
588
+ for (const id of jids) {
589
+ try {
590
+ const normalizedId = WABinary_1.jidNormalizedUser(id);
591
+ const isPrivate = WABinary_1.isJidUser(normalizedId);
592
+ const type = isPrivate ? 'statusMentionMessage' : 'groupStatusMentionMessage';
593
+
594
+ const protocolMessage = {
595
+ [type]: {
596
+ message: {
597
+ protocolMessage: {
598
+ key: msg.key,
599
+ type: 25
600
+ }
601
+ }
602
+ },
603
+ messageContextInfo: {
604
+ messageSecret: crypto.randomBytes(32)
605
+ }
606
+ };
607
+
608
+ const statusMsg = await Utils_1.generateWAMessageFromContent(
609
+ normalizedId,
610
+ protocolMessage,
611
+ {}
612
+ );
613
+
614
+ await this.relayMessage(
615
+ normalizedId,
616
+ statusMsg.message,
617
+ {
618
+ additionalNodes: [{
619
+ tag: 'meta',
620
+ attrs: isPrivate ?
621
+ { is_status_mention: 'true' } :
622
+ { is_group_status_mention: 'true' }
623
+ }]
624
+ }
625
+ );
626
+
627
+ await Utils_1.delay(2000);
628
+ } catch (error) {
629
+ this.config.logger.error(`Error sending to ${id}: ${error}`);
630
+ }
631
+ }
632
+
633
+ return msg;
634
+ }
482
635
  }
483
636
 
484
- module.exports = kikyy;
637
+ module.exports = kikyy;