rsshub
Version:
Make RSS Great Again!
35 lines (34 loc) • 1.34 kB
JavaScript
import { t as cache_default } from "./cache-BkqOokyU.mjs";
import { t as getPlaywrightPage } from "./playwright-o20DiLNh.mjs";
import { load } from "cheerio";
//#region lib/routes/makerworld/utils.ts
const baseUrl = "https://makerworld.com";
const fetchViaBrowser = async (url, type = "html") => {
const { page, destroy } = await getPlaywrightPage(url, { onBeforeLoad: async (page) => {
const expectResourceTypes = /* @__PURE__ */ new Set([
"document",
"script",
"xhr",
"fetch"
]);
await page.route("**/*", (route) => {
const request = route.request();
expectResourceTypes.has(request.resourceType()) ? route.continue() : route.abort();
});
} });
try {
return await page.evaluate(type === "html" ? () => document.documentElement.getHTML() : () => document.documentElement.textContent) ?? "";
} finally {
await destroy();
}
};
const fetchJson = async (url, query) => {
const finalUrl = query ? `${url}?${new URLSearchParams(query).toString()}` : url;
return JSON.parse(await fetchViaBrowser(finalUrl, "json"));
};
const getNextBuildId = () => cache_default.tryGet("makerworld:nextBuildId", async () => {
const $ = load(await fetchViaBrowser(`${baseUrl}/en`));
return JSON.parse($("script#__NEXT_DATA__").text()).buildId;
});
//#endregion
export { fetchJson as n, getNextBuildId as r, baseUrl as t };