UNPKG

rsshub

Version:
58 lines (57 loc) 1.59 kB
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 };