Skip to content

Instantly share code, notes, and snippets.

@hasyim404
Created October 25, 2023 11:31
Show Gist options
  • Save hasyim404/75d231c1afe562322fc71cd86c37a28b to your computer and use it in GitHub Desktop.
Save hasyim404/75d231c1afe562322fc71cd86c37a28b to your computer and use it in GitHub Desktop.
Bot Telegram Absen Reminder with ScriptGoogle
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