@aidarkezio/main-func
Version:
📦 It has my funcs
83 lines (81 loc) • 2.25 kB
text/typescript
import got from 'got'
import { ScraperError } from '../utils.js'
// eslint-disable-next-line import/extensions
import { NomerHoki } from './types'
export default async function nomorhoki (
nomer: number | string
): Promise<NomerHoki> {
const config = {
nomer: encodeURIComponent(nomer),
submit: '+Submit!+'
}
const data = await got
.post('https://www.primbon.com/no_hoki_bagua_shuzi.php', {
headers: {
'content-type': 'application/x-www-form-urlencoded'
},
form: config
})
.text()
const results: string = data
.split('</b><br></td></tr><tr><td')[0]
.split(`<br><b>No. HP : ${nomer}</b><br>`)[1]
const angka_bagua_shuzi: number = parseInt(
results
?.split('Angka Bagua Shuzi :')[1]
?.split('</b><br><br>')[0]
?.replace(/%/gi, '')
)
if (!angka_bagua_shuzi) throw new ScraperError(`Can't get data, maybe your number(${nomer}) invalid!`)
const kekayaan: number = parseInt(
results.split('Kekayaan =')[1].split('<br>')[0]
)
const kesehatan: number = parseInt(
results.split('Kesehatan =')[1].split('<br>')[0]
)
const cinta: number = parseInt(
results.split('Cinta/Relasi =')[1].split('<br>')[0]
)
const kestabilan: number = parseInt(
results.split('Kestabilan =')[1].split('<br>')[0]
)
const positif: number = parseInt(
results
.split('</b><br></td><td><!-- space -->')[0]
.split('b>% = ')[1]
?.replace(/%/gi, '')
)
const perselisihan: number = parseInt(
results.split('Perselisihan =')[1].split('<br>')[0]
)
const kehilangan: number = parseInt(
results.split('Kehilangan =')[1].split('<br>')[0]
)
const malapetaka: number = parseInt(
results.split('Malapetaka =')[1].split('<br>')[0]
)
const Kehancuran: number = parseInt(
results.split('Kehancuran =')[1].split('<br>')[0]
)
const negatif: number = parseInt(
results.split('Kehancuran =')[1].split('<b>% =')[1]?.replace(/%/gi, '')
)
return {
nomer: nomer,
angka_bagua_shuzi,
positif: {
kekayaan,
kesehatan,
cinta,
kestabilan,
positif
},
negatif: {
perselisihan,
kehilangan,
malapetaka,
Kehancuran,
negatif
}
}
}