✨ Fitur | ⚒️ Instalasi | 📜 Riwayat Perubahan | ⭐ Star History
-
Menampilkan status data SPTJM & Surat Rekomendasi (SR) Kampus Merdeka yang telah anda upload di website kampusmerdeka.kemdikbud.go.id seperti:
- Status
KESALAHAN, SKRIP GAGAL MENGURAI DATA ANDA
: Skrip tidak berjalan dengan sempurna, instal kembali skrip diatas - Status
Data SPTJM atau SURAT REKOMENDASI tidak ditemukan
: Data SPTJM & Surat Rekomendasi (SR) belum anda upload (Hari, Tanggal Bulan Tahun pukul [Jam.Menit] Zona Waktu)
Status SPTJM anda adalah(Status Data)
(Hari, Tanggal Bulan Tahun pukul [Jam.Menit] Zona Waktu)
Status Surat Rekomendasi anda adalah(Status Data)
- Status
(Hari, Tanggal Bulan Tahun pukul [Jam & Menit] |
(Status Data) |
---|---|
Hari : Numeric, contoh: Rabu |
ON_REVIEW : Data SPTJM & Surat Rekomendasi (SR) anda sedang dalam proses review |
Tanggal : Numeric, contoh: 5 |
VERIFIED : Data SPTJM & Surat Rekomendasi (SR) anda telah terverifikasi |
Bulan : Long, contoh: Juli |
REJECTED : Data SPTJM & Surat Rekomendasi (SR) anda ditolak |
Tahun : Numerik, contoh: 2023 |
|
Jam.Menit : Numerik, 04.49 |
|
Zona Waktu : Indonesia/Asia/Jakarta (WIB) |
TEKAN UNTUK MELIHAT
- Buka website kampusmerdeka.kemdikbud.go.id melalui browser Desktop PC / Laptop berikut:
- Pastikan anda telah login
- Buka devtools pada browser anda dengan cara:
- Copy & paste kode yang dilampirkan dibawah, kemudian tekan Enter
TEKAN UNTUK MELIHAT KODE
const printErrorShouldLoginBefore = () => {
console.log(
'%cKESALAHAN, SKRIP GAGAL MENGURAI DATA ANDA',
'font-size: 18px; color: #f00; background: #000;'
);
throw new Error('NOT_LOGGED_IN');
};
const printGenericError = (err) => {
console.log(
`%cError: ${err}`,
'font-size: 18px; color: #f00; background: #000;'
);
throw err;
};
const currentCycle = 5;
const userLocalKey = `@mkbm/manager/user`;
const storageData = localStorage.getItem(userLocalKey);
if (!storageData) {
printErrorShouldLoginBefore();
}
const storageDataParsed = JSON.parse(storageData);
if (!storageDataParsed) {
printErrorShouldLoginBefore();
}
const token = storageDataParsed?.value?.token;
if (!token) {
printErrorShouldLoginBefore();
}
const abortController = new AbortController();
const getActiveDocuments = async () => {
const resp = await fetch(
'https://api.kampusmerdeka.kemdikbud.go.id/v1alpha1/documents?type=SPTJM,SURAT_REKOMENDASI&programs=Magang',
{
signal: abortController.signal,
headers: {
Authorization: `Bearer ${token}`,
},
}
).then((resp) => resp.json());
const docs = resp.data;
const mapDocumentByType = {};
docs.forEach((doc) => {
if (!(doc.type in mapDocumentByType)) {
mapDocumentByType[doc.type] = [];
}
doc.cycle_int = Number.parseInt(doc.cycle);
mapDocumentByType[doc.type].push(doc);
});
return mapDocumentByType;
};
const getDocumentLatestCycle = (currentCycle, data) => {
const sortedData = [...data].sort(
(docA, docB) => docB.cycle_int - docA.cycle_int
);
return sortedData.find((doc) => doc.cycle_int <= currentCycle);
};
const getUserDocumentStatus = async (docId, docType) => {
const resp = await fetch(
`https://api.kampusmerdeka.kemdikbud.go.id/v1alpha1/documents/${docId}/users`,
{
headers: {
Authorization: `Bearer ${token}`,
},
}
).then((resp) => resp.json());
const status = resp?.data?.status;
if (!status) {
return `DATA ${docType} TIDAK DAPAT DITEMUKAN`;
}
return status;
};
const getCurrentDateTimeWIB = () => {
const date = new Date();
const options = {
weekday: 'long',
year: 'numeric',
month: 'long',
day: 'numeric',
hour: 'numeric',
minute: 'numeric',
timeZone: 'Asia/Jakarta',
};
return date.toLocaleString('id-ID', options);
};
const main = async () => {
try {
const documentMapped = await getActiveDocuments();
const docsSPTJM = documentMapped['SPTJM'];
const docsSR = documentMapped['SURAT_REKOMENDASI'];
if (!docsSPTJM || !docsSR) {
throw 'Data SPTJM atau SURAT REKOMENDASI tidak ditemukan';
}
const validDocSPTJM = getDocumentLatestCycle(currentCycle, docsSPTJM);
const validDocsSR = getDocumentLatestCycle(currentCycle, docsSR);
if (!validDocSPTJM || !validDocsSR) {
throw 'Data SPTJM atau SURAT REKOMENDASI tidak ditemukan';
}
const sptjmId = validDocSPTJM.id;
const srId = validDocsSR.id;
const statusUserSptjm = await getUserDocumentStatus(sptjmId, 'SPTJM');
const statusUserSr = await getUserDocumentStatus(srId, 'SURAT REKOMENDASI');
const dateTimeWIB = getCurrentDateTimeWIB();
console.log(
`%c[${dateTimeWIB} WIB] Status SPTJM anda adalah %c${statusUserSptjm}`,
'font-size: 24px; color: black; background: white;',
`font-size: 30px; background: ${
statusUserSptjm === 'VERIFIED'
? 'green'
: statusUserSptjm === 'REJECTED'
? 'red'
: 'blue'
}; color: white;`
);
console.log(
`%c[${dateTimeWIB} WIB] Status SURAT REKOMENDASI anda adalah %c${statusUserSr}`,
'font-size: 24px; color: black; background: white;',
`font-size: 30px; background: ${
statusUserSr === 'VERIFIED'
? 'green'
: statusUserSr === 'REJECTED'
? 'red'
: 'blue'
}; color: white;`
);
} catch (err) {
printGenericError(err);
}
};
main();
- Silahkan tunggu sebentar, dan baca status data yang ditampilkan pada console tersebut
TEKAN UNTUK MELIHAT
- Instal ekstensi Tampermonkey
- Instal userscript Cek Status Data SPTJM & SR | Kampus Merdeka Batch 5 2023 (akan dimuat secara otomatis di pengelola skrip pengguna)
- Buka website kampusmerdeka.kemdikbud.go.id melalui browser Desktop PC / Laptop berikut:
- Pastikan anda telah login
- Buka devtools pada browser anda dengan cara:
- Silahkan tunggu sebentar, dan terlihat status data yang ditampilkan secara otomatis pada console tersebut
- v1.0 - Menambahkan dukungan untuk Kampus Merdeka Batch 5 Tahun 2023