// join le channel bro https://whatsapp.com/channel/0029Vb8QWWl1yT1znzYESZ3b async function cari(body) { const res = await fetch("https://sekolah.data.kemendikdasmen.go.id/v1/sekolah-service/sekolah/cari-sekolah", { method: 'POST', headers: { 'Accept': 'application/json, text/plain, */*', 'Content-Type': 'application/json', 'Origin': 'https://sekolah.data.kemendikdasmen.go.id', 'Referer': 'https://sekolah.data.kemendikdasmen.go.id/sekolah', 'User-Agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Mobile Safari/537.36' }, body: JSON.stringify(body) }); return res.json(); } async function detail(id) { const res = await fetch(`https://sekolah.data.kemendikdasmen.go.id/v1/sekolah-service/sekolah/full-detail/${id}`, { headers: { 'Accept': 'application/json, text/plain, */*', 'Referer': `https://sekolah.data.kemendikdasmen.go.id/profil-sekolah/${id}`, 'User-Agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Mobile Safari/537.36' } }); return res.json(); } async function wilayah(keyword) { const res = await fetch("https://sekolah.data.kemendikdasmen.go.id/v1/sekolah-service/referensi/wilayah", { method: 'POST', headers: { 'Accept': 'application/json, text/plain, */*', 'Content-Type': 'application/json', 'Origin': 'https://sekolah.data.kemendikdasmen.go.id', 'Referer': 'https://sekolah.data.kemendikdasmen.go.id/sekolah', 'User-Agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Mobile Safari/537.36' }, body: JSON.stringify({ keyword }) }); return res.json(); } export async function sekolah2(req) { const { searchParams: sp } = new URL(req.url); const q = sp.get('q'); const id = sp.get('id'); const mode = sp.get('mode') || 'search'; const page = Number(sp.get('page') || 0); const size = Number(sp.get('size') || 12); const kab = sp.get('kab') || ''; const bentuk = sp.get('bentuk') || ''; const status = sp.get('status') || ''; const wkey = sp.get('wilayah'); if (mode === 'wilayah') { if (!wkey) return { error: "missing wilayah, /sekolah2?mode=wilayah&wilayah=Probolinggo" }; try { const data = await wilayah(wkey); return { status: true, params: { wilayah: wkey }, data: data.data || [] }; } catch (err) { return { error: err.message }; } } if (mode === 'detail' && id) { try { const raw = await detail(id); const d = raw.data || {}; return { status: true, params: { id }, data: { profil: d.sekolah?.[0] || {}, foto: d.foto_sekolah || [], ruang: d.ruang?.[0] || {}, ptk: d.ptk?.[0] || {}, kurikulum: d.kurikulum?.[0] || {}, rasio_siswa: d.rasio_siswa?.[0] || {}, rasio_rombel: d.rasio_rombel_ruang_kelas?.[0] || {}, rasio_guru: d.rasio_siswa_guru?.[0] || {}, persentase_guru: d.persentase_guru?.[0] || {}, persentase_kelas_layak: d.persentase_ruang_kelas_layak?.[0] || {}, sekolah_sekitar: d.sekolah_sekitar || [], instansi_sekitar: d.instansi_sekitar || [] } }; } catch (err) { return { error: err.message }; } } if (!q) { return { error: "missing keyword", usage: { search: "/sekolah2?q=anwar", filter: "/sekolah2?q=anwar&status=SWASTA&bentuk=MTs, MI&kab=Kab. Probolinggo", page: "/sekolah2?q=anwar&page=1&size=12", wilayah: "/sekolah2?mode=wilayah&wilayah=Karawang", detail: "/sekolah2?mode=detail&id=A9B4AA6C-9093-4210-83D0-9F6AB175DBB5" }, params: { q: "keyword", page: "halaman (0)", size: "per halaman (12)", kab: "Kab. Karawang", bentuk: "SMA, SMK, MTs, MI", status: "NEGERI, SWASTA" } }; } try { const body = { page, size, keyword: q, kabupaten_kota: kab, bentuk_pendidikan: bentuk, status_sekolah: status }; const raw = await cari(body); return { status: true, params: { q, page, size, kab, bentuk, status }, total: raw.total || 0, data: raw.data || [] }; } catch (err) { return { error: err.message }; } }