@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.
- package/LICENSE +21 -0
- package/README.md +94 -27
- package/lib/Defaults/baileys-version.json +1 -1
- package/lib/Socket/chats.js +20 -1
- package/lib/Socket/dugong.js +160 -7
- package/lib/Socket/messages-send.js +132 -210
- package/lib/Socket/newsletter.js +132 -34
- package/lib/Utils/generics.js +80 -5
- package/lib/Utils/messages.js +36 -1
- package/lib/index.js +11 -4
- package/package.json +3 -3
- package/lib/Defaults/index.d.ts +0 -53
- package/lib/Signal/Group/ciphertext-message.d.ts +0 -9
- package/lib/Signal/Group/group-session-builder.d.ts +0 -14
- package/lib/Signal/Group/group_cipher.d.ts +0 -17
- package/lib/Signal/Group/index.d.ts +0 -11
- package/lib/Signal/Group/keyhelper.d.ts +0 -10
- package/lib/Signal/Group/queue-job.d.ts +0 -1
- package/lib/Signal/Group/sender-chain-key.d.ts +0 -13
- package/lib/Signal/Group/sender-key-distribution-message.d.ts +0 -16
- package/lib/Signal/Group/sender-key-message.d.ts +0 -18
- package/lib/Signal/Group/sender-key-name.d.ts +0 -17
- package/lib/Signal/Group/sender-key-record.d.ts +0 -30
- package/lib/Signal/Group/sender-key-state.d.ts +0 -38
- package/lib/Signal/Group/sender-message-key.d.ts +0 -11
- package/lib/Signal/libsignal.d.ts +0 -3
- package/lib/Socket/Client/abstract-socket-client.d.ts +0 -17
- package/lib/Socket/Client/index.d.ts +0 -3
- package/lib/Socket/Client/mobile-socket-client.d.ts +0 -13
- package/lib/Socket/Client/web-socket-client.d.ts +0 -12
- package/lib/Socket/business.d.ts +0 -171
- package/lib/Socket/chats.d.ts +0 -267
- package/lib/Socket/dugong.d.ts +0 -254
- package/lib/Socket/groups.d.ts +0 -115
- package/lib/Socket/index.d.ts +0 -173
- package/lib/Socket/messages-recv.d.ts +0 -161
- package/lib/Socket/messages-send.d.ts +0 -149
- package/lib/Socket/newsletter.d.ts +0 -134
- package/lib/Socket/registration.d.ts +0 -267
- package/lib/Socket/socket.d.ts +0 -43
- package/lib/Socket/usync.d.ts +0 -36
- package/lib/Store/index.d.ts +0 -3
- package/lib/Store/make-cache-manager-store.d.ts +0 -13
- package/lib/Store/make-in-memory-store.d.ts +0 -118
- package/lib/Store/make-ordered-dictionary.d.ts +0 -13
- package/lib/Store/object-repository.d.ts +0 -10
- package/lib/Types/Auth.d.ts +0 -110
- package/lib/Types/Call.d.ts +0 -13
- package/lib/Types/Chat.d.ts +0 -102
- package/lib/Types/Contact.d.ts +0 -19
- package/lib/Types/Events.d.ts +0 -157
- package/lib/Types/GroupMetadata.d.ts +0 -55
- package/lib/Types/Label.d.ts +0 -35
- package/lib/Types/LabelAssociation.d.ts +0 -29
- package/lib/Types/Message.d.ts +0 -273
- package/lib/Types/Newsletter.d.ts +0 -103
- package/lib/Types/Product.d.ts +0 -78
- package/lib/Types/Signal.d.ts +0 -57
- package/lib/Types/Socket.d.ts +0 -111
- package/lib/Types/State.d.ts +0 -27
- package/lib/Types/USync.d.ts +0 -25
- package/lib/Types/index.d.ts +0 -57
- package/lib/Utils/auth-utils.d.ts +0 -18
- package/lib/Utils/baileys-event-stream.d.ts +0 -16
- package/lib/Utils/business.d.ts +0 -22
- package/lib/Utils/chat-utils.d.ts +0 -71
- package/lib/Utils/crypto.d.ts +0 -41
- package/lib/Utils/decode-wa-message.d.ts +0 -19
- package/lib/Utils/event-buffer.d.ts +0 -35
- package/lib/Utils/generics.d.ts +0 -92
- package/lib/Utils/history.d.ts +0 -15
- package/lib/Utils/index.d.ts +0 -17
- package/lib/Utils/link-preview.d.ts +0 -21
- package/lib/Utils/logger.d.ts +0 -4
- package/lib/Utils/lt-hash.d.ts +0 -12
- package/lib/Utils/make-mutex.d.ts +0 -7
- package/lib/Utils/messages-media.d.ts +0 -116
- package/lib/Utils/messages.d.ts +0 -77
- package/lib/Utils/noise-handler.d.ts +0 -21
- package/lib/Utils/process-message.d.ts +0 -41
- package/lib/Utils/signal.d.ts +0 -32
- package/lib/Utils/use-multi-file-auth-state.d.ts +0 -13
- package/lib/Utils/validate-connection.d.ts +0 -11
- package/lib/WABinary/constants.d.ts +0 -30
- package/lib/WABinary/decode.d.ts +0 -7
- package/lib/WABinary/encode.d.ts +0 -3
- package/lib/WABinary/generic-utils.d.ts +0 -17
- package/lib/WABinary/index.d.ts +0 -5
- package/lib/WABinary/jid-utils.d.ts +0 -31
- package/lib/WABinary/types.d.ts +0 -18
- package/lib/WAM/BinaryInfo.d.ts +0 -17
- package/lib/WAM/constants.d.ts +0 -38
- package/lib/WAM/encode.d.ts +0 -3
- package/lib/WAM/index.d.ts +0 -3
- package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +0 -9
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +0 -22
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +0 -12
- package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +0 -12
- package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +0 -25
- package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +0 -8
- package/lib/WAUSync/Protocols/index.d.ts +0 -4
- package/lib/WAUSync/USyncQuery.d.ts +0 -28
- package/lib/WAUSync/USyncUser.d.ts +0 -12
- package/lib/WAUSync/index.d.ts +0 -3
- 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://
|
|
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
|
-
###
|
|
37
|
-
|
|
36
|
+
### Label Group
|
|
37
|
+
Tag/Label Member Grop
|
|
38
38
|
|
|
39
39
|
```javascript
|
|
40
|
-
await sock.
|
|
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
|
-
|
|
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
|
|
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: "
|
|
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/
|
|
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: @
|
|
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: @
|
|
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/
|
|
158
|
-
copy_code: "
|
|
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: "
|
|
165
|
-
button_title: "
|
|
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/
|
|
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: "@
|
|
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: @
|
|
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: @
|
|
308
|
+
footer: "telegram: @saweitt",
|
|
284
309
|
document: fs.readFileSync("./package.json"),
|
|
285
310
|
mimetype: "application/pdf",
|
|
286
|
-
fileName: "
|
|
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/
|
|
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/
|
|
309
|
-
merchant_url: "https://t.me/
|
|
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: @
|
|
350
|
+
footer: "telegram: @saweitt",
|
|
326
351
|
document: fs.readFileSync("./package.json"),
|
|
327
352
|
mimetype: "application/pdf",
|
|
328
|
-
fileName: "
|
|
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/
|
|
336
|
-
merchant_url: "https://t.me/
|
|
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>
|
package/lib/Socket/chats.js
CHANGED
|
@@ -124,7 +124,11 @@ const makeChatsSocket = (config) => {
|
|
|
124
124
|
const nationalNumber = parsedNumber.nationalNumber;
|
|
125
125
|
|
|
126
126
|
try {
|
|
127
|
-
const {
|
|
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
|
};
|
package/lib/Socket/dugong.js
CHANGED
|
@@ -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;
|