UNPKG

rsshub

Version:
54 lines (53 loc) 1.62 kB
import "./types-DNj6Etbg.mjs"; import { t as parseDate } from "./parse-date-Cr0wQjV_.mjs"; import { t as utils_default } from "./utils-JKAGWZqQ.mjs"; //#region lib/routes/mi/newproducts.ts const route = { path: "/newproducts", categories: ["shopping"], example: "/mi/newproducts", name: "小米上新", maintainers: ["nuomi1"], handler, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportRadar: false, supportBT: false, supportPodcast: false, supportScihub: false }, view: 5 }; const getDetails = async (list) => { const result = list.map((item) => utils_default.getNewProductItem(item)); const details = await Promise.all(result); return new Map(details.map((detail) => [detail.product.productId, detail])); }; const getDataItem = (listItem, detail) => ({ title: listItem.product_name, description: utils_default.renderNewProduct(listItem, detail), link: `https://m.mi.com/commodity/detail/${listItem.product_id}`, image: listItem.img, pubDate: parseDate(listItem.start_time, "X"), language: "zh-CN" }); async function handler() { const list = await utils_default.getNewProductList(); const details = await getDetails(list); return { title: "小米上新", link: "https://m.mi.com/", item: list.map((item) => { const detail = details.get(item.product_id); if (!detail) throw new Error(`Details not found for product ${item.product_id}`); return getDataItem(item, detail); }), allowEmpty: true, image: "https://m.mi.com/static/img/icons/apple-touch-icon-152x152.png", language: "zh-CN" }; } //#endregion export { route };