async function cari(body) { const res = await fetch("https://app.simpkb.id/akun/ptk-solr", { method: 'POST', headers: { 'Accept': 'application/json, text/javascript, */*; q=0.01', 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'Origin': 'https://app.simpkb.id', 'Referer': 'https://app.simpkb.id/akun/ptk', 'User-Agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Mobile Safari/537.36', 'X-Requested-With': 'XMLHttpRequest' }, body: new URLSearchParams(body).toString() }); return res.json(); } async function provinsi() { const res = await fetch("https://app.simpkb.id/asset/js/configs/propinsi.json?version=202309261116", { headers: { 'Accept': 'application/json', 'User-Agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36', 'X-Requested-With': 'XMLHttpRequest', 'Referer': 'https://app.simpkb.id/akun/ptk' } }); return res.json(); } async function kota() { const res = await fetch("https://app.simpkb.id/asset/js/configs/kota.json?version=202309261116", { headers: { 'Accept': 'application/json', 'User-Agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36', 'X-Requested-With': 'XMLHttpRequest', 'Referer': 'https://app.simpkb.id/akun/ptk' } }); return res.json(); } export async function simpkb(req) { const { searchParams: sp } = new URL(req.url); const keyword = sp.get('keyword'); const prov = sp.get('prov') || ''; const kab = sp.get('kab') || ''; const paspor = sp.get('paspor') || ''; const dapodik = sp.get('dapodik') || ''; const page = sp.get('page') || '1'; const mode = sp.get('mode') || 'cari'; if (mode === 'provinsi') { try { const data = await provinsi(); return { status: true, data }; } catch (err) { return { error: err.message }; } } if (mode === 'kota') { try { const data = await kota(); return { status: true, data }; } catch (err) { return { error: err.message }; } } if (!keyword) { return { error: "keyword nya mana", usage: { cari: "/simpkb?keyword=Novy", filter: "/simpkb?keyword=Novy&prov=15&kab=1502&dapodik=1&paspor=1", semua: "/simpkb?keyword=Novy&prov=15&kab=1502", provinsi: "/simpkb?mode=provinsi", kota: "/simpkb?mode=kota" }, params: { keyword: "nama guru/ptk", prov: "kode provinsi (dari /simpkb?mode=provinsi)", kab: "kode kabupaten (dari /simpkb?mode=kota)", dapodik: "0=belum terkoneksi, 1=sudah terkoneksi, kosong=semua", paspor: "0=belum registrasi, 1=sudah registrasi, kosong=semua", page: "halaman" } }; } try { const body = { k_propinsi: prov, k_kota: kab, is_paspor: paspor, is_dapodik: dapodik, keyword, page }; const data = await cari(body); return { status: true, params: { keyword, prov, kab, dapodik, paspor, page }, data }; } catch (err) { return { error: err.message }; } }