{"id":29614552,"url":"https://github.com/agengpraba/assistant-bot-whatsapp","last_synced_at":"2026-04-12T22:45:54.993Z","repository":{"id":304088265,"uuid":"1017720657","full_name":"AgengPraba/assistant-bot-whatsapp","owner":"AgengPraba","description":"Bot for assist me on whatsapp","archived":false,"fork":false,"pushed_at":"2025-07-13T04:52:16.000Z","size":61402,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-13T06:28:33.533Z","etag":null,"topics":["assistant","bot","converter","downloader","mp3","mp4","whatsapp-bot"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AgengPraba.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-11T02:06:12.000Z","updated_at":"2025-07-13T04:52:19.000Z","dependencies_parsed_at":"2025-07-11T07:16:53.850Z","dependency_job_id":"89d3e6a3-ef68-443c-b135-4c3c543b663b","html_url":"https://github.com/AgengPraba/assistant-bot-whatsapp","commit_stats":null,"previous_names":["agengpraba/asistant-bot-whatsapp","agengpraba/assistant-bot-whatsapp"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/AgengPraba/assistant-bot-whatsapp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgengPraba%2Fassistant-bot-whatsapp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgengPraba%2Fassistant-bot-whatsapp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgengPraba%2Fassistant-bot-whatsapp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgengPraba%2Fassistant-bot-whatsapp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AgengPraba","download_url":"https://codeload.github.com/AgengPraba/assistant-bot-whatsapp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgengPraba%2Fassistant-bot-whatsapp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266211932,"owners_count":23893378,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["assistant","bot","converter","downloader","mp3","mp4","whatsapp-bot"],"created_at":"2025-07-20T23:01:44.963Z","updated_at":"2026-04-12T22:45:54.948Z","avatar_url":"https://github.com/AgengPraba.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bot Asisten WhatsApp Pribadi \u0026 Komunitas\n\nBot WhatsApp multifungsi yang dibangun dengan **Node.js**, **TypeScript**, **Prisma**, dan **Baileys**. Dirancang sebagai asisten pribadi untuk mahasiswa dan juga dilengkapi dengan fitur manajemen komunitas untuk grup spesifik.\n\n## 🪟 Preview\n\u003cdiv align=\"center\"\u003e\n   \u003cimg alt=\"preview-pov-bot\" src=\"./assets/pov-bot.gif\" width=\"300\" /\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\n   \u003cimg alt=\"preview-pov-bot\" src=\"./assets/pov-client.gif\" width=\"300\" /\u003e\n\u003c/div\u003e\n\n---\n\n## ✨ Fitur Utama\n\nBot ini dilengkapi dengan berbagai fitur untuk meningkatkan produktivitas dan mengelola komunitas:\n\n### 🧑‍💻 Asisten Pribadi\n* **Konverter Dokumen**:\n    * Word (`.docx`, `.doc`) ke PDF\n    * Gambar (`.jpg`, `.png`) ke PDF\n    * Menggabungkan beberapa file PDF menjadi satu.\n* **Downloader Media**:\n    * Mengunduh audio (`.mp3`) atau video (`.mp4`) dari YouTube, TikTok, dan situs lain yang didukung `yt-dlp`.\n* **Pengingat Pribadi**:\n    * Mengatur pengingat untuk tugas, jadwal, atau acara penting dengan pemrosesan waktu bahasa natural (contoh: \"besok jam 10 pagi\").\n\n### 🏠 Manajemen Komunitas\n* **CRUD Tagihan**: Fitur lengkap untuk mengelola tagihan (misalnya: iuran listrik kos) khusus untuk grup tertentu.\n* **Manajemen Anggota**: Menambah dan mengeluarkan anggota grup melalui perintah (membutuhkan hak admin).\n* **Moderasi Otomatis**: Menghapus pesan yang mengandung kata-kata terlarang secara otomatis.\n\n---\n\n## 🛠️ Prasyarat (Prerequisites)\n\nSebelum instalasi, pastikan semua perangkat lunak berikut sudah terpasang di sistem (komputer/server) Anda:\n\n* [**Node.js**](https://nodejs.org/) (v18 atau lebih baru)\n* [**Docker**](https://www.docker.com/products/docker-desktop/) (Diperlukan untuk menjalankan Gotenberg)\n* [**FFmpeg**](https://ffmpeg.org/download.html) (Diperlukan oleh `yt-dlp` untuk memproses media)\n* [**yt-dlp**](https://github.com/yt-dlp/yt-dlp) (Diperlukan untuk fitur downloader)\n\n---\n\n## ⚙️ Instalasi \u0026 Konfigurasi\n\nIkuti langkah-langkah berikut untuk menjalankan bot di lingkungan lokal Anda.\n\n**1. Clone Repositori**\n```bash\ngit clone https://github.com/AgengPraba/assistant-bot-whatsapp\ncd assistant-bot-whatsapp\n```\n\n**2. Instal Dependensi Proyek**\n```bash\nnpm install\n```\n\n**3. Buat Folder Uploads dan Downloads**\n```bash\nmkdir uploads downloads\n```\n\n**4. Konfigurasi Environment**\nSalin file `.env.example` menjadi `.env` dan isi semua variabel yang dibutuhkan.\n```bash\ncp .env.example .env\n```\nIsi file `.env`:\n```env\n# URL untuk koneksi database Prisma (default menggunakan SQLite)\nDATABASE_URL=\"file:./dev.db\"\n```\n\n**5. Konfigurasi Aplikasi (`config/index.ts`)**\nSalin file contoh dan isi konfigurasinya. File ini berisi konfigurasi yang tidak rahasia.\n```bash\ncp src/config/index.ts.example src/config/index.ts\n```\nBuka file `src/config/index.ts` dan sesuaikan isinya:\n```typescript\n// ID Grup WhatsApp untuk fitur tagihan\nexport const GRUP_ID_LISTRIK = \"6285212345678-1590634905@g.us\"\n\n// Nomor admin (format JID: 62...s.whatsapp.net), bisa lebih dari satu dipisah koma\nADMIN_NUMBER=\"6281234567890@s.whatsapp.net,6289876543210@s.whatsapp.net\"\n\n// Daftar kata-kata yang akan dihapus otomatis oleh bot\nexport const FORBIDDEN_WORDS = ['anjing', 'ajg', 'asw'];\n```\n\n**6. Jalankan Migrasi Database**\nPerintah ini akan membuat database SQLite dan tabel yang diperlukan berdasarkan skema Prisma.\n```bash\nnpx prisma migrate dev\n```\n\n**7. Jalankan Gotenberg via Docker**\nBuka terminal baru (biarkan tetap berjalan) dan jalankan perintah ini untuk mengaktifkan layanan konverter dokumen.\n```bash\ndocker run --rm -p 3000:3000 gotenberg/gotenberg:8\n```\n\n---\n\n## 🚀 Menjalankan Bot\n\nSetelah semua konfigurasi selesai, jalankan bot dengan perintah:\n```bash\nnpm run dev\n```\nPada saat pertama kali dijalankan, sebuah QR code akan muncul di terminal. Pindai (scan) kode tersebut menggunakan aplikasi WhatsApp di ponsel Anda (dari menu **Perangkat Tertaut**).\n\n---\n\n## 📖 Daftar Perintah\n\nBerikut adalah daftar perintah yang tersedia:\n\n### Perintah Umum\n| Perintah | Deskripsi | Contoh |\n| :--- | :--- | :--- |\n| `.ping` | Mengecek apakah bot aktif (hanya di chat pribadi). | `.ping` |\n| `.info` | Menampilkan ID grup saat ini (hanya di grup). | `.info` |\n\n### Perintah Konverter (Asisten Pribadi)\n| Perintah | Deskripsi | Contoh |\n| :--- | :--- | :--- |\n| `.word2pdf` | Mengubah file Word menjadi PDF. Kirim file `.docx` dengan caption ini. | `(kirim file.docx)` `.word2pdf` |\n| `.img2pdf` | Mengubah gambar menjadi PDF. Kirim gambar dengan caption ini. | `(kirim gambar.jpg)` `.img2pdf` |\n| `.mulai-gabung`| Memulai sesi untuk menggabungkan PDF. | `.mulai-gabung` |\n| `.gabungpdf` | Memproses semua PDF yang telah dikirim dalam sesi. | `.gabungpdf` |\n| `.batal-gabung`| Membatalkan sesi dan menghapus semua file. | `.batal-gabung` |\n\n### Perintah Downloader (Asisten Pribadi)\n| Perintah | Deskripsi | Contoh |\n| :--- | :--- | :--- |\n| `.mp3 \u003curl\u003e`| Mengunduh audio dari link YouTube/Facebook/dll. | `.mp3 https://youtu.be/jNQXAC9IVRw?si=Gt5AJBFCKdh-Yjwt` |\n| `.mp4 \u003curl\u003e`| Mengunduh video dari link YouTube/Facebook/dl. | `.mp4 https://youtu.be/jNQXAC9IVRw?si=Gt5AJBFCKdh-Yjwt` |\n\n### Perintah Reminder (Asisten Pribadi)\n| Perintah | Deskripsi | Contoh |\n| :--- | :--- | :--- |\n| `.ingatin \"pesan\" \u003cwaktu\u003e` | Mengatur pengingat pribadi. | `.ingatin \"Kumpul tugas\" besok 10:00` |\n\n### Perintah Admin Grup (Wajib Admin)\n| Perintah | Deskripsi | Contoh |\n| :--- | :--- | :--- |\n| `.add \u003cnomor\u003e` | Menambah anggota ke grup. | `.add 6281234567890` |\n| `.kick @user` | Mengeluarkan anggota dari grup. | `.kick @Pengguna` |\n\n---\n\n## 📂 Struktur Proyek\n\n```\n/\n├── prisma/         # Skema dan migrasi database\n├── src/\n│   ├── api/        # Jembatan ke API eksternal (Gotenberg)\n│   ├── config/     # File konfigurasi (ID grup, kata terlarang)\n│   ├── handlers/   # Logika untuk menangani setiap perintah/fitur\n│   ├── services/   # Logika inti (konversi, download, penjadwalan)\n│   └── app.ts      # Titik masuk utama \u0026 router aplikasi\n├── .env            # File environment (kunci API, ID admin)\n└── README.md       # Dokumentasi ini\n```\n\n---\n\n## 🤝 Kontribusi\n\nKontribusi, isu, dan permintaan fitur sangat diterima. Jangan ragu untuk membuat *pull request*.\n\n## 📄 Lisensi\n\nProyek ini dilisensikan di bawah Lisensi MIT.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagengpraba%2Fassistant-bot-whatsapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagengpraba%2Fassistant-bot-whatsapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagengpraba%2Fassistant-bot-whatsapp/lists"}