Created
October 25, 2023 11:31
-
-
Save hasyim404/75d231c1afe562322fc71cd86c37a28b to your computer and use it in GitHub Desktop.
Bot Telegram Absen Reminder with ScriptGoogle
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var token = 'xxxxxx'; | |
// -1001639xxxxxx = bang arip | |
// -1001567xxxxxx = test grup | |
var groupid = [ | |
// -1001639xxxxxx | |
]; | |
var tg = new telegram.daftar(token); | |
var user = new telegram.user(); | |
let zonaTime = 'GMT+7' | |
var jamHapus = 3 | |
var jadwalHapus = user.getValue('jadwalHapus'); | |
jadwalHapus = jadwalHapus ? JSON.parse(jadwalHapus) : false; | |
function tambahJadwalPenghapusan(chat_id, message_id) { | |
let date = new Date(); | |
date.setHours(date.getHours() + jamHapus) | |
let waktu = Utilities.formatDate(date, 'GMT+7', "HH:mm") | |
let data = | |
{ | |
waktu: waktu, | |
chat_id: chat_id, | |
message_id: message_id | |
} | |
if (!jadwalHapus) return user.setValue('jadwalHapus', JSON.stringify([data])); | |
jadwalHapus.push(data); | |
return user.setValue('jadwalHapus', JSON.stringify(jadwalHapus)); | |
} | |
function pengingatAbsen() { | |
// Date("October 25, 2022 13:6:00") | |
var date = new Date(); | |
let waktuSekarang = Utilities.formatDate(date, zonaTime, "HH:mm") | |
var tahun = date.getFullYear(); | |
var bulan = date.getMonth(); | |
var tanggal = date.getDate(); | |
var hari = date.getDay(); | |
var jam = date.getHours(); | |
var menit = date.getMinutes(); | |
var detik = date.getSeconds(); | |
switch (hari) { | |
case 0: hari = "Minggu"; break; | |
case 1: hari = "Senin"; break; | |
case 2: hari = "Selasa"; break; | |
case 3: hari = "Rabu"; break; | |
case 4: hari = "Kamis"; break; | |
case 5: hari = "Jum'at"; break; | |
case 6: hari = "Sabtu"; break; | |
} | |
switch (bulan) { | |
case 0: bulan = "Januari"; break; | |
case 1: bulan = "Februari"; break; | |
case 2: bulan = "Maret"; break; | |
case 3: bulan = "April"; break; | |
case 4: bulan = "Mei"; break; | |
case 5: bulan = "Juni"; break; | |
case 6: bulan = "Juli"; break; | |
case 7: bulan = "Agustus"; break; | |
case 8: bulan = "September"; break; | |
case 9: bulan = "Oktober"; break; | |
case 10: bulan = "November"; break; | |
case 11: bulan = "Desember"; break; | |
} | |
var teks = | |
"<b><u>🗓️ " + hari + ", " + tanggal + " " + bulan + " " + tahun + " 🗓️</u></b>" + | |
"\n\nJangan lupa absen siang cuii~ \n👇👇👇Link Absensi👇👇👇 \n\u00A0 <a href='https://tinyurl.com/presensi-web-desember-siang'>presensi-web-desember-siang</a>"+ | |
"\n\n\n<i>**Pesan otomatis, akan dihapus setelah 3 jam</i>"+ | |
"\n\u00A0"; | |
var day = date.getDay(); | |
var hours = date.getHours(); | |
var minutes = date.getMinutes(); | |
if(day >= 1 && day <= 4 && hours == 13 && minutes == 10) { | |
for (const group of groupid) { | |
var ret = tg.kirimPesan(group, teks, 'html') | |
tambahJadwalPenghapusan(ret.result.chat.id, ret.result.message_id) | |
Logger.log(ret); | |
} | |
} else if (day == 5 && hours == 13 && minutes == 40) { | |
for (const group of groupid) { | |
var ret = tg.kirimPesan(group, teks, 'html'); | |
tambahJadwalPenghapusan(ret.result.chat.id, ret.result.message_id) | |
Logger.log(ret); | |
} | |
} | |
if (jadwalHapus) { | |
let indexHapus = [] | |
tg.util.forEach(jadwalHapus, (data, index) => { | |
if (data.waktu == waktuSekarang) { | |
try { | |
tg.deleteMessage(data.chat_id, data.message_id) | |
} catch(e) { | |
// tidak perlu dicatch | |
} | |
indexHapus.push(index) | |
} | |
}) | |
// dibuat terpisah, karena bisa jadi waktunya sama (multi tujuan ID) | |
if (indexHapus.length > 0) { | |
indexHapus.sort().reverse() | |
indexHapus.forEach((data) => { | |
jadwalHapus.splice(data, 1) | |
}) | |
user.setValue('jadwalHapus', JSON.stringify(jadwalHapus)) | |
} | |
} | |
} | |
// Library: | |
// ID Script AppGoogleScript: | |
// Telegram = 11LhYmqUg8UVtqMg3rPaau5uHwCMtsE_0RwUQim4ZY-OCfDe_YyIYKPSP |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment