rsshub
Version:
Make RSS Great Again!
101 lines (99 loc) • 2.56 kB
JavaScript
import "./esm-shims-CzJ_djXG.mjs";
import "./config-C37vj7VH.mjs";
import "./dist-BInvbO1W.mjs";
import "./logger-Czu8UMNd.mjs";
import "./ofetch-BIyrKU3Y.mjs";
import "./parse-date-BrP7mxXf.mjs";
import { t as cache_default } from "./cache-Bo__VnGm.mjs";
import "./render-BQo6B4tL.mjs";
import { a as fetchSearchItems, i as fetchItemDetail, n as MercariSort, o as formatItemDetail, r as MercariStatus, t as MercariOrder } from "./util-C3z-NzUb.mjs";
//#region lib/routes/mercari/keyword.ts
const route = {
path: "/:sort/:order/:status/:keyword",
categories: ["shopping"],
parameters: {
sort: {
description: "排序方式",
default: "default",
options: [
{
value: "default",
label: "默认排序"
},
{
value: "create_time",
label: "发布时间"
},
{
value: "score",
label: "评分"
},
{
value: "like",
label: "点赞"
},
{
value: "price",
label: "价格"
}
]
},
order: {
description: "排序顺序",
default: "desc",
options: [{
value: "desc",
label: "降序"
}, {
value: "asc",
label: "升序"
}]
},
status: {
description: "商品状态",
default: "default",
options: [
{
value: "default",
label: "全部"
},
{
value: "onsale",
label: "在售"
},
{
value: "soldout",
label: "已售"
}
]
},
keyword: { description: "关键词" }
},
example: "/mercari/create_time/desc/default/ふもふも",
features: {
requireConfig: false,
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,
supportPodcast: false,
supportScihub: false
},
name: "关键词",
maintainers: ["yana9i"],
url: "jp.mercari.com",
handler
};
async function handler(ctx) {
const { sort, order, status, keyword } = ctx.req.param();
const statusArray = MercariStatus[status] ? [MercariStatus[status]] : [];
const searchItems = (await fetchSearchItems(MercariSort[sort], MercariOrder[order], statusArray, keyword)).items;
const items = await Promise.all(searchItems.map((item) => cache_default.tryGet(`mercari:${item.id}`, async () => await fetchItemDetail(item.id, item.itemType).then((detail) => formatItemDetail(detail)))));
return {
title: `${keyword} の検索結果`,
link: `https://jp.mercari.com/search?sort=${MercariSort[sort]}&order=${MercariOrder[order]}&status=${MercariStatus[status]}&keyword=${encodeURIComponent(keyword)}`,
description: `Search results for keyword: ${keyword}`,
item: items
};
}
//#endregion
export { route };