Skip to content

WhatsApp Bot Simple! Bot ini dirancang untuk memberikan berbagai macam fitur dan kemudahan dalam berinteraksi melalui WhatsApp. Dengan dukungan penuh dari Maelyn APIs (https://maelyn.sbs), bot ini memiliki kemampuan untuk menjawab pertanyaan, memberikan informasi, dan banyak lagi.

License

Notifications You must be signed in to change notification settings

ClayzaAubert/Haruna-Bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

19 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Kurodate Haruna MD

Kurodate Haruna MD

Bot WhatsApp performa tinggi yang dibangun dengan arsitektur modular, berbasis event, dan terintegrasi penuh dengan Maelyn API.

Stars Forks License NodeJS

Didukung oleh Maelyn API β€’ Dibangun dari basis SuryaRB

Haruna-Bot adalah kerangka kerja (framework) bot WhatsApp yang dirancang untuk kemudahan kustomisasi dan skalabilitas. Dengan sistem plugin yang intuitif, Anda dapat dengan mudah menambah atau mengubah fitur tanpa menyentuh kode inti. Ditenagai oleh @clayzaaubert/baileys-rise, sebuah fork Baileys yang dioptimalkan, Haruna-Bot menawarkan stabilitas dan performa yang andal.

✨ Fitur Unggulan

  • 🧩 Sistem Plugin: Buat fitur dengan mengisolasi logika dalam file terpisah. Cukup letakkan di direktori Features/, dan bot akan memuatnya secara otomatis.
  • πŸš€ Performa Tinggi: Arsitektur yang dioptimalkan untuk respons cepat dan penggunaan memori yang efisien.
  • πŸ”— Integrasi API: Dilengkapi dengan wrapper Axios untuk integrasi tanpa batas ke Maelyn API.
  • πŸ”§ Konfigurasi Terpusat: Kelola semua pengaturan dalam satu file config.js yang mudah dipahami.
  • ⏰ Penjadwalan Tugas (Cron): Jalankan fungsi secara otomatis pada interval waktu tertentu.
  • πŸ”’ Login Aman: Mendukung login menggunakan Pairing Code, metode yang lebih aman dan praktis.

πŸ“š Daftar Isi

  1. Prasyarat
  2. Instalasi & Setup
  3. Menjalankan Bot
  4. Struktur Proyek
  5. Panduan Pengembangan
  6. Contributors
  7. Lisensi

βœ… Prasyarat

βš™οΈ Instalasi & Setup

  1. Clone Repository:

    git clone https://github.com/ClayzaAubert/Haruna-Bot.git
    cd Haruna-Bot
  2. Instal Dependensi:

    npm install
  3. Konfigurasi Environment:

    cp .env.example .env

    Buka .env dan isi MAELYN_APIKEY yang didapat dari dashboard Maelyn.

  4. Sesuaikan Konfigurasi: Buka config.js untuk mengatur nomor owners, prefix, dll.

πŸš€ Menjalankan Bot

  • Mode Pengembangan: npm start
  • Mode Produksi (PM2):
    pm2 start index.js --name "HarunaBot"
    pm2 logs HarunaBot

πŸ“‚ Struktur Proyek

.
β”œβ”€β”€ Config/           # Konfigurasi tambahan (font, style, dll.)
β”œβ”€β”€ Features/         # Semua file plugin (perintah bot).
β”œβ”€β”€ Libs/             # Pustaka fungsi pembantu.
β”œβ”€β”€ Sockets/          # Mengelola koneksi dan logic socket Baileys.
β”œβ”€β”€ Utils/            # Utilitas umum (Messages.js).
β”œβ”€β”€ db/               # Penyimpanan database.json (jika mode JSON aktif).
β”œβ”€β”€ .env.example      # Template variabel environment.
β”œβ”€β”€ config.js         # Berkas konfigurasi utama.
β”œβ”€β”€ index.js          # Titik masuk aplikasi.
└── package.json      # Dependensi dan skrip proyek.

✍️ Panduan Pengembangan

A. Membuat Perintah Plugin

Setiap file JavaScript di dalam direktori Features/ akan dimuat sebagai sebuah perintah bot.

  1. Buat File Baru: Misalnya, Features/demo.js.

  2. Gunakan Struktur Dasar: Setiap plugin harus mengekspor objek dengan metadata dan fungsi haruna.

    export default {
      command: ["demo"],
      description: "Contoh plugin.",
      category: "Utility",
      haruna: async function(m, options) {
        // ... Logika bot ada di sini ...
      }
    };

B. Resep Kode: Contoh Aksi di dalam Plugin

Bagian ini adalah "dapur" dari bot Anda. Berikut adalah contoh lengkap yang bisa Anda letakkan di dalam fungsi haruna untuk melakukan berbagai aksi umum.

  // File: Features/demo.js
  haruna: async function (m, { sock, api }) { // `m`, `sock`, `api` adalah objek pembantu
    
    // 1. Membalas pesan
    m.reply("Hello World!");

    // 2. Membalas dengan gaya teks kustom
    m.reply("Hello with style", "funky");

    // 3. Mengirim pesan lalu mengeditnya (efek "loading...")
    const update = await m.replyUpdate("Sedang memproses...");
    await new Promise(resolve => setTimeout(resolve, 2000)); // Simulasi proses
    update("βœ”οΈ Proses Selesai!");

    // 4. Memberi reaksi emoji pada pesan
    m.react("πŸ”₯");

    // 5. Mengunduh media (gambar/video/stiker) dari pesan
    const media = await m?.download?.().catch(() => null);
    if (media) {
      m.reply("Media berhasil diunduh!");
      // sock.sendMessage(m.chat, { image: media });
    }

    // 6. Request ke Maelyn API
    try {
      const response = await api.get("/ai/v2/tts", { text: "Halo dari Haruna Bot" });
      if (response?.data?.status) {
        m.reply(`Sukses! URL Audio: ${response.data.url}`);
      }
    } catch (e) {
      m.reply(`Gagal request API: ${e.message}`);
    }
  }

C. Menangani Event Otomatis

Gunakan node-cron untuk tugas terjadwal. Contoh: membuat file Events/dailyMessage.js untuk mengirim pesan "selamat pagi" setiap hari.

import cron from "node-cron";

export default {
  async all(_, sock) {
    cron.schedule("0 8 * * *", async () => {
      const groupId = "12036304xxxxxxxxxx@g.us"; // Ganti ID grup
      try {
        await sock.sendMessage(groupId, { text: "Selamat pagi! β˜€οΈ" });
      } catch (e) {
        console.error("Gagal mengirim pesan harian:", e);
      }
    }, {
      timezone: "Asia/Jakarta"
    });
  },
};

D. Mengirim Pesan Lanjutan dengan sock.sendMessage

Meskipun fungsi m.reply() sangat praktis, untuk kontrol lebih besar seperti mengirim media, mention, atau mengutip pesan secara spesifik, Anda harus menggunakan sock.sendMessage. Ini adalah fungsi inti dari Baileys.

Berikut adalah beberapa contoh penggunaannya di dalam fungsi haruna:

  haruna: async function (m, { sock }) {

    // 1. Mengirim gambar dari URL dengan caption
    await sock.sendMessage(m.chat, { 
      image: { url: "https://s6.imgcdn.dev/Yc8bUC.png" },
      caption: "Ini Kurodate Haruna!" 
    });

    // 2. Mengirim audio sebagai Voice Note (PTT)
    // Pastikan path ke file audio sudah benar
    await sock.sendMessage(m.chat, { 
      audio: { url: "./path/to/your/audio.mp3" }, 
      ptt: true // true untuk voice note, false untuk file audio biasa
    });
    
    // 3. Mengirim pesan sambil me-mention pengguna
    const text = `Halo @${m.sender.split('@')[0]}, apa kabar?`;
    await sock.sendMessage(m.chat, { 
      text: text, 
      mentions: [m.sender] // m.sender adalah JID pengguna
    });

    // 4. Membalas pesan spesifik (mengutip)
    // Ini adalah cara kerja `m.reply()` di balik layar
    await sock.sendMessage(m.chat, { 
      text: "Ini adalah balasan yang mengutip pesan Anda." 
    }, { 
      quoted: m.key // `m.key` berisi metadata pesan yang akan dikutip
    });

  }

Note

Untuk variasi sendMessage yang lebih lengkap, seperti mengirim video, dokumen, stiker, tombol, dan lainnya, bisa kalian lihat disini: https://www.npmjs.com/package/@clayzaaubert/baileys-rise#sending-messages


πŸ‘€ Contributors


πŸ“œ Lisensi

This project is licensed under the MIT License.

About

WhatsApp Bot Simple! Bot ini dirancang untuk memberikan berbagai macam fitur dan kemudahan dalam berinteraksi melalui WhatsApp. Dengan dukungan penuh dari Maelyn APIs (https://maelyn.sbs), bot ini memiliki kemampuan untuk menjawab pertanyaan, memberikan informasi, dan banyak lagi.

Topics

Resources

License

Stars

Watchers

Forks