WhatsApp API Modification
βΈ πππΌπ β ππππππ.π½πΌπππππ
βΈ Deskripsi
sistem.baileys adalah modul inti OTAX yang menangani seluruh proses koneksi WhatsApp. Modul ini mengelola lifecycle WebSocket Baileys, validasi sesi, pairing, sinkronisasi event, media handler, hingga mekanisme auto-recovery. Sistem ini didesain untuk performa tinggi, reconnect cepat, dan stabilitas maksimal dalam ekosistem OTAX.
---
βΈ Fitur Utama
βοΈ Inisialisasi WebSocket Baileys dengan konfigurasi OTAX
π Auto-reconnect dan pemulihan state ketika koneksi terputus
π§© Integrasi penuh ke modul OTAX lain: SessionPool, SenderLock, Gateway, EventRouter
π‘ Event lengkap: messages.upsert, connection.update, contacts.update, groups.update
π Proteksi runtime: anti-crash, anti-tamper, auto-heal, markOnlineOnConnect control
π¦ Store terintegrasi: in-memory, FS, dan adapter eksternal
πΌοΈ Media utility: unduh, reupload, convert, decrypt, stream
π² Pairing mode ganda: QR dan pairing code
---
βΈ Alur Kerja sistem.baileys
1. Memuat kredensial dari OTAX_SESSION_DIR
2. Membuka koneksi WebSocket WhatsApp
3. Melakukan sinkronisasi perangkat
4. Mengaktifkan event handler inti
5. Menghubungkan store untuk riwayat dan retry
6. Menjalankan sistem proteksi runtime
7. Mengaktifkan server event internal untuk modul lain
8. Jika koneksi terputus, sistem menjalankan auto-recovery
---
βΈ Konfigurasi Sistem
Gunakan environment variable berikut:
OTAX_SESSION_DIR=./data/auth/otax
OTAX_LOG_DIR=./logs
OTAX_SENDER_NUMBER=6285XXXXXXXX
OTAX_RUNTIME_MODE=production
OTAX_USE_STORE=true
Struktur direktori yang direkomendasikan:
.
ββ system/
β ββ baileys/
β ββ index.ts
β ββ core.ts
β ββ connect.ts
β ββ events.ts
β ββ media.ts
ββ data/
β ββ auth/
ββ logs/
ββ package.json
---
βΈ Inisialisasi Socket
TypeScript:
import makeWASocket, { useMultiFileAuthState, Browsers, DisconnectReason } from "@whiskeysockets/baileys"
import pino from "pino"
export async function initBaileys() {
const { state, saveCreds } = await useMultiFileAuthState(process.env.OTAX_SESSION_DIR)
const sock = makeWASocket({
auth: state,
browser: Browsers.macOS("OTAX-System"),
markOnlineOnConnect: false,
printQRInTerminal: true,
logger: pino({ level: "silent" })
})
sock.ev.on("creds.update", saveCreds)
sock.ev.on("connection.update", ({ connection, lastDisconnect }) => {
const code = lastDisconnect?.error?.output?.statusCode
if (connection === "close" && code !== DisconnectReason.loggedOut) initBaileys()
})
return sock
}
---
βΈ Pairing Mode
import makeWASocket from "@whiskeysockets/baileys"
export async function pairing() {
const sock = makeWASocket({ printQRInTerminal: false })
if (!sock.authState.creds.registered) {
const number = process.env.OTAX_SENDER_NUMBER
const code = await sock.requestPairingCode(number)
console.log("Pairing Code:", code)
}
}
---
βΈ Event Handler
export function attachEvents(sock) {
sock.ev.on("messages.upsert", async ({ messages }) => {
for (const m of messages) {
const text = m.message?.conversation || m.message?.extendedTextMessage?.text || ""
if (/^\/ping$/i.test(text)) await sock.sendMessage(m.key.remoteJid, { text: "βΈ OTAX β pong" })
}
})
sock.ev.on("groups.update", console.log)
sock.ev.on("presence.update", console.log)
sock.ev.on("contacts.update", console.log)
}
---
βΈ Media Utility
import { downloadMediaMessage } from "@whiskeysockets/baileys"
import { createWriteStream } from "fs"
export async function saveImage(sock, m) {
const stream = await downloadMediaMessage(m, "stream", {}, { reuploadRequest: sock.updateMediaMessage })
stream.pipe(createWriteStream("./file.jpeg"))
}
---
βΈ Mode Rekomendasi
markOnlineOnConnect: false untuk mode silent
syncFullHistory: true untuk pemulihan riwayat
browser: Browsers.macOS("OTAX-System") agar sinkronisasi optimal
linking: pairing code untuk deploy lewat panel atau Telegram
---
βΈ Keamanan
Gunakan environment variable untuk semua kredensial
Hindari memasukkan nomor atau token langsung ke kode
Amankan folder session
Gunakan log minimal untuk menghindari bocor data
Aktifkan anti-tamper saat produksi
---
βΈ Lisensi
Berbasis pada Baileys MIT license
Distribusi mengikuti standar lisensi upstream
Gunakan secara bertanggung jawab sesuai kebijakan WhatsApp
---
βΈ Dukungan
WhatsApp Owner: wa.me/6281945938917
Telegram Team: t.me/Otapengenkawin