Dokumentasi
Arsitektur
Arsitektur & Alur End-to-End
index.js
→ boot banner
→ initDatabase (lowdb) src/lib/ourin-database.js
→ loadPlugins src/lib/ourin-plugins.js
→ startConnection (ourin-baileys) src/connection.js
→ messages.upsert
→ handler.js:
proteksi grup (antilink, anti-judol, anti-phishing, antitoxic…)
→ parse prefix (.)
→ mode/ban check
→ case system (case/ourin.js)
→ getPlugin()
→ cek owner/partner/premium/admin
→ registrasi → cooldown → potong energi
→ plugin.handler(m, { sock, config, db, … })
Entry point — index.js
src/connection.js— koneksi WhatsAppsrc/handler.js— pipeline pesansrc/lib/ourin-plugins.js— loader pluginsrc/lib/ourin-database.js— layer database- Scheduler: reset energi, scheduled messages, sewa, sholat, notif, JPM, memory monitor, temp cleaner, daily pruner
ourin-agent.js— auto-AI grup
Handler
Pipeline (±2254 baris): proteksi grup → prefix → mode/ban → case system → plugin lookup → auth → registrasi/cooldown/energi → eksekusi.
- Rate limiter: 8 request / 3 detik
- Owner console:
>>(eval),!!(exec) - Voice note command: Groq Whisper + fuzzy match
Plugin loader & database
- Ekspor
{ config, handler }; hot-reload bilaNODE_ENV=development - lowdb JSON di
./database/main: users, groups, settings, stats, sewa, premium, owner, partner - Autosave async tiap 5 detik (tulis atomik:
.tmp→ rename)
Scheduler
- Reset energi harian · scheduled messages (jpm) · sewa checker (auto-leave)
- Jadwal sholat (myquran) · notif makan/tidur · auto-JPM
- Memory monitor (
global.gc()) · temp cleaner tiap 30 menit - Daily pruner: user nonaktif >14 hari