rsshub
Version:
Make RSS Great Again!
96 lines (94 loc) • 2.61 kB
JavaScript
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 };