@aidarkezio/main-func
Version:
📦 It has my funcs
71 lines • 3.04 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.listJadwalSholat = void 0;
const cheerio_1 = __importDefault(require("cheerio"));
const got_1 = __importDefault(require("got"));
const didyoumean_js_1 = __importDefault(require("../tools/didyoumean.js"));
const utils_js_1 = require("../utils.js");
const types_js_1 = require("./types.js");
exports.listJadwalSholat = (async () => (0, got_1.default)('https://raw.githubusercontent.com/BochilTeam/scraper/master/data/jadwal-sholat.json').json())();
async function jadwalsholat(kota) {
types_js_1.JadwalSholatArgsSchema.parse(arguments);
const listJadwal = await exports.listJadwalSholat;
const cities = listJadwal.map(item => item.kota);
const prediction = (0, didyoumean_js_1.default)(kota, cities);
const precisionPredection = (0, didyoumean_js_1.default)(kota, cities, { threshold: 0.85 })[0];
if (!precisionPredection) {
throw new utils_js_1.ScraperError(`Did you mean ${prediction.map(item => item.query).join(', ')}?\n\nList of cities: ${cities.join(', ')}`);
}
const jadwal = listJadwal[precisionPredection.index];
types_js_1.JadwalSholatItemSchema.parse(jadwal);
const today = await (0, got_1.default)(`https://www.jadwalsholat.org/adzan/ajax/ajax.daily1.php?id=${jadwal.value}`).text();
const sholatToday = {};
const $ = cheerio_1.default.load(today);
$('table > tbody > tr')
.filter('.table_light, .table_dark')
.each(function () {
const el = $(this).find('td');
const sholat = el.eq(0).text();
const time = el.eq(1).text();
sholatToday[sholat] = time;
});
const data = await (0, got_1.default)(`https://jadwalsholat.org/jadwal-sholat/monthly.php?id=${jadwal.value}`).text();
const list = [];
const $$ = cheerio_1.default.load(data);
$$('table.table_adzan > tbody > tr')
.filter('.table_light, .table_dark')
.each(function () {
const el = $$(this).find('td');
const date = el.eq(0).text().trim();
const imsyak = el.eq(1).text().trim();
const shubuh = el.eq(2).text().trim();
const terbit = el.eq(3).text().trim();
const dhuha = el.eq(4).text().trim();
const dzuhur = el.eq(5).text().trim();
const ashr = el.eq(6).text().trim();
const magrib = el.eq(7).text().trim();
const isyak = el.eq(8).text().trim();
list.push({
date,
imsyak,
shubuh,
terbit,
dhuha,
dzuhur,
ashr,
magrib,
isyak
});
});
const result = {
date: $$('tr.table_title > td > h2.h2_edit').text().trim(),
today: sholatToday,
list
};
return types_js_1.JadwalSholatSchema.parse(result);
}
exports.default = jadwalsholat;
//# sourceMappingURL=jadwalsholat.js.map