rsshub
Version:
Make RSS Great Again!
33 lines (32 loc) • 1.23 kB
JavaScript
import { t as rofetch } from "./ofetch-W1aeTHCo.mjs";
import { t as parseDate } from "./parse-date-CjhZE69i.mjs";
import { load } from "cheerio";
//#region lib/routes/youzan/goods.ts
const route = {
path: "/goods/:id",
categories: ["shopping"],
example: "/youzan/goods/13328377",
parameters: { id: "商铺 id" },
name: "商品上新",
maintainers: ["LogicJake"],
handler
};
async function handler(ctx) {
const { id } = ctx.req.param();
const link = `https://h5.youzan.com/wscshop/showcase/homepage?kdt_id=${id}`;
const apiLink = `https://h5.youzan.com/wscshop/showcase/goods/allGoods.json?pageSize=20&page=1&offlineId=0&order=&order_by=createdTime&kdt_id=${id}`;
const shopname = load(await rofetch(link))("meta[name=\"keywords\"]").attr("content");
const items = (await rofetch(apiLink, { headers: { Referer: link } })).data.list.map((good) => ({
title: good.title,
description: `价格:${good.price}<br>${good.picture.map((picture) => `<img src="${picture.url}">`).join("")}`,
link: `https://detail.youzan.com/show/goods?alias=${good.alias}`,
pubDate: parseDate(good.created_date_time)
}));
return {
title: `${shopname || id} 商铺上新`,
link,
item: items
};
}
//#endregion
export { route };