🇮🇩 Bot Whatsapp penunjang aktivitas kelas. Bot ini diciptakan agar grup kelas di Whatsapp tidak sebatas spam stiker saja (untung saya tidak gabung grup WA kelas). Bot ini merupakan versi Whatsapp dari Alel (bot discord) karena teman-teman sekelas habitatnya lebih memilih Whatsapp, dengan codebase dan design pattern yang tidak jauh berbeda dari Alel.
Pengaturan utama terdapat pada folder config/settings.json
, ubah dan sesuaikan dengan data kelas kamu. Berikut detail tabel dan lokasi konfigurasinya.
Nama | Lokasi |
---|---|
Pengaturan dasar | config/settings.json |
Data mahasiswa | data/students.json |
Data dosen | data/lecturers.json |
Data jadwal | data/schedules.json |
Pengaturan pengingat | utils/crons.js |
Daftar perintah | commands/* |
Silakan isi sesuai data kelas, untuk keperluan API key bisa mendaftar lalu masukkan ke pengaturan. classGroupId
bisa diisi setelah dijalankan di local.
settings.json
{
"botPrefix": ".",
"campusName": "Universitas Bot Whatsapp",
"classGroupName": "Nama Group WA",
"classGroupId": "ID Group WA",
"className": "Teknik Informatika",
"classCode": "TI",
"classSemester": "Abadi",
"classCategory": "A",
"classTeacher": "Awal Ariansyah, S.arkas, M.ager",
"nomicsAPI": {
"endpoint": "https://api.nomics.com/v1/currencies/ticker?",
"key": "key=[API key dari nomics disini]&"
},
"libretranslateAPI": {
"endpoint": "https://translate.argosopentech.com/translate"
},
"wikiAPI": {
"endpoint": "https://id.wikipedia.org/w/api.php"
},
"youtubeDownloader": {
"endpoint": "https://api.fastfrom.com/download"
},
"youtubeMp3": {
"endpoint": "https://www.yt-download.org/api/button/mp3/"
},
"cuttly": {
"endpoint": "http://cutt.ly/api/api.php?",
"key": "key=[API key dari cuttly disini]&"
},
"kbbi": {
"endpoint": "https://kateglo.com/api.php"
}
}
Pengingat menggunakan cron dimana pengaturan waktunya memakai notasi asterisk.
Misal disini tertulis 30 9 1 artinya setiap hari senin (1) jam (9) menit ke (30). Untuk lebih jelas cara membaca asterisk cron bisa mengunjungi https://crontab.guru/
crons.js
const Multimedia = new cron.CronJob(
"30 9 * * 1",
() => {
try {
bot.sendTextWithMentions(
classGroupId,
reminderText("Eksplorasi API whatsapp")
);
} catch (error) {
console.log(error);
}
},
null,
true,
"Asia/Jakarta"
);
Prasyarat keperluan:
yarn install
atau npm install
node main.js
heroku create
heroku create
lalu catat nama proyek yang muncul, misalkan cryptic-dawn-48835heroku buildpacks:add --index 1 https://github.com/jontewks/puppeteer-heroku-buildpack -a cryptic-dawn-48835
\
heroku buildpacks:add --index 1 heroku/nodejs -a cryptic-dawn-48835
git init
git add .
git commit -m "initial commit"
heroku git:remote -a cryptic-dawn-48835
git push heroku master
https://www.youtube.com/watch?v=JzfA-vYm7ZQ&t=40s
Catatan: Di video terdapat kekurangan file yaitu Procfile
, namun sudah saya tambahkan disini
Dikarenakan kesibukan author, maka terdapat fitur yang belum diimplementasikan seperti
Bagi yang ingin membuka PR untuk menambahkan fitur diatas sangat-sangat terbuka, silakan langsung PR saja tanpa open issue.