UNPKG

rsshub

Version:
35 lines (34 loc) 1.34 kB
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 };