@srart24/scraper
Version:
@srart24/scraper adalah sebuah module npm yang menyediakan berbagai fitur seru dan berguna seperti pengunduh konten dari platform populer, teks acak, permainan interaktif, dan berbagai fungsi hiburan.
95 lines (81 loc) • 2.4 kB
JavaScript
const axios = require('axios');
const dbUrlGm = "https://raw.githubusercontent.com/srart24/db/srart24/games/";
const dbUrlQu = "https://raw.githubusercontent.com/srart24/db/srart24/randomTeks/"
async function fetchJSON(url, maxRetry = 3) {
let retryCount = 0;
while (retryCount < maxRetry) {
try {
const response = await axios.get(url);
return response.data;
} catch (error) {
console.error('Terjadi kesalahan:', error.message);
retryCount++;
}
}
return null;
}
const fetchDataAndPickRandomGm = async (endpoint) => {
try {
const data = await fetchJSON(dbUrlGm + endpoint);
const rnd = await pickRandom(data);
return { result: rnd };
} catch (error) {
throw error;
}
};
const fetchDataAndPickRandomQu = async (endpoint) => {
try {
const data = await fetchJSON(dbUrlQu + endpoint);
const rnd = await pickRandom(data);
return rnd
} catch (error) {
throw error;
}
};
function cNm(number) {
if (number >= 1000) {
const units = ["", "k", "M", "B", "T"];
const unitIndex = Math.floor(Math.log10(number) / 3);
const shortNumber = (number / Math.pow(1000, unitIndex)).toFixed(1);
return shortNumber + units[unitIndex];
}
return number.toString();
}
function pickRandom(list) {
return list[Math.floor(list.length * Math.random())]
}
function randomobj(aray) {
return aray[Math.floor(Math.random() * (aray.length))]
}
function post(url, formdata) {
return fetch(url, {
method: "POST",
headers: {
accept: "*/*",
"accept-language": "en-US,en;q=0.9",
"content-type": "application/x-www-form-urlencoded; charset=UTF-8",
},
body: new URLSearchParams(Object.entries(formdata)),
});
}
function timeFormat(value) {
const sec = parseInt(value, 10);
let hours = Math.floor(sec / 3600);
let minutes = Math.floor((sec - hours * 3600) / 60);
let seconds = sec - hours * 3600 - minutes * 60;
if (hours < 10) hours = "0" + hours;
if (minutes < 10) minutes = "0" + minutes;
if (seconds < 10) seconds = "0" + seconds;
if (hours == 00) return minutes + ":" + seconds;
return hours + ":" + minutes + ":" + seconds;
}
module.exports = {
fetchJSON,
cNm,
pickRandom,
randomobj,
post,
timeFormat,
fetchDataAndPickRandomGm,
fetchDataAndPickRandomQu
}