rsshub
Version:
Make RSS Great Again!
58 lines (57 loc) • 1.59 kB
JavaScript
import { t as got_default } from "./got-BTowW50G.mjs";
import { a as apiSearchRootUrl, d as processItems, f as rootUrl, o as buildFeedMetadata, p as siteTitle, s as buildHuxiuRouteTitlePrefix, u as generateSignature } from "./util-W5Rv8_dZ.mjs";
//#region lib/routes/huxiu/search.ts
const route = {
path: "/search/:keyword",
categories: ["new-media"],
example: "/huxiu/search/生活",
parameters: { keyword: "关键字" },
features: {
requireConfig: false,
requirePuppeteer: false,
antiCrawler: true,
supportBT: false,
supportPodcast: true,
supportScihub: false
},
radar: [{ source: ["huxiu.com/"] }],
name: "搜索",
maintainers: [
"xyqfer",
"HenryQW",
"nczitzk"
],
handler,
url: "huxiu.com/"
};
async function handler(ctx) {
const keyword = ctx.req.param("keyword");
const limit = ctx.req.query("limit") ? Number(ctx.req.query("limit")) : 20;
const baseTitle = siteTitle;
const apiUrl = new URL("api/article", apiSearchRootUrl).href;
const currentUrl = rootUrl;
const { data: response } = await got_default.post(apiUrl, { searchParams: {
platform: "www",
s: keyword,
sort: "",
page: 1,
pagesize: limit,
appid: "hx_search_202303",
...generateSignature()
} });
const items = await processItems(response.data.datalist, limit);
const data = buildFeedMetadata({
title: `搜索结果-${keyword}`,
link: currentUrl,
description: baseTitle,
subtitle: baseTitle,
titlePrefix: buildHuxiuRouteTitlePrefix(route.name)
});
ctx.set("json", response.data.datalist);
return {
item: items,
...data
};
}
//#endregion
export { route };