rsshub
Version:
Make RSS Great Again!
76 lines (75 loc) • 2.3 kB
JavaScript
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 };