UNPKG

rsshub

Version:
96 lines (94 loc) 2.61 kB
import { n as init_esm_shims, t as __dirname } from "./esm-shims-CzJ_djXG.mjs"; import "./config-C37vj7VH.mjs"; import { t as ViewType } from "./types-D84BRIt4.mjs"; import "./dist-BInvbO1W.mjs"; import "./logger-Czu8UMNd.mjs"; import { t as ofetch_default } from "./ofetch-BIyrKU3Y.mjs"; import { t as art } from "./render-BQo6B4tL.mjs"; import path from "node:path"; import { load } from "cheerio"; //#region lib/routes/coolbuy/index.ts init_esm_shims(); const handler = async (ctx) => { const limit = Number.parseInt(ctx.req.query("limit") ?? "50", 10); const baseUrl = "https://coolbuy.com"; const imageBaseUrl = "https://mcache.ifanr.cn"; const apiUrl = new URL("api/v1.4/product_preview", baseUrl).href; const response = await ofetch_default(apiUrl, { query: { order_by: "-id", limit, page: 0, offset: 0 } }); const $ = load(await ofetch_default(baseUrl)); const language = $("html").attr("lang") ?? "zh"; const items = response.objects.slice(0, limit).map((item) => { const title = item.title; const image = item.cover_image?.split(/\?/)?.[0]; const banner = item.display_image?.split(/\?/)?.[0]; const description = art(path.join(__dirname, "templates/description-63ae3544.art"), { summary: item.summary, price: item.price, original_price: item.original_price, highest_price: item.highest_price, highest_original_price: item.highest_original_price, images: [banner, image].filter(Boolean).map((image$1) => ({ src: image$1, alt: title })) }); const linkUrl = item.visit_url; const guid = `coolbuy-${item.id}#${item.price}`; return { title, description, link: linkUrl ?? new URL(item.id, baseUrl).href, guid, id: guid, content: { html: description, text: description }, image, banner: image, language }; }); return { title: $("title").text(), description: $("meta[property=\"og:description\"]").attr("content"), link: baseUrl, item: items, allowEmpty: true, image: new URL("static/coolbuy/packages/dongguan/dist/images/97be46f6.png", imageBaseUrl).href, language, id: baseUrl }; }; const route = { path: "/", name: "产品", url: "coolbuy.com", maintainers: ["nczitzk"], handler, example: "/coolbuy", parameters: void 0, description: void 0, categories: ["shopping"], features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportRadar: true, supportBT: false, supportPodcast: false, supportScihub: false }, radar: [{ source: ["coolbuy.com"], target: "/" }], view: ViewType.Articles }; //#endregion export { handler, route };