UNPKG

rsshub

Version:
76 lines (75 loc) 2.3 kB
import { t as parseDate } from "./parse-date-3kcy2Eau.mjs"; import { t as got_default } from "./got-DUpa1V3-.mjs"; import { t as parseItems } from "./util-Q6QXut-Z.mjs"; //#region lib/routes/1lou/search.ts const rootUrl = "https://www.1lou.me"; const apiUrl = "https://www.1lou.me/search/api/search.php"; const handler = async (ctx) => { const { params } = ctx.req.param(); const limit = ctx.req.query("limit") ? Number(ctx.req.query("limit")) : 50; const searchQuery = params; const apiParams = new URLSearchParams({ q: searchQuery, fid: "0", page: "1", sort: "newest", scope: "全部", type: "全部", year: "全部", quality: "全部", source: "全部", track: "1" }); const apiUrlWithParams = `${apiUrl}?${apiParams.toString()}`; const { data: response } = await got_default(apiUrlWithParams); const hits = response?.data?.hits ?? []; const language = "zh"; const items = hits.slice(0, limit).map((item) => ({ title: item.highlighted_subject.replaceAll(/<\/?mark>/g, ""), pubDate: parseDate(item.create_date, "X"), link: new URL(item.thread_url, rootUrl).href, category: [item.username], author: item.username, language })); const refinedItems = await parseItems(items, language); const author = "BT 之家 1LOU 站"; return { title: `搜索 ${searchQuery} - ${author}`, description: response?.data?.query ? `搜索关键词: ${response.data.query}` : "搜索结果", link: `${rootUrl}/search?q=${encodeURIComponent(searchQuery)}`, item: refinedItems, allowEmpty: true, author, language }; }; const route = { path: "/search/:params", name: "搜索", url: "1lou.me/search", maintainers: ["JimenezLi"], handler, example: "/1lou/search/繁花", parameters: { params: "搜索关键词" }, description: "搜索路由,支持关键词搜索。", categories: ["multimedia"], features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportRadar: true, supportBT: false, supportPodcast: false, supportScihub: false }, radar: [{ source: ["1lou.me/search"], target: (_, url) => { const parsedUrl = new URL(url); return `/1lou/search/${parsedUrl.searchParams.get("q") || parsedUrl.pathname.match(/\/search-(.+)-\d+\.htm/)?.[1] || ""}`; } }] }; //#endregion export { handler, route };