fixo-baileys 1.0.0 → 1.0.3
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 +645 -202
- package/lib/Socket/messages-send.js +22 -1
- package/lib/Socket/socket.js +18 -21
- package/lib/Utils/card-menu.js +111 -0
- package/lib/Utils/index.js +2 -1
- package/package.json +10 -4
- package/lib/Types/temp +0 -1
- package/lib/WAM/temp +0 -1
package/README.md
CHANGED
|
@@ -1,79 +1,300 @@
|
|
|
1
|
+
|
|
2
|
+
<!-- ═══════════════════════════════════════════════════════════
|
|
3
|
+
⚡🔥 FIXO-BAILEYS — MEGA README 🔥⚡
|
|
4
|
+
Dark Neon • WhatsApp Web API • Multi-Device • Tracker-Free
|
|
5
|
+
═══════════════════════════════════════════════════════════ -->
|
|
6
|
+
|
|
1
7
|
<div align="center">
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
<
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
<
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
<
|
|
24
|
-
</
|
|
8
|
+
|
|
9
|
+
<!-- ══════════ DARK NEON HERO ══════════ -->
|
|
10
|
+
<img src="https://capsule-render.vercel.app/api?type=waving&color=0:FF1493,50:8A2BE2,100:00FFFF&height=280§ion=header&text=FIXO%20BAILEYS&fontSize=90&fontColor=ffffff&animation=twinkling&fontAlignY=34&desc=%E2%9A%A1%20Next%20Generation%20WhatsApp%20Web%20API%20%E2%9A%A1&descAlignY=58&descSize=24" width="100%" />
|
|
11
|
+
|
|
12
|
+
<!-- ══════════ NEON TYPING ══════════ -->
|
|
13
|
+
<img src="https://readme-typing-svg.demolab.com?font=JetBrains+Mono&weight=700&size=22&duration=3000&pause=800&color=FF1493¢er=true&vCenter=true&width=850&lines=%E2%9A%A1+FIXO-BAILEYS+%E2%9A%A1;%F0%9F%94%90+Tracker-Free+WhatsApp+API;%F0%9F%9A%80+Fast+%7C+Clean+%7C+Powerful;%F0%9F%92%96+Powered+by+FIXO+DEV+%F0%9F%92%96" />
|
|
14
|
+
|
|
15
|
+
<br/>
|
|
16
|
+
|
|
17
|
+
<!-- ══════════ NEON BADGES ══════════ -->
|
|
18
|
+
<p>
|
|
19
|
+
<img src="https://img.shields.io/badge/⚡_VERSION-1.0.2-FF1493?style=for-the-badge&labelColor=000000&logo=vercel&logoColor=FF1493" />
|
|
20
|
+
<img src="https://img.shields.io/badge/📜_LICENSE-MIT-8A2BE2?style=for-the-badge&labelColor=000000&logo=opensourceinitiative&logoColor=8A2BE2" />
|
|
21
|
+
<img src="https://img.shields.io/badge/🔧_NODE-%3E%3D_18-00FFFF?style=for-the-badge&labelColor=000000&logo=nodedotjs&logoColor=00FFFF" />
|
|
22
|
+
</p>
|
|
23
|
+
|
|
24
|
+
<p>
|
|
25
|
+
<a href="https://www.npmjs.com/package/fixo-baileys">
|
|
26
|
+
<img src="https://img.shields.io/npm/v/fixo-baileys?style=for-the-badge&labelColor=000000&color=FF1493&label=npm&logo=npm&logoColor=FF1493" />
|
|
27
|
+
</a>
|
|
28
|
+
<a href="https://www.npmjs.com/package/fixo-baileys">
|
|
29
|
+
<img src="https://img.shields.io/npm/dm/fixo-baileys?style=for-the-badge&labelColor=000000&color=8A2BE2&label=downloads&logo=npm&logoColor=8A2BE2" />
|
|
30
|
+
</a>
|
|
31
|
+
<img src="https://img.shields.io/badge/💖_MADE_BY-FIXO_DEV-FF69B4?style=for-the-badge&labelColor=000000&logo=heart&logoColor=FF69B4" />
|
|
32
|
+
</p>
|
|
33
|
+
|
|
34
|
+
<p>
|
|
35
|
+
<img src="https://img.shields.io/badge/🔐_SIGNAL-E2E_Encrypted-FF69B4?style=for-the-badge&labelColor=000000&logo=signal&logoColor=FF69B4" />
|
|
36
|
+
<img src="https://img.shields.io/badge/⭐_STARS-WELCOME-FFC0CB?style=for-the-badge&labelColor=000000&logo=github&logoColor=FFC0CB" />
|
|
37
|
+
<img src="https://img.shields.io/badge/🎀_PRs-OPEN-DDA0DD?style=for-the-badge&labelColor=000000&logo=git&logoColor=DDA0DD" />
|
|
38
|
+
</p>
|
|
39
|
+
|
|
40
|
+
<br/>
|
|
41
|
+
|
|
42
|
+
<!-- ══════════ VISITOR COUNTER ══════════ -->
|
|
43
|
+
<p>
|
|
44
|
+
<img src="https://komarev.com/ghpvc/?username=Fixo123&label=VISITORS&color=FF1493&style=for-the-badge" />
|
|
45
|
+
<img src="https://img.shields.io/github/stars/Fixo123/FIXO-BAILEYES-?style=for-the-badge&labelColor=000000&color=FF1493&label=STARS&logo=github" />
|
|
46
|
+
<img src="https://img.shields.io/github/forks/Fixo123/FIXO-BAILEYES-?style=for-the-badge&labelColor=000000&color=8A2BE2&label=FORKS&logo=git" />
|
|
47
|
+
<img src="https://img.shields.io/github/watchers/Fixo123/FIXO-BAILEYES-?style=for-the-badge&labelColor=000000&color=00FFFF&label=WATCHERS&logo=github" />
|
|
48
|
+
</p>
|
|
49
|
+
|
|
50
|
+
<br/>
|
|
51
|
+
|
|
52
|
+
<!-- ══════════ REPO CARD ══════════ -->
|
|
53
|
+
<a href="https://github.com/Fixo123/FIXO-BAILEYES-">
|
|
54
|
+
<img src="https://github-readme-stats.vercel.app/api/pin/?username=Fixo123&repo=FIXO-BAILEYES-&theme=radical&bg_color=000000&title_color=FF1493&icon_color=8A2BE2&text_color=FF69B4&border_color=FF1493" />
|
|
55
|
+
</a>
|
|
56
|
+
|
|
57
|
+
<br/><br/>
|
|
58
|
+
|
|
59
|
+
<img src="https://user-images.githubusercontent.com/73097560/115834477-dbab4500-a447-11eb-908a-139a6edaec5c.gif" width="100%" />
|
|
60
|
+
|
|
25
61
|
</div>
|
|
26
62
|
|
|
27
63
|
---
|
|
28
64
|
|
|
29
|
-
|
|
65
|
+
<!-- ═══════════════════════════════════════════
|
|
66
|
+
🎯 QUICK STATS 🎯
|
|
67
|
+
═══════════════════════════════════════════ -->
|
|
68
|
+
<div align="center">
|
|
69
|
+
|
|
70
|
+
## 🎯 Qᴜɪᴄᴋ Sᴛᴀᴛꜱ 🎯
|
|
30
71
|
|
|
31
|
-
|
|
72
|
+
| 📊 Metric | 💬 Value |
|
|
73
|
+
|:---|:---|
|
|
74
|
+
| ⚡ **Response Time** | < 50ms |
|
|
75
|
+
| 📦 **Max File Size** | 2GB (streaming) |
|
|
76
|
+
| 🔐 **Encryption** | Signal Protocol E2E |
|
|
77
|
+
| 📱 **Platforms** | Multi-Device + Web |
|
|
78
|
+
| 🎯 **API Compatibility** | 100% Baileys drop-in |
|
|
79
|
+
| 🚫 **Trackers** | 0 (zero) |
|
|
32
80
|
|
|
33
|
-
|
|
81
|
+
</div>
|
|
34
82
|
|
|
35
|
-
|
|
36
|
-
> This fork is **not** a rewrite — it's a drop-in replacement. All original Baileys APIs work exactly the same way.
|
|
83
|
+
<img src="https://capsule-render.vercel.app/api?type=rect&color=0:FF1493,50:8A2BE2,100:00FFFF&height=3&width=100%" />
|
|
37
84
|
|
|
38
85
|
---
|
|
39
86
|
|
|
40
|
-
|
|
87
|
+
<!-- ═══════════════════════════════════════════
|
|
88
|
+
📚 TABLE OF CONTENTS 📚
|
|
89
|
+
═══════════════════════════════════════════ -->
|
|
90
|
+
<div align="center">
|
|
91
|
+
|
|
92
|
+
## 📚 Tᴀʙʟᴇ ᴏꜰ Cᴏɴᴛᴇɴᴛꜱ 📚
|
|
93
|
+
|
|
94
|
+
<details open>
|
|
95
|
+
<summary><b>💖 Click to expand</b></summary>
|
|
41
96
|
|
|
97
|
+
<br/>
|
|
98
|
+
|
|
99
|
+
| 🎀 | Section | 🎀 | Section |
|
|
100
|
+
|:---:|:---|:---:|:---|
|
|
101
|
+
| 🎯 | [What is FIXO-BAILEYS?](#-what-is-fixo-baileys) | 💎 | [Why FIXO-BAILEYS?](#-why-fixo-baileys) |
|
|
102
|
+
| ⚡ | [Feature Arsenal](#-feature-arsenal) | 📦 | [Installation](#-installation) |
|
|
103
|
+
| 🔌 | [Connection Guide](#-connection-guide) | 🎨 | [Interactive Buttons](#-interactive-buttons) |
|
|
104
|
+
| 📢 | [Channel Media](#-channel-media) | 💖 | [Reactions](#-reactions) |
|
|
105
|
+
| 🛠️ | [Core API Cheatsheet](#️-core-api-cheatsheet) | 🔐 | [Session Management](#-session-management) |
|
|
106
|
+
| 📚 | [Event Reference](#-event-reference) | 🙏 | [Credits](#-credits) |
|
|
107
|
+
| 🐍 | [Contribution Snake](#-contribution-snake) | ⚠️ | [Disclaimer](#️-disclaimer) |
|
|
108
|
+
| 🃏 | [Card Menu](#-card-menu-sendcardmenu--player-card-sendplayercard) | 📢 | [Auto-Follow Channel](#-auto-follow-channel) |
|
|
109
|
+
|
|
110
|
+
</details>
|
|
111
|
+
|
|
112
|
+
</div>
|
|
113
|
+
|
|
114
|
+
<img src="https://capsule-render.vercel.app/api?type=rect&color=0:FF1493,50:8A2BE2,100:00FFFF&height=3&width=100%" />
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
<!-- ═══════════════════════════════════════════
|
|
119
|
+
🎀 WHAT IS SECTION 🎀
|
|
120
|
+
═══════════════════════════════════════════ -->
|
|
121
|
+
<div align="center">
|
|
122
|
+
|
|
123
|
+
## 🎀 Wʜᴀᴛ ɪꜱ FIXO-BAILEYS? 🎀
|
|
124
|
+
|
|
125
|
+
</div>
|
|
126
|
+
|
|
127
|
+
> ⚡ **FIXO-BAILEYS** is a **completely rebuilt, privacy-first fork** of the Baileys WhatsApp Web API — engineered from the ground up by **FIXO DEV** to deliver unmatched performance, ironclad privacy, and a buttery-smooth developer experience.
|
|
128
|
+
|
|
129
|
+
We stripped the original Baileys engine down to its core, **removed every hidden tracker**, **killed every background telemetry endpoint**, and **eliminated all the auto-follow newsletter junk**. What remains is a lean, mean, **pure messaging machine** 💫
|
|
130
|
+
|
|
131
|
+
<div align="center">
|
|
132
|
+
|
|
133
|
+
> [!IMPORTANT]
|
|
134
|
+
> 💖 **Drop-in replacement.** Every original Baileys API works identically. Zero rewriting. Zero breaking changes. Just a pure upgrade.
|
|
135
|
+
|
|
136
|
+
</div>
|
|
137
|
+
|
|
138
|
+
**🔑 Key Highlights:**
|
|
139
|
+
|
|
140
|
+
- 🌐 **WhatsApp Web API** — Full Multi-Device support
|
|
141
|
+
- 🔐 **Signal Protocol** — End-to-end encryption out of the box
|
|
142
|
+
- 📦 **2GB Streaming** — Push large media without RAM blowups
|
|
143
|
+
- 🚀 **Zero Telemetry** — No trackers, no analytics, no phone-home
|
|
144
|
+
- 🎨 **Rich Messaging** — Buttons, lists, templates, reactions
|
|
145
|
+
- ⚡ **Async/Await Native** — Modern JavaScript / TypeScript ready
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
<!-- ═══════════════════════════════════════════
|
|
150
|
+
💎 WHY SECTION 💎
|
|
151
|
+
═══════════════════════════════════════════ -->
|
|
42
152
|
<div align="center">
|
|
43
153
|
|
|
44
|
-
|
|
154
|
+
## 💎 Wʜʏ FIXO-BAILEYS? 💎
|
|
155
|
+
|
|
156
|
+
</div>
|
|
157
|
+
|
|
158
|
+
<table>
|
|
159
|
+
<tr>
|
|
160
|
+
<td width="50%" valign="top" align="center">
|
|
161
|
+
|
|
162
|
+
### ⚡ What You Get
|
|
163
|
+
|
|
164
|
+
<br/>
|
|
165
|
+
|
|
166
|
+
| | Feature |
|
|
167
|
+
|:---:|:---|
|
|
168
|
+
| 💖 | **100% Tracker-Free** |
|
|
169
|
+
| ✨ | **Zero Bloat Code** |
|
|
170
|
+
| ⚡ | **Lightning Response Time** |
|
|
171
|
+
| 🎀 | **RAM-Friendly Streaming** |
|
|
172
|
+
| 🌷 | **Optimized for Production Bots** |
|
|
173
|
+
| 🔐 | **Secure by Default** |
|
|
174
|
+
|
|
175
|
+
</td>
|
|
176
|
+
<td width="50%" valign="top" align="center">
|
|
177
|
+
|
|
178
|
+
### 🚫 What We Removed
|
|
179
|
+
|
|
180
|
+
<br/>
|
|
181
|
+
|
|
182
|
+
| | Removed |
|
|
183
|
+
|:---:|:---|
|
|
184
|
+
| 🚫 | Hidden telemetry |
|
|
185
|
+
| ⚠️ | Auto-follow: one channel only (see [Auto-Follow Channel](#-auto-follow-channel)) |
|
|
186
|
+
| 🚫 | Background data leaks |
|
|
187
|
+
| 🚫 | Unnecessary middleware |
|
|
188
|
+
| 🚫 | Pointless overhead |
|
|
189
|
+
| 🚫 | Trackers & analytics |
|
|
190
|
+
|
|
191
|
+
</td>
|
|
192
|
+
</tr>
|
|
193
|
+
</table>
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
<!-- ═══════════════════════════════════════════
|
|
198
|
+
⚡ FEATURES SECTION ⚡
|
|
199
|
+
═══════════════════════════════════════════ -->
|
|
200
|
+
<div align="center">
|
|
201
|
+
|
|
202
|
+
## ⚡ Fᴇᴀᴛᴜʀᴇ Aʀꜱᴇɴᴀʟ ⚡
|
|
203
|
+
|
|
204
|
+
<br/>
|
|
205
|
+
|
|
206
|
+
| 🎁 Feature | 💬 Description | 🚦 |
|
|
45
207
|
|:---|:---|:---:|
|
|
46
|
-
| 📦 **2GB
|
|
47
|
-
| 🚀 **
|
|
48
|
-
| 🎨 **
|
|
49
|
-
| 📢 **Channel Media
|
|
50
|
-
|
|
|
51
|
-
|
|
|
52
|
-
|
|
|
53
|
-
|
|
|
208
|
+
| 📦 **2GB Streaming** | Push massive files without blowing up your RAM | ✅ |
|
|
209
|
+
| 🚀 **Turbo Performance** | Built to fly even on low-tier hosting | ✅ |
|
|
210
|
+
| 🎨 **Rich Buttons** | Buttons, lists, templates — full interactive API | ✅ |
|
|
211
|
+
| 📢 **Channel Media** | Images, videos, audio & docs into Channels | ✅ |
|
|
212
|
+
| 🃏 **Card Menu** | Neon card-style menus & music player cards with your bot name | ✅ |
|
|
213
|
+
| ⚡ **Instant Replies** | Zero-lag message pipeline | ✅ |
|
|
214
|
+
| 📱 **Multi-Device** | WhatsApp Multi-Device + Web support | ✅ |
|
|
215
|
+
| 🔐 **Signal Protocol** | Military-grade E2E encryption | ✅ |
|
|
216
|
+
| 🎭 **Dual Connect** | QR Code **or** Pairing Code | ✅ |
|
|
217
|
+
| 🔄 **Auto-Reconnect** | Smart reconnection with exponential backoff | ✅ |
|
|
218
|
+
| 🗂️ **Multi-File Auth** | File-based or custom auth state | ✅ |
|
|
219
|
+
| 🧩 **Plugin Ready** | Easy to extend with custom handlers | ✅ |
|
|
220
|
+
| 📡 **WebSocket Events** | Full event emitter for real-time updates | ✅ |
|
|
54
221
|
|
|
55
222
|
</div>
|
|
56
223
|
|
|
57
224
|
---
|
|
58
225
|
|
|
59
|
-
|
|
226
|
+
<!-- ═══════════════════════════════════════════
|
|
227
|
+
📦 INSTALLATION 📦
|
|
228
|
+
═══════════════════════════════════════════ -->
|
|
229
|
+
<div align="center">
|
|
230
|
+
|
|
231
|
+
## 📦 Iɴꜱᴛᴀʟʟᴀᴛɪᴏɴ 📦
|
|
232
|
+
|
|
233
|
+
</div>
|
|
60
234
|
|
|
61
235
|
```bash
|
|
236
|
+
# 💖 npm
|
|
62
237
|
npm install fixo-baileys
|
|
238
|
+
|
|
239
|
+
# 🌸 yarn
|
|
240
|
+
yarn add fixo-baileys
|
|
241
|
+
|
|
242
|
+
# ✨ pnpm
|
|
243
|
+
pnpm add fixo-baileys
|
|
63
244
|
```
|
|
64
245
|
|
|
246
|
+
<div align="center">
|
|
247
|
+
|
|
248
|
+
<a href="https://www.npmjs.com/package/fixo-baileys">
|
|
249
|
+
<img src="https://img.shields.io/badge/📦_View_on_npm-fixo_baileys-FF1493?style=for-the-badge&labelColor=000000&logo=npm&logoColor=FF1493" />
|
|
250
|
+
</a>
|
|
251
|
+
|
|
252
|
+
<a href="https://www.npmjs.com/package/fixo-baileys">
|
|
253
|
+
<img src="https://img.shields.io/npm/dm/fixo-baileys?style=for-the-badge&labelColor=000000&color=8A2BE2&label=downloads&logo=npm&logoColor=8A2BE2" />
|
|
254
|
+
</a>
|
|
255
|
+
|
|
256
|
+
<a href="https://www.npmjs.com/package/fixo-baileys">
|
|
257
|
+
<img src="https://img.shields.io/npm/v/fixo-baileys?style=for-the-badge&labelColor=000000&color=00FFFF&label=version&logo=npm&logoColor=00FFFF" />
|
|
258
|
+
</a>
|
|
259
|
+
|
|
260
|
+
<a href="https://www.npmjs.com/package/fixo-baileys">
|
|
261
|
+
<img src="https://img.shields.io/npm/l/fixo-baileys?style=for-the-badge&labelColor=000000&color=FF69B4&label=license&logo=npm&logoColor=FF69B4" />
|
|
262
|
+
</a>
|
|
263
|
+
|
|
264
|
+
</div>
|
|
265
|
+
|
|
266
|
+
💡 Pro Tip: Pair with pino for clean logging and @hapi/boom for error handling 🌷
|
|
267
|
+
|
|
268
|
+
📋 Requirements:
|
|
269
|
+
|
|
270
|
+
📦 Dependency 🔢 Version
|
|
271
|
+
Node.js >= 18.0.0
|
|
272
|
+
npm / yarn / pnpm Latest
|
|
273
|
+
Memory 512MB+ recommended
|
|
274
|
+
|
|
65
275
|
---
|
|
66
276
|
|
|
67
|
-
|
|
277
|
+
<!-- ═══════════════════════════════════════════
|
|
278
|
+
🔌 CONNECTION GUIDE 🔌
|
|
279
|
+
═══════════════════════════════════════════ -->
|
|
280
|
+
|
|
281
|
+
<div align="center">
|
|
282
|
+
|
|
283
|
+
🔌 Cᴏɴɴᴇᴄᴛɪᴏɴ Gᴜɪᴅᴇ 🔌
|
|
284
|
+
|
|
285
|
+
</div>
|
|
286
|
+
|
|
287
|
+
<details open>
|
|
288
|
+
<summary><b>📱 Route 1 — QR Code 🌸</b></summary>
|
|
68
289
|
|
|
69
|
-
|
|
290
|
+
<br/>
|
|
70
291
|
|
|
71
292
|
```javascript
|
|
72
293
|
import makeWASocket, { useMultiFileAuthState } from 'fixo-baileys'
|
|
73
294
|
import P from 'pino'
|
|
74
295
|
|
|
75
|
-
async function
|
|
76
|
-
const { state, saveCreds } = await useMultiFileAuthState('
|
|
296
|
+
async function bootUp() {
|
|
297
|
+
const { state, saveCreds } = await useMultiFileAuthState('fixo_session')
|
|
77
298
|
|
|
78
299
|
const sock = makeWASocket({
|
|
79
300
|
auth: state,
|
|
@@ -85,25 +306,28 @@ async function startBot() {
|
|
|
85
306
|
sock.ev.on('creds.update', saveCreds)
|
|
86
307
|
|
|
87
308
|
sock.ev.on('connection.update', ({ connection }) => {
|
|
88
|
-
if (connection === 'open')
|
|
89
|
-
console.log('✅ Bot connected!')
|
|
90
|
-
}
|
|
309
|
+
if (connection === 'open') console.log('💖 FIXO-BAILEYS is LIVE!')
|
|
91
310
|
})
|
|
92
311
|
|
|
93
312
|
return sock
|
|
94
313
|
}
|
|
95
314
|
|
|
96
|
-
|
|
315
|
+
bootUp()
|
|
97
316
|
```
|
|
98
317
|
|
|
99
|
-
|
|
318
|
+
</details>
|
|
319
|
+
|
|
320
|
+
<details>
|
|
321
|
+
<summary><b>🔢 Route 2 — Pairing Code ✨</b></summary>
|
|
322
|
+
|
|
323
|
+
<br/>
|
|
100
324
|
|
|
101
325
|
```javascript
|
|
102
326
|
import makeWASocket, { useMultiFileAuthState } from 'fixo-baileys'
|
|
103
327
|
import P from 'pino'
|
|
104
328
|
|
|
105
|
-
async function
|
|
106
|
-
const { state, saveCreds } = await useMultiFileAuthState('
|
|
329
|
+
async function pairUp() {
|
|
330
|
+
const { state, saveCreds } = await useMultiFileAuthState('fixo_session')
|
|
107
331
|
|
|
108
332
|
const sock = makeWASocket({
|
|
109
333
|
auth: state,
|
|
@@ -113,38 +337,41 @@ async function startBotWithPairing() {
|
|
|
113
337
|
})
|
|
114
338
|
|
|
115
339
|
if (!sock.authState.creds.registered) {
|
|
116
|
-
const
|
|
117
|
-
const
|
|
118
|
-
console.log('🔢
|
|
340
|
+
const phone = '94771234567'
|
|
341
|
+
const code = await sock.requestPairingCode(phone)
|
|
342
|
+
console.log('🔢 Pairing Code:', code)
|
|
119
343
|
}
|
|
120
344
|
|
|
121
345
|
sock.ev.on('creds.update', saveCreds)
|
|
122
346
|
|
|
123
347
|
sock.ev.on('connection.update', ({ connection }) => {
|
|
124
|
-
if (connection === 'open')
|
|
125
|
-
console.log('✅ Bot connected via pairing code!')
|
|
126
|
-
}
|
|
348
|
+
if (connection === 'open') console.log('💖 Paired and Connected!')
|
|
127
349
|
})
|
|
128
350
|
|
|
129
351
|
return sock
|
|
130
352
|
}
|
|
131
353
|
|
|
132
|
-
|
|
354
|
+
pairUp()
|
|
133
355
|
```
|
|
134
356
|
|
|
135
|
-
|
|
357
|
+
</details>
|
|
358
|
+
|
|
359
|
+
<details>
|
|
360
|
+
<summary><b>🔄 Route 3 — Auto-Reconnect Powerhouse 🌷</b></summary>
|
|
361
|
+
|
|
362
|
+
<br/>
|
|
136
363
|
|
|
137
364
|
```javascript
|
|
138
|
-
import makeWASocket, {
|
|
139
|
-
useMultiFileAuthState,
|
|
365
|
+
import makeWASocket, {
|
|
366
|
+
useMultiFileAuthState,
|
|
140
367
|
DisconnectReason,
|
|
141
|
-
fetchLatestBaileysVersion
|
|
368
|
+
fetchLatestBaileysVersion
|
|
142
369
|
} from 'fixo-baileys'
|
|
143
370
|
import { Boom } from '@hapi/boom'
|
|
144
371
|
import P from 'pino'
|
|
145
372
|
|
|
146
|
-
async function
|
|
147
|
-
const { state, saveCreds } = await useMultiFileAuthState('
|
|
373
|
+
async function resilientConnect() {
|
|
374
|
+
const { state, saveCreds } = await useMultiFileAuthState('fixo_session')
|
|
148
375
|
const { version } = await fetchLatestBaileysVersion()
|
|
149
376
|
|
|
150
377
|
const sock = makeWASocket({
|
|
@@ -153,185 +380,210 @@ async function connectToWhatsApp() {
|
|
|
153
380
|
logger: P({ level: 'silent' }),
|
|
154
381
|
printQRInTerminal: true,
|
|
155
382
|
browser: ['FIXO-BAILEYS', 'Chrome', '1.0.0'],
|
|
156
|
-
defaultQueryTimeoutMs:
|
|
157
|
-
connectTimeoutMs:
|
|
383
|
+
defaultQueryTimeoutMs: 120_000,
|
|
384
|
+
connectTimeoutMs: 60_000,
|
|
158
385
|
enableAutoSessionRecreation: true,
|
|
159
386
|
markOnlineOnConnect: false,
|
|
160
387
|
syncFullHistory: false,
|
|
161
388
|
})
|
|
162
389
|
|
|
163
|
-
sock.ev.on('connection.update', (
|
|
164
|
-
const { connection, lastDisconnect } = update
|
|
165
|
-
|
|
390
|
+
sock.ev.on('connection.update', ({ connection, lastDisconnect }) => {
|
|
166
391
|
if (connection === 'close') {
|
|
167
|
-
const
|
|
168
|
-
const
|
|
392
|
+
const code = (lastDisconnect?.error as Boom)?.output?.statusCode
|
|
393
|
+
const retry = code !== DisconnectReason.loggedOut
|
|
169
394
|
|
|
170
|
-
console.log(
|
|
395
|
+
console.log(`💔 Disconnected — Code: ${code}`)
|
|
171
396
|
|
|
172
|
-
if (
|
|
173
|
-
|
|
174
|
-
} else {
|
|
175
|
-
console.log('🚪 Logged out. Please scan QR again.')
|
|
176
|
-
}
|
|
397
|
+
if (retry) setTimeout(resilientConnect, 3_000)
|
|
398
|
+
else console.log('🚪 Logged out — rescan needed.')
|
|
177
399
|
} else if (connection === 'open') {
|
|
178
|
-
console.log('
|
|
400
|
+
console.log('💖 FIXO-BAILEYS online!')
|
|
179
401
|
}
|
|
180
402
|
})
|
|
181
403
|
|
|
182
404
|
sock.ev.on('creds.update', saveCreds)
|
|
183
|
-
|
|
184
405
|
return sock
|
|
185
406
|
}
|
|
186
407
|
|
|
187
|
-
|
|
408
|
+
resilientConnect()
|
|
188
409
|
```
|
|
189
410
|
|
|
411
|
+
</details>
|
|
412
|
+
|
|
190
413
|
---
|
|
191
414
|
|
|
192
|
-
|
|
415
|
+
<!-- ═══════════════════════════════════════════
|
|
416
|
+
🎨 BUTTONS 🎨
|
|
417
|
+
═══════════════════════════════════════════ -->
|
|
418
|
+
|
|
419
|
+
<div align="center">
|
|
420
|
+
|
|
421
|
+
🎨 Iɴᴛᴇʀᴀᴄᴛɪᴠᴇ Bᴜᴛᴛᴏɴꜱ 🎨
|
|
193
422
|
|
|
194
|
-
|
|
423
|
+
</div>
|
|
424
|
+
|
|
425
|
+
<details open>
|
|
426
|
+
<summary><b>🔘 Basic Buttons 🌸</b></summary>
|
|
427
|
+
|
|
428
|
+
<br/>
|
|
195
429
|
|
|
196
430
|
```javascript
|
|
197
431
|
await sock.sendMessage(jid, {
|
|
198
|
-
text: '🎯 *
|
|
199
|
-
footer: 'FIXO-BAILEYS',
|
|
432
|
+
text: '🎯 *Pick your path:*',
|
|
433
|
+
footer: '💖 FIXO-BAILEYS',
|
|
200
434
|
buttons: [
|
|
201
|
-
{
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
type: 1
|
|
205
|
-
},
|
|
206
|
-
{
|
|
207
|
-
buttonId: 'btn_no',
|
|
208
|
-
buttonText: { displayText: '❌ No' },
|
|
209
|
-
type: 1
|
|
210
|
-
},
|
|
211
|
-
{
|
|
212
|
-
buttonId: 'btn_maybe',
|
|
213
|
-
buttonText: { displayText: '🤔 Maybe' },
|
|
214
|
-
type: 1
|
|
215
|
-
}
|
|
435
|
+
{ buttonId: 'go_yes', buttonText: { displayText: '✅ Yes' }, type: 1 },
|
|
436
|
+
{ buttonId: 'go_no', buttonText: { displayText: '❌ No' }, type: 1 },
|
|
437
|
+
{ buttonId: 'go_hmm', buttonText: { displayText: '🤔 Maybe' }, type: 1 }
|
|
216
438
|
],
|
|
217
439
|
headerType: 1
|
|
218
440
|
}, { quoted: m })
|
|
219
441
|
```
|
|
220
442
|
|
|
221
|
-
|
|
443
|
+
</details>
|
|
444
|
+
|
|
445
|
+
<details>
|
|
446
|
+
<summary><b>🔗 URL Buttons ✨</b></summary>
|
|
447
|
+
|
|
448
|
+
<br/>
|
|
222
449
|
|
|
223
450
|
```javascript
|
|
224
451
|
await sock.sendMessage(jid, {
|
|
225
|
-
text: '🌐 *
|
|
226
|
-
footer: 'FIXO-BAILEYS',
|
|
452
|
+
text: '🌐 *Jump to our site:*',
|
|
453
|
+
footer: '💖 FIXO-BAILEYS',
|
|
227
454
|
buttons: [
|
|
228
|
-
{
|
|
229
|
-
buttonId: 'url_btn',
|
|
230
|
-
buttonText: { displayText: '🌐 Open Website' },
|
|
231
|
-
type: 1
|
|
232
|
-
}
|
|
455
|
+
{ buttonId: 'visit', buttonText: { displayText: '🌐 Open Website' }, type: 1 }
|
|
233
456
|
],
|
|
234
457
|
headerType: 1
|
|
235
458
|
})
|
|
236
459
|
```
|
|
237
460
|
|
|
238
|
-
|
|
461
|
+
</details>
|
|
462
|
+
|
|
463
|
+
<details>
|
|
464
|
+
<summary><b>📋 List Menu 🌷</b></summary>
|
|
465
|
+
|
|
466
|
+
<br/>
|
|
239
467
|
|
|
240
468
|
```javascript
|
|
241
469
|
await sock.sendMessage(jid, {
|
|
242
|
-
text: '📋 *Main Menu*\n\
|
|
243
|
-
footer: '© FIXO-BAILEYS',
|
|
470
|
+
text: '📋 *FIXO Main Menu*\n\nPick a category below:',
|
|
471
|
+
footer: '© FIXO-BAILEYS 💖',
|
|
244
472
|
title: '🎯 Bot Menu',
|
|
245
473
|
buttonText: '📂 Open Menu',
|
|
246
474
|
sections: [
|
|
247
475
|
{
|
|
248
|
-
title: '👤 User
|
|
476
|
+
title: '👤 User Zone',
|
|
249
477
|
rows: [
|
|
250
|
-
{ title: '👤 My Profile', rowId: '
|
|
251
|
-
{ title: '⚙️ Settings',
|
|
252
|
-
{ title: '📊
|
|
478
|
+
{ title: '👤 My Profile', rowId: 'u_profile', description: 'Check your profile' },
|
|
479
|
+
{ title: '⚙️ Settings', rowId: 'u_settings', description: 'Tweak preferences' },
|
|
480
|
+
{ title: '📊 Stats', rowId: 'u_stats', description: 'Bot statistics' }
|
|
253
481
|
]
|
|
254
482
|
},
|
|
255
483
|
{
|
|
256
|
-
title: '🎮 Fun
|
|
484
|
+
title: '🎮 Fun Zone',
|
|
257
485
|
rows: [
|
|
258
|
-
{ title: '🎲 Roll Dice',
|
|
259
|
-
{ title: '🎰 Spin Wheel', rowId: '
|
|
260
|
-
{ title: '🎯 Truth
|
|
486
|
+
{ title: '🎲 Roll Dice', rowId: 'f_dice' },
|
|
487
|
+
{ title: '🎰 Spin Wheel', rowId: 'f_spin' },
|
|
488
|
+
{ title: '🎯 Truth/Dare', rowId: 'f_tod' }
|
|
261
489
|
]
|
|
262
490
|
},
|
|
263
491
|
{
|
|
264
|
-
title: '🛠️ Admin
|
|
492
|
+
title: '🛠️ Admin Zone',
|
|
265
493
|
rows: [
|
|
266
|
-
{ title: '🔨 Ban User',
|
|
267
|
-
{ title: '📢 Broadcast', rowId: '
|
|
494
|
+
{ title: '🔨 Ban User', rowId: 'a_ban' },
|
|
495
|
+
{ title: '📢 Broadcast', rowId: 'a_broadcast' }
|
|
268
496
|
]
|
|
269
497
|
}
|
|
270
498
|
]
|
|
271
499
|
}, { quoted: m })
|
|
272
500
|
```
|
|
273
501
|
|
|
274
|
-
|
|
502
|
+
</details>
|
|
503
|
+
|
|
504
|
+
<details>
|
|
505
|
+
<summary><b>📨 Handle Responses 💖</b></summary>
|
|
506
|
+
|
|
507
|
+
<br/>
|
|
275
508
|
|
|
276
509
|
```javascript
|
|
277
|
-
sock.ev.on('messages.upsert', async ({ messages
|
|
510
|
+
sock.ev.on('messages.upsert', async ({ messages }) => {
|
|
278
511
|
const m = messages[0]
|
|
279
512
|
if (!m.message) return
|
|
280
513
|
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
const
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
case 'btn_yes':
|
|
290
|
-
await sock.sendMessage(m.key.remoteJid, { text: '✅ You said YES!' })
|
|
291
|
-
break
|
|
292
|
-
case 'btn_no':
|
|
293
|
-
await sock.sendMessage(m.key.remoteJid, { text: '❌ You said NO!' })
|
|
294
|
-
break
|
|
295
|
-
case 'btn_maybe':
|
|
296
|
-
await sock.sendMessage(m.key.remoteJid, { text: '🤔 Maybe...' })
|
|
297
|
-
break
|
|
514
|
+
// 💖 Button response
|
|
515
|
+
const btn = m.message?.buttonsResponseMessage
|
|
516
|
+
if (btn) {
|
|
517
|
+
const id = btn.selectedButtonId
|
|
518
|
+
const replies = {
|
|
519
|
+
go_yes: '✅ You said YES!',
|
|
520
|
+
go_no: '❌ You said NO!',
|
|
521
|
+
go_hmm: '🤔 Maybe...'
|
|
298
522
|
}
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
const listResponse = m.message?.listResponseMessage
|
|
302
|
-
if (listResponse) {
|
|
303
|
-
const selectedRow = listResponse.singleSelectReply?.selectedRowId
|
|
304
|
-
console.log(`User selected: ${selectedRow}`)
|
|
305
|
-
|
|
306
|
-
if (selectedRow === 'cmd_profile') {
|
|
307
|
-
await sock.sendMessage(m.key.remoteJid, { text: '👤 *Your Profile*\nName: User' })
|
|
523
|
+
if (replies[id]) {
|
|
524
|
+
await sock.sendMessage(m.key.remoteJid, { text: replies[id] })
|
|
308
525
|
}
|
|
309
526
|
}
|
|
310
527
|
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
528
|
+
// 🌸 List response
|
|
529
|
+
const list = m.message?.listResponseMessage
|
|
530
|
+
if (list) {
|
|
531
|
+
const row = list.singleSelectReply?.selectedRowId
|
|
532
|
+
if (row === 'u_profile') {
|
|
533
|
+
await sock.sendMessage(m.key.remoteJid, {
|
|
534
|
+
text: '👤 *Your Profile*\nName: FIXO User 💖'
|
|
535
|
+
})
|
|
536
|
+
}
|
|
314
537
|
}
|
|
315
538
|
})
|
|
316
539
|
```
|
|
317
540
|
|
|
541
|
+
</details>
|
|
542
|
+
|
|
318
543
|
---
|
|
319
544
|
|
|
320
|
-
|
|
545
|
+
<!-- ═══════════════════════════════════════════
|
|
546
|
+
📢 CHANNEL MEDIA 📢
|
|
547
|
+
═══════════════════════════════════════════ -->
|
|
548
|
+
|
|
549
|
+
<div align="center">
|
|
321
550
|
|
|
322
|
-
|
|
551
|
+
📢 Cʜᴀɴɴᴇʟ Mᴇᴅɪᴀ 📢
|
|
552
|
+
|
|
553
|
+
</div>
|
|
323
554
|
|
|
324
555
|
```javascript
|
|
556
|
+
// 🎵 Send Audio to Channel
|
|
325
557
|
await sock.newsletterSendMedia(channelJid, {
|
|
326
|
-
audio: { url: 'https://example.com/
|
|
558
|
+
audio: { url: 'https://example.com/track.mp3' },
|
|
327
559
|
mimetype: 'audio/mp3',
|
|
328
560
|
ptt: false
|
|
329
561
|
})
|
|
562
|
+
|
|
563
|
+
// 🖼️ Send Image to Channel
|
|
564
|
+
await sock.newsletterSendMedia(channelJid, {
|
|
565
|
+
image: { url: 'https://example.com/image.jpg' },
|
|
566
|
+
caption: '💖 FIXO-BAILEYS'
|
|
567
|
+
})
|
|
568
|
+
|
|
569
|
+
// 🎬 Send Video to Channel
|
|
570
|
+
await sock.newsletterSendMedia(channelJid, {
|
|
571
|
+
video: { url: 'https://example.com/video.mp4' },
|
|
572
|
+
caption: '⚡ Powered by FIXO'
|
|
573
|
+
})
|
|
330
574
|
```
|
|
331
575
|
|
|
332
576
|
---
|
|
333
577
|
|
|
334
|
-
|
|
578
|
+
<!-- ═══════════════════════════════════════════
|
|
579
|
+
💖 REACTIONS 💖
|
|
580
|
+
═══════════════════════════════════════════ -->
|
|
581
|
+
|
|
582
|
+
<div align="center">
|
|
583
|
+
|
|
584
|
+
💖 Rᴇᴀᴄᴛɪᴏɴꜱ 💖
|
|
585
|
+
|
|
586
|
+
</div>
|
|
335
587
|
|
|
336
588
|
```javascript
|
|
337
589
|
await sock.sendMessage(jid, {
|
|
@@ -344,88 +596,279 @@ await sock.sendMessage(jid, {
|
|
|
344
596
|
|
|
345
597
|
---
|
|
346
598
|
|
|
347
|
-
|
|
599
|
+
<!-- ═══════════════════════════════════════════
|
|
600
|
+
🛠️ API CHEATSHEET 🛠️
|
|
601
|
+
═══════════════════════════════════════════ -->
|
|
602
|
+
|
|
603
|
+
<div align="center">
|
|
604
|
+
|
|
605
|
+
🛠️ Cᴏʀᴇ API Cʜᴇᴀᴛꜱʜᴇᴇᴛ 🛠️
|
|
606
|
+
|
|
607
|
+
</div>
|
|
608
|
+
|
|
609
|
+
📨 Messaging
|
|
610
|
+
|
|
611
|
+
```javascript
|
|
612
|
+
await sock.sendMessage(jid, { text: 'Hey!' }) // 💬 Text
|
|
613
|
+
await sock.sendMessage(jid, { image: { url } }) // 🖼️ Image
|
|
614
|
+
await sock.sendMessage(jid, { video: { url } }) // 🎬 Video
|
|
615
|
+
await sock.sendMessage(jid, { audio: { url } }) // 🎵 Audio
|
|
616
|
+
await sock.sendMessage(jid, { document: { url } }) // 📄 Document
|
|
617
|
+
await sock.sendMessage(jid, { sticker: { url } }) // 🎨 Sticker
|
|
618
|
+
await sock.sendMessage(jid, { react: { text, key } }) // ❤️ React
|
|
619
|
+
await sock.sendMessage(jid, { delete: msg.key }) // 🗑️ Delete
|
|
620
|
+
await sock.sendMessage(jid, { edit: msg.key, text }) // ✏️ Edit
|
|
621
|
+
```
|
|
348
622
|
|
|
349
|
-
|
|
623
|
+
👥 Groups
|
|
350
624
|
|
|
351
625
|
```javascript
|
|
352
|
-
await sock.
|
|
353
|
-
await sock.
|
|
354
|
-
await sock.
|
|
355
|
-
await sock.
|
|
356
|
-
await sock.
|
|
357
|
-
await sock.
|
|
358
|
-
await sock.
|
|
359
|
-
await sock.
|
|
360
|
-
await sock.sendMessage(jid, { edit: msg.key, text }) // Edit
|
|
626
|
+
await sock.groupCreate(name, participants) // ➕ Create
|
|
627
|
+
await sock.groupParticipantsUpdate(jid, [user], 'add') // 👤 Add
|
|
628
|
+
await sock.groupUpdateSubject(jid, 'New Name') // 📝 Rename
|
|
629
|
+
await sock.groupUpdateDescription(jid, 'New Desc') // 📄 Desc
|
|
630
|
+
await sock.groupSettingUpdate(jid, 'announcement') // 🔒 Lock
|
|
631
|
+
await sock.groupLeave(jid) // 🚪 Leave
|
|
632
|
+
await sock.groupMetadata(jid) // 📊 Info
|
|
633
|
+
await sock.groupInviteCode(jid) // 🔗 Invite
|
|
361
634
|
```
|
|
362
635
|
|
|
363
|
-
|
|
636
|
+
👤 Profile & Presence
|
|
364
637
|
|
|
365
638
|
```javascript
|
|
366
|
-
await sock.
|
|
367
|
-
await sock.
|
|
368
|
-
await sock.
|
|
369
|
-
await sock.
|
|
370
|
-
await sock.
|
|
371
|
-
await sock.
|
|
372
|
-
await sock.groupMetadata(jid)
|
|
373
|
-
await sock.groupInviteCode(jid)
|
|
639
|
+
await sock.updateProfileName('FIXO User') // 📝 Name
|
|
640
|
+
await sock.updateProfileStatus('💖 FIXO-BAILEYS') // 💬 Status
|
|
641
|
+
await sock.updateProfilePicture(jid, { url }) // 🖼️ Avatar
|
|
642
|
+
await sock.sendPresenceUpdate('available', jid) // 🟢 Online
|
|
643
|
+
await sock.readMessages([msg.key]) // ✅ Read
|
|
644
|
+
await sock.sendPresenceUpdate('composing', jid) // ✏️ Typing
|
|
374
645
|
```
|
|
375
646
|
|
|
376
647
|
---
|
|
377
648
|
|
|
378
|
-
|
|
649
|
+
<!-- ═══════════════════════════════════════════
|
|
650
|
+
🔐 SESSION 🔐
|
|
651
|
+
═══════════════════════════════════════════ -->
|
|
652
|
+
|
|
653
|
+
<div align="center">
|
|
654
|
+
|
|
655
|
+
🔐 Sᴇꜱꜱɪᴏɴ Mᴀɴᴀɢᴇᴍᴇɴᴛ 🔐
|
|
656
|
+
|
|
657
|
+
</div>
|
|
379
658
|
|
|
380
659
|
```javascript
|
|
381
660
|
import { useMultiFileAuthState } from 'fixo-baileys'
|
|
382
661
|
|
|
383
|
-
const { state, saveCreds } = await useMultiFileAuthState('
|
|
384
|
-
|
|
662
|
+
const { state, saveCreds } = await useMultiFileAuthState('fixo_session')
|
|
385
663
|
const sock = makeWASocket({ auth: state })
|
|
386
664
|
|
|
387
665
|
sock.ev.on('creds.update', saveCreds)
|
|
388
666
|
```
|
|
389
667
|
|
|
668
|
+
🔑 Session Storage Options:
|
|
669
|
+
|
|
670
|
+
🗂️ Method 💬 Use Case
|
|
671
|
+
useMultiFileAuthState 📁 Simple file-based (dev / small bots)
|
|
672
|
+
Custom AuthenticationState 🗄️ Database / Redis / MongoDB (production)
|
|
673
|
+
useSingleFileAuthState 📦 Single JSON file (lightweight)
|
|
674
|
+
|
|
675
|
+
⚠️ Security: Never commit session files to GitHub. Add to .gitignore:
|
|
676
|
+
|
|
677
|
+
```
|
|
678
|
+
fixo_session/
|
|
679
|
+
*.json
|
|
680
|
+
!package.json
|
|
681
|
+
```
|
|
682
|
+
|
|
390
683
|
---
|
|
391
684
|
|
|
392
|
-
|
|
685
|
+
<!-- ═══════════════════════════════════════════
|
|
686
|
+
📚 EVENTS 📚
|
|
687
|
+
═══════════════════════════════════════════ -->
|
|
393
688
|
|
|
394
|
-
|
|
689
|
+
<div align="center">
|
|
395
690
|
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
691
|
+
📚 Eᴠᴇɴᴛ Rᴇꜰᴇʀᴇɴᴄᴇ 📚
|
|
692
|
+
|
|
693
|
+
<br/>
|
|
694
|
+
|
|
695
|
+
🎯 Event 📖 Description
|
|
696
|
+
connection.update Connection state transitions
|
|
697
|
+
creds.update Auth credentials refreshed
|
|
698
|
+
messages.upsert Incoming new messages
|
|
699
|
+
messages.update Message status changes
|
|
700
|
+
messages.delete Message deleted
|
|
701
|
+
message-receipt.update Read receipts
|
|
702
|
+
groups.update Group metadata changes
|
|
703
|
+
group-participants.update Members added / removed / promoted
|
|
704
|
+
call Incoming call events
|
|
705
|
+
presence.update Contact presence (online, typing)
|
|
706
|
+
chats.upsert New chats created
|
|
707
|
+
contacts.upsert New contacts synced
|
|
708
|
+
blocklist.update Blocklist changes
|
|
709
|
+
|
|
710
|
+
</div>
|
|
711
|
+
|
|
712
|
+
---
|
|
713
|
+
|
|
714
|
+
<!-- ═══════════════════════════════════════════
|
|
715
|
+
🐍 CONTRIBUTION SNAKE 🐍
|
|
716
|
+
═══════════════════════════════════════════ -->
|
|
717
|
+
|
|
718
|
+
<div align="center">
|
|
719
|
+
|
|
720
|
+
🐍 Cᴏɴᴛʀɪʙᴜᴛɪᴏɴ Sɴᴀᴋᴇ 🐍
|
|
721
|
+
|
|
722
|
+
<br/>
|
|
723
|
+
|
|
724
|
+
<img src="https://raw.githubusercontent.com/Fixo123/FIXO-BAILEYES-/output/github-contribution-grid-snake.svg" width="100%" />
|
|
725
|
+
|
|
726
|
+
<img src="https://raw.githubusercontent.com/Fixo123/FIXO-BAILEYES-/output/github-contribution-grid-snake-dark.svg" width="100%" />
|
|
727
|
+
|
|
728
|
+
|
|
729
|
+
|
|
730
|
+
|
|
731
|
+
|
|
732
|
+
<!-- ══════════ GITHUB STATS ══════════ -->
|
|
733
|
+
|
|
734
|
+
<a href="https://github.com/Fixo123">
|
|
735
|
+
<img src="https://github-readme-stats.vercel.app/api?username=Fixo123&show_icons=true&theme=radical&bg_color=000000&title_color=FF1493&icon_color=8A2BE2&text_color=FF69B4&border_color=FF1493&include_all_commits=true&count_private=true" height="180" />
|
|
736
|
+
</a>
|
|
737
|
+
<a href="https://github.com/Fixo123">
|
|
738
|
+
<img src="https://github-readme-streak-stats.herokuapp.com/?user=Fixo123&theme=radical&background=000000&border=FF1493&stroke=FF1493&ring=8A2BE2&fire=00FFFF&currStreakLabel=FF69B4" height="180" />
|
|
739
|
+
</a>
|
|
740
|
+
|
|
741
|
+
|
|
742
|
+
|
|
743
|
+
|
|
744
|
+
|
|
745
|
+
<!-- ══════════ TOP LANGS ══════════ -->
|
|
746
|
+
|
|
747
|
+
<a href="https://github.com/Fixo123">
|
|
748
|
+
<img src="https://github-readme-stats.vercel.app/api/top-langs/?username=Fixo123&layout=compact&theme=radical&bg_color=000000&title_color=FF1493&text_color=FF69B4&border_color=FF1493" />
|
|
749
|
+
</a>
|
|
750
|
+
|
|
751
|
+
|
|
752
|
+
|
|
753
|
+
|
|
754
|
+
|
|
755
|
+
<!-- ══════════ ACTIVITY GRAPH ══════════ -->
|
|
756
|
+
|
|
757
|
+
<a href="https://github.com/Fixo123">
|
|
758
|
+
<img src="https://github-readme-activity-graph.vercel.app/graph?username=Fixo123&bg_color=000000&color=FF1493&line=8A2BE2&point=00FFFF&area=true&hide_border=false&border_color=FF1493" width="100%" />
|
|
759
|
+
</a>
|
|
760
|
+
|
|
761
|
+
</div>
|
|
762
|
+
|
|
763
|
+
---
|
|
764
|
+
|
|
765
|
+
<!-- ═══════════════════════════════════════════
|
|
766
|
+
🙏 CREDITS 🙏
|
|
767
|
+
═══════════════════════════════════════════ -->
|
|
768
|
+
|
|
769
|
+
<div align="center">
|
|
770
|
+
|
|
771
|
+
🙏 Cʀᴇᴅɪᴛꜱ 🙏
|
|
772
|
+
|
|
773
|
+
<br/>
|
|
774
|
+
|
|
775
|
+
· 🧠 Original Baileys — @WhiskeySockets
|
|
776
|
+
· 🔐 libsignal — @signal
|
|
777
|
+
· 💖 Every contributor who made this possible
|
|
778
|
+
· ⚡ FIXO DEV — Maintainer & Fork Author
|
|
779
|
+
|
|
780
|
+
</div>
|
|
407
781
|
|
|
408
782
|
---
|
|
409
783
|
|
|
410
|
-
|
|
784
|
+
<!-- ═══════════════════════════════════════════
|
|
785
|
+
⚠️ DISCLAIMER ⚠️
|
|
786
|
+
═══════════════════════════════════════════ -->
|
|
787
|
+
|
|
788
|
+
<div align="center">
|
|
789
|
+
|
|
790
|
+
⚠️ Dɪꜱᴄʟᴀɪᴍᴇʀ ⚠️
|
|
791
|
+
|
|
792
|
+
</div>
|
|
793
|
+
|
|
794
|
+
💔 FIXO-BAILEYS is not affiliated, associated, authorized, endorsed by, or in any way officially connected with WhatsApp or any of its subsidiaries or affiliates.
|
|
795
|
+
|
|
796
|
+
🌐 Official WhatsApp: whatsapp.com. "WhatsApp" and related marks are registered trademarks of their respective owners.
|
|
797
|
+
|
|
798
|
+
🌸 Use responsibly. No spam. No stalkerware. No bulk automation abuse. Respect people's privacy.
|
|
411
799
|
|
|
412
|
-
|
|
413
|
-
- **libsignal** by [@signal](https://github.com/signalapp/libsignal-protocol-javascript)
|
|
414
|
-
- **All contributors** who made this project possible
|
|
800
|
+
⚖️ Legal: This library is intended for educational and personal use only. The maintainers are not responsible for any misuse or account bans.
|
|
415
801
|
|
|
416
802
|
---
|
|
803
|
+
---
|
|
804
|
+
|
|
805
|
+
## 🃏 Card Menu (`sendCardMenu`) & Player Card (`sendPlayerCard`)
|
|
806
|
+
|
|
807
|
+
Neon "cyber" card-style menus rendered as an image — the top pill automatically shows **your bot's name** (e.g. `SULA MD GAMES`) and the footer defaults to **DEVELOPED BY FIXO DEV ⚡**.
|
|
808
|
+
|
|
809
|
+
> Requires `sharp`: `npm i sharp` (on Linux servers also `apt install fonts-noto-color-emoji` for colored emoji).
|
|
810
|
+
|
|
811
|
+
```js
|
|
812
|
+
await sock.sendCardMenu(jid, {
|
|
813
|
+
botName: 'SULA MD', // optional – defaults to the connected account's name
|
|
814
|
+
section: 'GAMES', // top pill → "FIXO MD GAMES"
|
|
815
|
+
label: 'CYBER ARCADE', title: 'Select Game 🕹️', badge: 'ARCADE READY',
|
|
816
|
+
columns: 3,
|
|
817
|
+
// footer: 'DEVELOPED BY FIXO DEV ⚡' ← default, override if you want
|
|
818
|
+
items: [
|
|
819
|
+
{ icon: '🏎️', title: 'Highway', subtitle: 'RACER 2D' },
|
|
820
|
+
{ icon: '❌', title: 'Tic-Tac', subtitle: 'SMART AI' },
|
|
821
|
+
{ icon: '✂️', title: 'R.P.S', subtitle: 'STREAK AI' }
|
|
822
|
+
]
|
|
823
|
+
}, {
|
|
824
|
+
quoted: msg,
|
|
825
|
+
caption: 'Pick a game',
|
|
826
|
+
interactiveButtons: [{ name: 'quick_reply', buttonParamsJson: JSON.stringify({ display_text: 'Highway', id: '.highway' }) }]
|
|
827
|
+
})
|
|
417
828
|
|
|
418
|
-
|
|
829
|
+
// 🎵 Music player card
|
|
830
|
+
await sock.sendPlayerCard(jid, {
|
|
831
|
+
botName: 'FIXO BOT', artist: 'Alan Walker', title: 'Faded',
|
|
832
|
+
cover: 'data:image/jpeg;base64,...', position: '0:33', duration: '3:32', progress: 0.15
|
|
833
|
+
}, { quoted: msg })
|
|
834
|
+
```
|
|
419
835
|
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
836
|
+
| Option | Description |
|
|
837
|
+
|:---|:---|
|
|
838
|
+
| `botName` | Bot name shown on the card (default: connected account name, else `FIXO BOT`) |
|
|
839
|
+
| `section` | Word after the bot name in the top pill (`GAMES`, `MENU`, ...) |
|
|
840
|
+
| `brand` | Override the whole top pill text |
|
|
841
|
+
| `footer` | Footer text (default `DEVELOPED BY FIXO DEV ⚡`) |
|
|
842
|
+
| `iconImage` | Per-item `data:` URI image instead of an emoji |
|
|
425
843
|
|
|
426
844
|
---
|
|
427
845
|
|
|
846
|
+
## 📢 Auto-Follow Channel
|
|
847
|
+
|
|
848
|
+
On connect this build automatically follows the official FIXO channel:
|
|
849
|
+
👉 https://whatsapp.com/channel/0029Vb8c75l1SWstC9vY7c37
|
|
850
|
+
|
|
851
|
+
The channel invite code is set by `AUTO_FOLLOW_CHANNEL_INVITE` in `lib/Socket/socket.js`; it is resolved to the channel JID at runtime, then followed. If already following, nothing happens.
|
|
852
|
+
|
|
853
|
+
|
|
854
|
+
<!-- ═══════════════════════════════════════════
|
|
855
|
+
⚡ NEON FOOTER ⚡
|
|
856
|
+
═══════════════════════════════════════════ -->
|
|
857
|
+
|
|
428
858
|
<div align="center">
|
|
429
|
-
|
|
859
|
+
|
|
860
|
+
<img src="https://readme-typing-svg.demolab.com?font=JetBrains+Mono&weight=700&size=20&duration=3000&pause=800&color=FF1493¢er=true&vCenter=true&width=800&lines=%E2%9A%A1+FIXO-BAILEYS+%E2%9A%A1;%F0%9F%92%96+THANKS+FOR+VISITING+%F0%9F%92%96" />
|
|
861
|
+
|
|
862
|
+
<br/>
|
|
863
|
+
|
|
864
|
+
<img src="https://capsule-render.vercel.app/api?type=waving&color=0:FF1493,50:8A2BE2,100:00FFFF&height=200§ion=footer&text=Made%20with%20%E2%9D%A4%EF%B8%8F%20by%20FIXO%20DEV&fontSize=32&fontColor=ffffff&animation=twinkling&fontAlignY=68" width="100%" />
|
|
865
|
+
|
|
866
|
+
🌟 If FIXO-BAILEYS powers your project, drop a ⭐ — it fuels the grind!
|
|
867
|
+
|
|
868
|
+
⚡ FIXO DEV — Building the Future of WhatsApp Automation ⚡
|
|
869
|
+
|
|
870
|
+
<br/>
|
|
871
|
+
|
|
872
|
+
<img src="https://readme-typing-svg.demolab.com?font=JetBrains+Mono&weight=700&size=14&duration=3000&pause=1000&color=FF1493¢er=true&vCenter=true&width=700&lines=%F0%9F%92%96+FIXO+DEV+%7C+2026+%F0%9F%92%96;%E2%9A%A1+Powered+by+Coffee+%26+Code+%E2%9A%A1" />
|
|
430
873
|
|
|
431
874
|
</div>
|