baileys-joss 1.0.0 → 1.0.1
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 +611 -39
- package/lib/Socket/messages-send.d.ts.map +1 -1
- package/lib/Socket/messages-send.js +130 -1
- package/lib/Socket/messages-send.js.map +1 -1
- package/lib/Types/Message.d.ts +21 -1
- package/lib/Types/Message.d.ts.map +1 -1
- package/lib/Utils/messages.d.ts.map +1 -1
- package/lib/Utils/messages.js +5 -0
- package/lib/Utils/messages.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -2,29 +2,33 @@
|
|
|
2
2
|
<img src="https://raw.githubusercontent.com/firdausmntp/Baileys-Joss/main/Media/logo.png" alt="Baileys-Joss" width="200"/>
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
|
-
<h1 align="center"
|
|
5
|
+
<h1 align="center">🚀 Baileys-Joss</h1>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
-
<b
|
|
9
|
-
Fork dari <a href="https://github.com/WhiskeySockets/Baileys">Baileys</a> dengan penambahan fitur Interactive Button, LID
|
|
8
|
+
<b>WhatsApp Web API Library dengan Fitur Ekstra Premium</b><br>
|
|
9
|
+
Fork dari <a href="https://github.com/WhiskeySockets/Baileys">Baileys</a> dengan penambahan fitur Interactive Button, Albums, AI Message, LID Plotting, dan lainnya.
|
|
10
10
|
</p>
|
|
11
11
|
|
|
12
12
|
<p align="center">
|
|
13
|
-
<a href="https://www.npmjs.com/package/baileys-joss"><img src="https://img.shields.io/npm/v/baileys-joss?color=
|
|
14
|
-
<a href="https://www.npmjs.com/package/baileys-joss"><img src="https://img.shields.io/npm/dm/baileys-joss?color=blue&style=
|
|
15
|
-
<a href="https://www.npmjs.com/package/baileys-joss"><img src="https://img.shields.io/npm/dt/baileys-joss?color=blue&style=
|
|
16
|
-
<a href="https://github.com/firdausmntp/Baileys-Joss/blob/main/LICENSE"><img src="https://img.shields.io/github/license/firdausmntp/Baileys-Joss?style=flat-square" alt="license"/></a>
|
|
17
|
-
<a href="https://github.com/firdausmntp/Baileys-Joss/stargazers"><img src="https://img.shields.io/github/stars/firdausmntp/Baileys-Joss?style=flat-square" alt="stars"/></a>
|
|
18
|
-
<a href="https://github.com/firdausmntp/Baileys-Joss/network/members"><img src="https://img.shields.io/github/forks/firdausmntp/Baileys-Joss?style=flat-square" alt="forks"/></a>
|
|
19
|
-
<a href="https://github.com/firdausmntp/Baileys-Joss/issues"><img src="https://img.shields.io/github/issues/firdausmntp/Baileys-Joss?style=flat-square" alt="issues"/></a>
|
|
13
|
+
<a href="https://www.npmjs.com/package/baileys-joss"><img src="https://img.shields.io/npm/v/baileys-joss?color=brightgreen&label=npm&style=for-the-badge&logo=npm" alt="npm version"/></a>
|
|
14
|
+
<a href="https://www.npmjs.com/package/baileys-joss"><img src="https://img.shields.io/npm/dm/baileys-joss?color=blue&style=for-the-badge&logo=npm" alt="npm downloads"/></a>
|
|
15
|
+
<a href="https://www.npmjs.com/package/baileys-joss"><img src="https://img.shields.io/npm/dt/baileys-joss?color=blue&style=for-the-badge" alt="npm total downloads"/></a>
|
|
20
16
|
</p>
|
|
21
17
|
|
|
22
18
|
<p align="center">
|
|
23
|
-
<a href="
|
|
24
|
-
<a href="
|
|
25
|
-
<a href="
|
|
26
|
-
<a href="
|
|
27
|
-
|
|
19
|
+
<a href="https://github.com/firdausmntp/Baileys-Joss/blob/main/LICENSE"><img src="https://img.shields.io/github/license/firdausmntp/Baileys-Joss?style=for-the-badge&logo=opensourceinitiative&logoColor=white" alt="license"/></a>
|
|
20
|
+
<a href="https://github.com/firdausmntp/Baileys-Joss/stargazers"><img src="https://img.shields.io/github/stars/firdausmntp/Baileys-Joss?style=for-the-badge&logo=github&color=gold" alt="stars"/></a>
|
|
21
|
+
<a href="https://github.com/firdausmntp/Baileys-Joss/network/members"><img src="https://img.shields.io/github/forks/firdausmntp/Baileys-Joss?style=for-the-badge&logo=github&color=purple" alt="forks"/></a>
|
|
22
|
+
<a href="https://github.com/firdausmntp/Baileys-Joss/issues"><img src="https://img.shields.io/github/issues/firdausmntp/Baileys-Joss?style=for-the-badge&logo=github&color=red" alt="issues"/></a>
|
|
23
|
+
</p>
|
|
24
|
+
|
|
25
|
+
<p align="center">
|
|
26
|
+
<a href="#-installation">📦 Installation</a> •
|
|
27
|
+
<a href="#-features">✨ Features</a> •
|
|
28
|
+
<a href="#-quick-start">🚀 Quick Start</a> •
|
|
29
|
+
<a href="#-use-case-examples">💡 Examples</a> •
|
|
30
|
+
<a href="#-api-reference">📋 API</a> •
|
|
31
|
+
<a href="#-contributing">🤝 Contributing</a>
|
|
28
32
|
</p>
|
|
29
33
|
|
|
30
34
|
<p align="center">
|
|
@@ -37,15 +41,83 @@
|
|
|
37
41
|
|
|
38
42
|
## ✨ Kenapa Baileys-Joss?
|
|
39
43
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
44
|
+
<table>
|
|
45
|
+
<tr>
|
|
46
|
+
<th align="center">🎯 Feature</th>
|
|
47
|
+
<th align="center">Baileys Original</th>
|
|
48
|
+
<th align="center">Baileys-Joss</th>
|
|
49
|
+
</tr>
|
|
50
|
+
<tr>
|
|
51
|
+
<td>🖱️ Interactive Buttons</td>
|
|
52
|
+
<td align="center">❌</td>
|
|
53
|
+
<td align="center">✅</td>
|
|
54
|
+
</tr>
|
|
55
|
+
<tr>
|
|
56
|
+
<td>📋 List Messages</td>
|
|
57
|
+
<td align="center">❌</td>
|
|
58
|
+
<td align="center">✅</td>
|
|
59
|
+
</tr>
|
|
60
|
+
<tr>
|
|
61
|
+
<td>📋 Copy Code Button</td>
|
|
62
|
+
<td align="center">❌</td>
|
|
63
|
+
<td align="center">✅</td>
|
|
64
|
+
</tr>
|
|
65
|
+
<tr>
|
|
66
|
+
<td>🔗 URL Buttons</td>
|
|
67
|
+
<td align="center">❌</td>
|
|
68
|
+
<td align="center">✅</td>
|
|
69
|
+
</tr>
|
|
70
|
+
<tr>
|
|
71
|
+
<td>🔄 Combined Button Types</td>
|
|
72
|
+
<td align="center">❌</td>
|
|
73
|
+
<td align="center">✅</td>
|
|
74
|
+
</tr>
|
|
75
|
+
<tr>
|
|
76
|
+
<td>🎨 Native Flow Messages</td>
|
|
77
|
+
<td align="center">❌</td>
|
|
78
|
+
<td align="center">✅</td>
|
|
79
|
+
</tr>
|
|
80
|
+
<tr>
|
|
81
|
+
<td>👤 LID/SenderPn Plotting</td>
|
|
82
|
+
<td align="center">❌</td>
|
|
83
|
+
<td align="center">✅</td>
|
|
84
|
+
</tr>
|
|
85
|
+
<tr>
|
|
86
|
+
<td>🖼️ Album Messages</td>
|
|
87
|
+
<td align="center">❌</td>
|
|
88
|
+
<td align="center">✅</td>
|
|
89
|
+
</tr>
|
|
90
|
+
<tr>
|
|
91
|
+
<td>🤖 AI Message Style</td>
|
|
92
|
+
<td align="center">❌</td>
|
|
93
|
+
<td align="center">✅</td>
|
|
94
|
+
</tr>
|
|
95
|
+
<tr>
|
|
96
|
+
<td>📊 Poll Creation</td>
|
|
97
|
+
<td align="center">✅</td>
|
|
98
|
+
<td align="center">✅ Enhanced</td>
|
|
99
|
+
</tr>
|
|
100
|
+
<tr>
|
|
101
|
+
<td>📢 Newsletter/Channel Control</td>
|
|
102
|
+
<td align="center">✅</td>
|
|
103
|
+
<td align="center">✅ Enhanced</td>
|
|
104
|
+
</tr>
|
|
105
|
+
<tr>
|
|
106
|
+
<td>🔐 Custom Pairing Code</td>
|
|
107
|
+
<td align="center">❌</td>
|
|
108
|
+
<td align="center">✅</td>
|
|
109
|
+
</tr>
|
|
110
|
+
<tr>
|
|
111
|
+
<td>📷 HD Profile Pictures</td>
|
|
112
|
+
<td align="center">✅</td>
|
|
113
|
+
<td align="center">✅</td>
|
|
114
|
+
</tr>
|
|
115
|
+
<tr>
|
|
116
|
+
<td>🔧 Fixed Button Delivery</td>
|
|
117
|
+
<td align="center">❌</td>
|
|
118
|
+
<td align="center">✅</td>
|
|
119
|
+
</tr>
|
|
120
|
+
</table>
|
|
49
121
|
|
|
50
122
|
---
|
|
51
123
|
|
|
@@ -62,11 +134,33 @@ yarn add baileys-joss
|
|
|
62
134
|
pnpm add baileys-joss
|
|
63
135
|
```
|
|
64
136
|
|
|
137
|
+
<details>
|
|
138
|
+
<summary><b>📦 Via package.json (Fork Override)</b></summary>
|
|
139
|
+
|
|
140
|
+
```json
|
|
141
|
+
// Untuk mengganti @whiskeysockets/baileys
|
|
142
|
+
{
|
|
143
|
+
"dependencies": {
|
|
144
|
+
"@whiskeysockets/baileys": "npm:baileys-joss"
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// Untuk mengganti @adiwajshing/baileys
|
|
149
|
+
{
|
|
150
|
+
"dependencies": {
|
|
151
|
+
"@adiwajshing/baileys": "npm:baileys-joss"
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
</details>
|
|
157
|
+
|
|
65
158
|
---
|
|
66
159
|
|
|
67
160
|
## 🎯 Features
|
|
68
161
|
|
|
69
|
-
|
|
162
|
+
<details open>
|
|
163
|
+
<summary><h3>🖱️ Interactive Messages & Buttons</h3></summary>
|
|
70
164
|
|
|
71
165
|
Fitur button interactive yang lebih lengkap dan mudah digunakan:
|
|
72
166
|
|
|
@@ -153,7 +247,143 @@ const listMessage = generateInteractiveListMessage({
|
|
|
153
247
|
await sock.sendMessage(jid, listMessage)
|
|
154
248
|
```
|
|
155
249
|
|
|
156
|
-
|
|
250
|
+
</details>
|
|
251
|
+
|
|
252
|
+
<details>
|
|
253
|
+
<summary><h3>🖼️ Album Messages (Carousel)</h3></summary>
|
|
254
|
+
|
|
255
|
+
Kirim beberapa gambar/video sekaligus dalam format album:
|
|
256
|
+
|
|
257
|
+
```typescript
|
|
258
|
+
// Send Album (grouped images/videos)
|
|
259
|
+
const albumMedia = [
|
|
260
|
+
{ image: { url: 'https://example.com/pic1.jpg' }, caption: 'Photo 1' },
|
|
261
|
+
{ image: { url: 'https://example.com/pic2.jpg' }, caption: 'Photo 2' },
|
|
262
|
+
{ video: { url: 'https://example.com/video.mp4' }, caption: 'Video' }
|
|
263
|
+
]
|
|
264
|
+
|
|
265
|
+
await sock.sendMessage(jid, {
|
|
266
|
+
album: albumMedia,
|
|
267
|
+
caption: 'My Album 📸'
|
|
268
|
+
})
|
|
269
|
+
|
|
270
|
+
// Album dari file lokal
|
|
271
|
+
const localAlbum = [
|
|
272
|
+
{ image: fs.readFileSync('./image1.jpg') },
|
|
273
|
+
{ image: fs.readFileSync('./image2.jpg') },
|
|
274
|
+
{ video: fs.readFileSync('./video.mp4'), gifPlayback: true }
|
|
275
|
+
]
|
|
276
|
+
|
|
277
|
+
await sock.sendMessage(jid, { album: localAlbum })
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
</details>
|
|
281
|
+
|
|
282
|
+
<details>
|
|
283
|
+
<summary><h3>🤖 AI Message Style</h3></summary>
|
|
284
|
+
|
|
285
|
+
Tambahkan ikon AI stylish pada pesan:
|
|
286
|
+
|
|
287
|
+
```typescript
|
|
288
|
+
// Kirim pesan dengan AI icon
|
|
289
|
+
await sock.sendMessage(jid, {
|
|
290
|
+
text: 'Halo! Saya adalah asisten AI Anda 🤖',
|
|
291
|
+
ai: true // Menampilkan ikon AI pada pesan
|
|
292
|
+
})
|
|
293
|
+
|
|
294
|
+
// AI dengan media
|
|
295
|
+
await sock.sendMessage(jid, {
|
|
296
|
+
image: { url: 'https://example.com/ai-generated.jpg' },
|
|
297
|
+
caption: 'Generated by AI',
|
|
298
|
+
ai: true
|
|
299
|
+
})
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
</details>
|
|
303
|
+
|
|
304
|
+
<details>
|
|
305
|
+
<summary><h3>📊 Poll Creation</h3></summary>
|
|
306
|
+
|
|
307
|
+
Buat polling dengan mudah:
|
|
308
|
+
|
|
309
|
+
```typescript
|
|
310
|
+
// Create a Poll
|
|
311
|
+
const pollMessage = {
|
|
312
|
+
name: '🎨 Warna Favorit?',
|
|
313
|
+
values: ['🔴 Merah', '🔵 Biru', '🟢 Hijau', '🟡 Kuning'],
|
|
314
|
+
selectableCount: 1 // Jumlah pilihan yang bisa dipilih
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
await sock.sendMessage(jid, { poll: pollMessage })
|
|
318
|
+
|
|
319
|
+
// Multi-select Poll
|
|
320
|
+
const multiPoll = {
|
|
321
|
+
name: '🍕 Topping Pizza Favorit?',
|
|
322
|
+
values: ['Pepperoni', 'Mushroom', 'Cheese', 'Olive', 'Bacon'],
|
|
323
|
+
selectableCount: 3 // Bisa pilih hingga 3 opsi
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
await sock.sendMessage(jid, { poll: multiPoll })
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
</details>
|
|
330
|
+
|
|
331
|
+
<details>
|
|
332
|
+
<summary><h3>📢 Newsletter/Channel Control</h3></summary>
|
|
333
|
+
|
|
334
|
+
Kelola WhatsApp Channel dengan lengkap:
|
|
335
|
+
|
|
336
|
+
```typescript
|
|
337
|
+
// Create Newsletter/Channel
|
|
338
|
+
await sock.newsletterCreate('My Channel', 'Channel description')
|
|
339
|
+
|
|
340
|
+
// Update channel info
|
|
341
|
+
await sock.newsletterUpdateName(channelJid, 'New Channel Name')
|
|
342
|
+
await sock.newsletterUpdateDescription(channelJid, 'Updated description')
|
|
343
|
+
await sock.newsletterUpdatePicture(channelJid, { url: 'https://example.com/pic.jpg' })
|
|
344
|
+
|
|
345
|
+
// Follow/Unfollow
|
|
346
|
+
await sock.newsletterFollow(channelJid)
|
|
347
|
+
await sock.newsletterUnfollow(channelJid)
|
|
348
|
+
|
|
349
|
+
// Mute/Unmute
|
|
350
|
+
await sock.newsletterMute(channelJid)
|
|
351
|
+
await sock.newsletterUnmute(channelJid)
|
|
352
|
+
|
|
353
|
+
// Send reaction to channel message
|
|
354
|
+
await sock.newsletterReactMessage(channelJid, 'server_id', '🔥')
|
|
355
|
+
|
|
356
|
+
// Get channel metadata
|
|
357
|
+
const metadata = await sock.newsletterMetadata('jid', channelJid)
|
|
358
|
+
console.log('Subscribers:', metadata.subscribers)
|
|
359
|
+
|
|
360
|
+
// Admin operations
|
|
361
|
+
await sock.newsletterChangeOwner(channelJid, newOwnerLid)
|
|
362
|
+
await sock.newsletterDemote(channelJid, adminLid)
|
|
363
|
+
const adminCount = await sock.newsletterAdminCount(channelJid)
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
</details>
|
|
367
|
+
|
|
368
|
+
<details>
|
|
369
|
+
<summary><h3>🔐 Custom Pairing Code</h3></summary>
|
|
370
|
+
|
|
371
|
+
Generate custom alphanumeric pairing code:
|
|
372
|
+
|
|
373
|
+
```typescript
|
|
374
|
+
// Standard pairing code
|
|
375
|
+
const code = await sock.requestPairingCode('6281234567890')
|
|
376
|
+
console.log('Your Pairing Code:', code)
|
|
377
|
+
|
|
378
|
+
// Custom alphanumeric pairing code
|
|
379
|
+
const customCode = await sock.requestPairingCode('6281234567890', 'MYCODE12')
|
|
380
|
+
console.log('Your Custom Code:', customCode)
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
</details>
|
|
384
|
+
|
|
385
|
+
<details>
|
|
386
|
+
<summary><h3>📍 LID & SenderPn Plotting</h3></summary>
|
|
157
387
|
|
|
158
388
|
Utilities untuk mengelola JID, LID (Linked ID), dan senderPn:
|
|
159
389
|
|
|
@@ -226,6 +456,63 @@ console.log('Phone:', plotted.pn)
|
|
|
226
456
|
console.log('LID:', plotted.lid)
|
|
227
457
|
```
|
|
228
458
|
|
|
459
|
+
</details>
|
|
460
|
+
|
|
461
|
+
<details>
|
|
462
|
+
<summary><h3>📍 Location Sharing</h3></summary>
|
|
463
|
+
|
|
464
|
+
Kirim lokasi dengan mudah:
|
|
465
|
+
|
|
466
|
+
```typescript
|
|
467
|
+
// Send location
|
|
468
|
+
await sock.sendMessage(jid, {
|
|
469
|
+
location: {
|
|
470
|
+
degreesLatitude: -6.2088,
|
|
471
|
+
degreesLongitude: 106.8456,
|
|
472
|
+
name: 'Jakarta, Indonesia',
|
|
473
|
+
address: 'Jl. Sudirman, Jakarta Pusat'
|
|
474
|
+
}
|
|
475
|
+
})
|
|
476
|
+
```
|
|
477
|
+
|
|
478
|
+
</details>
|
|
479
|
+
|
|
480
|
+
<details>
|
|
481
|
+
<summary><h3>👥 Group Management</h3></summary>
|
|
482
|
+
|
|
483
|
+
Kelola grup dengan lengkap:
|
|
484
|
+
|
|
485
|
+
```typescript
|
|
486
|
+
// Create group
|
|
487
|
+
const group = await sock.groupCreate('My Group', ['6281234567890@s.whatsapp.net'])
|
|
488
|
+
|
|
489
|
+
// Update group info
|
|
490
|
+
await sock.groupUpdateSubject(groupJid, 'New Group Name')
|
|
491
|
+
await sock.groupUpdateDescription(groupJid, 'New description')
|
|
492
|
+
|
|
493
|
+
// Manage participants
|
|
494
|
+
await sock.groupParticipantsUpdate(groupJid, ['6281234567890@s.whatsapp.net'], 'add')
|
|
495
|
+
await sock.groupParticipantsUpdate(groupJid, ['6281234567890@s.whatsapp.net'], 'remove')
|
|
496
|
+
await sock.groupParticipantsUpdate(groupJid, ['6281234567890@s.whatsapp.net'], 'promote')
|
|
497
|
+
await sock.groupParticipantsUpdate(groupJid, ['6281234567890@s.whatsapp.net'], 'demote')
|
|
498
|
+
|
|
499
|
+
// Get group metadata
|
|
500
|
+
const metadata = await sock.groupMetadata(groupJid)
|
|
501
|
+
console.log('Group Name:', metadata.subject)
|
|
502
|
+
console.log('Members:', metadata.participants.length)
|
|
503
|
+
|
|
504
|
+
// Group settings
|
|
505
|
+
await sock.groupSettingUpdate(groupJid, 'announcement') // Only admins can send
|
|
506
|
+
await sock.groupSettingUpdate(groupJid, 'not_announcement') // Everyone can send
|
|
507
|
+
await sock.groupSettingUpdate(groupJid, 'locked') // Only admins can edit info
|
|
508
|
+
await sock.groupSettingUpdate(groupJid, 'unlocked') // Everyone can edit info
|
|
509
|
+
|
|
510
|
+
// Leave group
|
|
511
|
+
await sock.groupLeave(groupJid)
|
|
512
|
+
```
|
|
513
|
+
|
|
514
|
+
</details>
|
|
515
|
+
|
|
229
516
|
---
|
|
230
517
|
|
|
231
518
|
## 🚀 Quick Start
|
|
@@ -263,11 +550,11 @@ async function startBot() {
|
|
|
263
550
|
startBot()
|
|
264
551
|
}
|
|
265
552
|
} else if (connection === 'open') {
|
|
266
|
-
console.log('Connected!')
|
|
553
|
+
console.log('✅ Connected!')
|
|
267
554
|
|
|
268
555
|
// Get sender info
|
|
269
556
|
const sender = getCurrentSenderInfo(sock.authState)
|
|
270
|
-
console.log('Logged in as:', sender?.phoneNumber)
|
|
557
|
+
console.log('📱 Logged in as:', sender?.phoneNumber)
|
|
271
558
|
}
|
|
272
559
|
})
|
|
273
560
|
|
|
@@ -292,6 +579,25 @@ async function startBot() {
|
|
|
292
579
|
|
|
293
580
|
await sock.sendMessage(msg.key.remoteJid!, buttons)
|
|
294
581
|
}
|
|
582
|
+
|
|
583
|
+
if (text === '/poll') {
|
|
584
|
+
// Kirim poll
|
|
585
|
+
await sock.sendMessage(msg.key.remoteJid!, {
|
|
586
|
+
poll: {
|
|
587
|
+
name: '🗳️ Vote sekarang!',
|
|
588
|
+
values: ['Option A', 'Option B', 'Option C'],
|
|
589
|
+
selectableCount: 1
|
|
590
|
+
}
|
|
591
|
+
})
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
if (text === '/ai') {
|
|
595
|
+
// Kirim pesan dengan AI style
|
|
596
|
+
await sock.sendMessage(msg.key.remoteJid!, {
|
|
597
|
+
text: 'Halo! Saya asisten AI Anda 🤖',
|
|
598
|
+
ai: true
|
|
599
|
+
})
|
|
600
|
+
}
|
|
295
601
|
})
|
|
296
602
|
}
|
|
297
603
|
|
|
@@ -300,9 +606,147 @@ startBot()
|
|
|
300
606
|
|
|
301
607
|
---
|
|
302
608
|
|
|
609
|
+
## 💡 Use Case Examples
|
|
610
|
+
|
|
611
|
+
<details>
|
|
612
|
+
<summary><b>📬 Newsletter Control</b></summary>
|
|
613
|
+
|
|
614
|
+
```typescript
|
|
615
|
+
// Create a newsletter
|
|
616
|
+
await sock.newsletterCreate('My Updates Channel', 'Stay updated!')
|
|
617
|
+
|
|
618
|
+
// Update description
|
|
619
|
+
await sock.newsletterUpdateDescription(channelJid, 'Fresh updates weekly 🔥')
|
|
620
|
+
|
|
621
|
+
// Send reaction to channel message
|
|
622
|
+
await sock.newsletterReactMessage(channelJid, 'server_id', '❤️')
|
|
623
|
+
|
|
624
|
+
// Fetch channel messages
|
|
625
|
+
const messages = await sock.newsletterFetchMessages('jid', channelJid, 10)
|
|
626
|
+
```
|
|
627
|
+
|
|
628
|
+
</details>
|
|
629
|
+
|
|
630
|
+
<details>
|
|
631
|
+
<summary><b>📌 Interactive Messaging</b></summary>
|
|
632
|
+
|
|
633
|
+
```typescript
|
|
634
|
+
// Native Flow Buttons
|
|
635
|
+
const buttons = generateCombinedButtons(
|
|
636
|
+
'Welcome to our service! 🎉',
|
|
637
|
+
[
|
|
638
|
+
{ type: 'reply', displayText: '📋 View Menu', id: 'menu' },
|
|
639
|
+
{ type: 'url', displayText: '🌐 Visit Website', url: 'https://example.com' },
|
|
640
|
+
{ type: 'call', displayText: '📞 Call Us', phoneNumber: '+1234567890' },
|
|
641
|
+
{ type: 'copy', displayText: '📋 Copy Promo', copyCode: 'SAVE20' }
|
|
642
|
+
],
|
|
643
|
+
{ title: 'Welcome!', footer: 'Powered by Baileys-Joss' }
|
|
644
|
+
)
|
|
645
|
+
|
|
646
|
+
await sock.sendMessage(jid, buttons)
|
|
647
|
+
```
|
|
648
|
+
|
|
649
|
+
</details>
|
|
650
|
+
|
|
651
|
+
<details>
|
|
652
|
+
<summary><b>🖼️ Send Album</b></summary>
|
|
653
|
+
|
|
654
|
+
```typescript
|
|
655
|
+
const media = [
|
|
656
|
+
{ image: { url: 'https://example.com/pic1.jpg' }, caption: 'Photo 1 📸' },
|
|
657
|
+
{ image: { url: 'https://example.com/pic2.jpg' }, caption: 'Photo 2 📸' },
|
|
658
|
+
{ video: { url: 'https://example.com/clip.mp4' }, caption: 'Video 🎬' }
|
|
659
|
+
]
|
|
660
|
+
|
|
661
|
+
await sock.sendMessage(jid, {
|
|
662
|
+
album: media,
|
|
663
|
+
caption: 'My Vacation Memories 🌴'
|
|
664
|
+
})
|
|
665
|
+
```
|
|
666
|
+
|
|
667
|
+
</details>
|
|
668
|
+
|
|
669
|
+
<details>
|
|
670
|
+
<summary><b>🔐 Pairing with Custom Code</b></summary>
|
|
671
|
+
|
|
672
|
+
```typescript
|
|
673
|
+
// Request standard pairing code
|
|
674
|
+
const code = await sock.requestPairingCode('6281234567890')
|
|
675
|
+
console.log('Your Pairing Code:', code)
|
|
676
|
+
|
|
677
|
+
// Request custom pairing code
|
|
678
|
+
const customCode = await sock.requestPairingCode('6281234567890', 'BAILEYS1')
|
|
679
|
+
console.log('Your Custom Code:', customCode)
|
|
680
|
+
```
|
|
681
|
+
|
|
682
|
+
</details>
|
|
683
|
+
|
|
684
|
+
<details>
|
|
685
|
+
<summary><b>📊 Poll Creation</b></summary>
|
|
686
|
+
|
|
687
|
+
```typescript
|
|
688
|
+
const pollMessage = {
|
|
689
|
+
name: '🎬 Film Favorit Weekend Ini?',
|
|
690
|
+
values: [
|
|
691
|
+
'🦸 Superhero Movie',
|
|
692
|
+
'😂 Comedy',
|
|
693
|
+
'😱 Horror',
|
|
694
|
+
'💑 Romance'
|
|
695
|
+
],
|
|
696
|
+
selectableCount: 1
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
await sock.sendMessage(jid, { poll: pollMessage })
|
|
700
|
+
```
|
|
701
|
+
|
|
702
|
+
</details>
|
|
703
|
+
|
|
704
|
+
<details>
|
|
705
|
+
<summary><b>📍 Location Sharing</b></summary>
|
|
706
|
+
|
|
707
|
+
```typescript
|
|
708
|
+
await sock.sendMessage(jid, {
|
|
709
|
+
location: {
|
|
710
|
+
degreesLatitude: -6.2088,
|
|
711
|
+
degreesLongitude: 106.8456,
|
|
712
|
+
name: 'Monas Jakarta',
|
|
713
|
+
address: 'Jalan Medan Merdeka, Jakarta Pusat'
|
|
714
|
+
}
|
|
715
|
+
})
|
|
716
|
+
```
|
|
717
|
+
|
|
718
|
+
</details>
|
|
719
|
+
|
|
720
|
+
<details>
|
|
721
|
+
<summary><b>👥 Group Management</b></summary>
|
|
722
|
+
|
|
723
|
+
```typescript
|
|
724
|
+
// Create group
|
|
725
|
+
const group = await sock.groupCreate('My Awesome Group', [
|
|
726
|
+
'6281234567890@s.whatsapp.net',
|
|
727
|
+
'6281234567891@s.whatsapp.net'
|
|
728
|
+
])
|
|
729
|
+
|
|
730
|
+
console.log('Group created:', group.id)
|
|
731
|
+
|
|
732
|
+
// Update group settings
|
|
733
|
+
await sock.groupUpdateSubject(group.id, 'Updated Group Name')
|
|
734
|
+
await sock.groupSettingUpdate(group.id, 'announcement')
|
|
735
|
+
|
|
736
|
+
// Add members
|
|
737
|
+
await sock.groupParticipantsUpdate(group.id, [
|
|
738
|
+
'6281234567892@s.whatsapp.net'
|
|
739
|
+
], 'add')
|
|
740
|
+
```
|
|
741
|
+
|
|
742
|
+
</details>
|
|
743
|
+
|
|
744
|
+
---
|
|
745
|
+
|
|
303
746
|
## 📋 API Reference
|
|
304
747
|
|
|
305
|
-
|
|
748
|
+
<details>
|
|
749
|
+
<summary><b>🖱️ Interactive Messages</b></summary>
|
|
306
750
|
|
|
307
751
|
| Function | Description |
|
|
308
752
|
|----------|-------------|
|
|
@@ -315,7 +759,10 @@ startBot()
|
|
|
315
759
|
| `generateQuickReplyButtons()` | Quick reply buttons |
|
|
316
760
|
| `generateCombinedButtons()` | Gabungan berbagai jenis button |
|
|
317
761
|
|
|
318
|
-
|
|
762
|
+
</details>
|
|
763
|
+
|
|
764
|
+
<details>
|
|
765
|
+
<summary><b>📍 JID Plotting</b></summary>
|
|
319
766
|
|
|
320
767
|
| Function | Description |
|
|
321
768
|
|----------|-------------|
|
|
@@ -333,17 +780,112 @@ startBot()
|
|
|
333
780
|
| `getRemoteJidFromMessage()` | Get remoteJid dari message |
|
|
334
781
|
| `createJidPlotter()` | Create plotter dengan LID mapping support |
|
|
335
782
|
|
|
783
|
+
</details>
|
|
784
|
+
|
|
785
|
+
<details>
|
|
786
|
+
<summary><b>📢 Newsletter/Channel</b></summary>
|
|
787
|
+
|
|
788
|
+
| Function | Description |
|
|
789
|
+
|----------|-------------|
|
|
790
|
+
| `newsletterCreate()` | Buat channel baru |
|
|
791
|
+
| `newsletterUpdateName()` | Update nama channel |
|
|
792
|
+
| `newsletterUpdateDescription()` | Update deskripsi channel |
|
|
793
|
+
| `newsletterUpdatePicture()` | Update foto channel |
|
|
794
|
+
| `newsletterFollow()` | Follow channel |
|
|
795
|
+
| `newsletterUnfollow()` | Unfollow channel |
|
|
796
|
+
| `newsletterMute()` | Mute notifikasi channel |
|
|
797
|
+
| `newsletterUnmute()` | Unmute notifikasi channel |
|
|
798
|
+
| `newsletterReactMessage()` | React ke pesan channel |
|
|
799
|
+
| `newsletterMetadata()` | Get metadata channel |
|
|
800
|
+
| `newsletterAdminCount()` | Get jumlah admin |
|
|
801
|
+
| `newsletterChangeOwner()` | Ganti owner channel |
|
|
802
|
+
| `newsletterDemote()` | Demote admin channel |
|
|
803
|
+
| `newsletterDelete()` | Hapus channel |
|
|
804
|
+
|
|
805
|
+
</details>
|
|
806
|
+
|
|
807
|
+
<details>
|
|
808
|
+
<summary><b>👥 Group Management</b></summary>
|
|
809
|
+
|
|
810
|
+
| Function | Description |
|
|
811
|
+
|----------|-------------|
|
|
812
|
+
| `groupCreate()` | Buat grup baru |
|
|
813
|
+
| `groupUpdateSubject()` | Update nama grup |
|
|
814
|
+
| `groupUpdateDescription()` | Update deskripsi grup |
|
|
815
|
+
| `groupParticipantsUpdate()` | Add/remove/promote/demote member |
|
|
816
|
+
| `groupSettingUpdate()` | Update pengaturan grup |
|
|
817
|
+
| `groupMetadata()` | Get metadata grup |
|
|
818
|
+
| `groupLeave()` | Keluar dari grup |
|
|
819
|
+
| `groupInviteCode()` | Get kode invite grup |
|
|
820
|
+
| `groupAcceptInvite()` | Join grup via invite code |
|
|
821
|
+
|
|
822
|
+
</details>
|
|
823
|
+
|
|
824
|
+
<details>
|
|
825
|
+
<summary><b>💬 Message Types</b></summary>
|
|
826
|
+
|
|
827
|
+
| Type | Description |
|
|
828
|
+
|------|-------------|
|
|
829
|
+
| `text` | Pesan teks biasa |
|
|
830
|
+
| `image` | Kirim gambar |
|
|
831
|
+
| `video` | Kirim video |
|
|
832
|
+
| `audio` | Kirim audio |
|
|
833
|
+
| `document` | Kirim dokumen |
|
|
834
|
+
| `sticker` | Kirim sticker |
|
|
835
|
+
| `location` | Kirim lokasi |
|
|
836
|
+
| `contacts` | Kirim kontak |
|
|
837
|
+
| `poll` | Buat polling |
|
|
838
|
+
| `album` | Kirim album (multiple media) |
|
|
839
|
+
| `react` | React ke pesan |
|
|
840
|
+
| `edit` | Edit pesan |
|
|
841
|
+
| `delete` | Hapus pesan |
|
|
842
|
+
|
|
843
|
+
</details>
|
|
844
|
+
|
|
845
|
+
---
|
|
846
|
+
|
|
847
|
+
## 🔄 Changelog
|
|
848
|
+
|
|
849
|
+
<details>
|
|
850
|
+
<summary><b>v1.0.1</b> - Latest</summary>
|
|
851
|
+
|
|
852
|
+
- ✨ Added Album Messages support (carousel format)
|
|
853
|
+
- ✨ Added AI Message Style (`ai: true`) - shows AI indicator on messages
|
|
854
|
+
- ✨ Added Custom Pairing Code support
|
|
855
|
+
- ✨ Enhanced Newsletter/Channel control
|
|
856
|
+
- ✨ Enhanced Poll creation
|
|
857
|
+
- 🔧 **Fixed Interactive Buttons** - Added `biz` node for proper button rendering
|
|
858
|
+
- 🔧 Fixed List Messages delivery
|
|
859
|
+
- 🎨 Improved documentation with collapsible sections
|
|
860
|
+
- 🐛 Bug fixes and stability improvements
|
|
861
|
+
|
|
862
|
+
</details>
|
|
863
|
+
|
|
864
|
+
<details>
|
|
865
|
+
<summary><b>v1.0.0</b></summary>
|
|
866
|
+
|
|
867
|
+
- 🎉 Initial release
|
|
868
|
+
- ✨ Interactive Buttons support
|
|
869
|
+
- ✨ List Messages support
|
|
870
|
+
- ✨ Copy Code Button
|
|
871
|
+
- ✨ URL Buttons
|
|
872
|
+
- ✨ Combined Button Types
|
|
873
|
+
- ✨ Native Flow Messages
|
|
874
|
+
- ✨ LID/SenderPn Plotting utilities
|
|
875
|
+
|
|
876
|
+
</details>
|
|
877
|
+
|
|
336
878
|
---
|
|
337
879
|
|
|
338
880
|
## 🤝 Contributing
|
|
339
881
|
|
|
340
882
|
Kontribusi sangat diterima! Silahkan:
|
|
341
883
|
|
|
342
|
-
1. Fork repository ini
|
|
343
|
-
2. Buat branch fitur (`git checkout -b feature/AmazingFeature`)
|
|
344
|
-
3. Commit changes (`git commit -m 'Add some AmazingFeature'`)
|
|
345
|
-
4. Push ke branch (`git push origin feature/AmazingFeature`)
|
|
346
|
-
5. Buka Pull Request
|
|
884
|
+
1. 🍴 Fork repository ini
|
|
885
|
+
2. 🌿 Buat branch fitur (`git checkout -b feature/AmazingFeature`)
|
|
886
|
+
3. 💾 Commit changes (`git commit -m 'Add some AmazingFeature'`)
|
|
887
|
+
4. 📤 Push ke branch (`git push origin feature/AmazingFeature`)
|
|
888
|
+
5. 🔃 Buka Pull Request
|
|
347
889
|
|
|
348
890
|
---
|
|
349
891
|
|
|
@@ -351,11 +893,21 @@ Kontribusi sangat diterima! Silahkan:
|
|
|
351
893
|
|
|
352
894
|
Jika project ini membantu, berikan ⭐ di [GitHub](https://github.com/firdausmntp/Baileys-Joss)!
|
|
353
895
|
|
|
896
|
+
<p align="center">
|
|
897
|
+
<a href="https://github.com/firdausmntp/Baileys-Joss/stargazers">
|
|
898
|
+
<img src="https://img.shields.io/github/stars/firdausmntp/Baileys-Joss?style=social" alt="GitHub Stars"/>
|
|
899
|
+
</a>
|
|
900
|
+
</p>
|
|
901
|
+
|
|
354
902
|
---
|
|
355
903
|
|
|
356
904
|
## ⚠️ Disclaimer
|
|
357
905
|
|
|
358
|
-
Proyek ini tidak berafiliasi dengan WhatsApp. Gunakan dengan tanggung jawab dan sesuai dengan Terms of Service WhatsApp.
|
|
906
|
+
> **Peringatan:** Proyek ini tidak berafiliasi dengan WhatsApp atau Meta. Gunakan dengan tanggung jawab dan sesuai dengan Terms of Service WhatsApp.
|
|
907
|
+
>
|
|
908
|
+
> ❌ **Jangan spam!**
|
|
909
|
+
> ❌ **Jangan abuse API!**
|
|
910
|
+
> ✅ **Gunakan untuk keperluan yang baik!**
|
|
359
911
|
|
|
360
912
|
---
|
|
361
913
|
|
|
@@ -367,11 +919,31 @@ MIT License - Lihat file [LICENSE](LICENSE) untuk detail.
|
|
|
367
919
|
|
|
368
920
|
## 🙏 Credits
|
|
369
921
|
|
|
370
|
-
|
|
371
|
-
|
|
922
|
+
<table>
|
|
923
|
+
<tr>
|
|
924
|
+
<td align="center">
|
|
925
|
+
<a href="https://github.com/WhiskeySockets/Baileys">
|
|
926
|
+
<b>Baileys Original</b>
|
|
927
|
+
</a>
|
|
928
|
+
<br>Base library
|
|
929
|
+
</td>
|
|
930
|
+
<td align="center">
|
|
931
|
+
<a href="https://github.com/WhiskeySockets">
|
|
932
|
+
<b>WhiskeySockets</b>
|
|
933
|
+
</a>
|
|
934
|
+
<br>Maintainer Baileys
|
|
935
|
+
</td>
|
|
936
|
+
</tr>
|
|
937
|
+
</table>
|
|
372
938
|
|
|
373
939
|
---
|
|
374
940
|
|
|
375
941
|
<p align="center">
|
|
376
|
-
Made with ❤️ by <a href="https://github.com/firdausmntp">firdausmntp</a>
|
|
942
|
+
<b>Made with ❤️ by <a href="https://github.com/firdausmntp">firdausmntp</a></b>
|
|
943
|
+
</p>
|
|
944
|
+
|
|
945
|
+
<p align="center">
|
|
946
|
+
<img src="https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge&logo=typescript&logoColor=white" alt="TypeScript"/>
|
|
947
|
+
<img src="https://img.shields.io/badge/Node.js-339933?style=for-the-badge&logo=nodedotjs&logoColor=white" alt="Node.js"/>
|
|
948
|
+
<img src="https://img.shields.io/badge/WhatsApp-25D366?style=for-the-badge&logo=whatsapp&logoColor=white" alt="WhatsApp"/>
|
|
377
949
|
</p>
|