rsshub
Version:
Make RSS Great Again!
42 lines (40 loc) • 1.35 kB
JavaScript
import "./esm-shims-CzJ_djXG.mjs";
import "./config-C37vj7VH.mjs";
import "./dist-BInvbO1W.mjs";
import "./logger-Czu8UMNd.mjs";
import { t as ofetch_default } from "./ofetch-BIyrKU3Y.mjs";
import "./parse-date-BrP7mxXf.mjs";
import "./cache-Bo__VnGm.mjs";
import "./timezone-D8cuwzTY.mjs";
import { t as fetchArticle } from "./utils-VUOg2IcK.mjs";
import { load } from "cheerio";
import pMap from "p-map";
//#region lib/routes/bjnews/cat.ts
const route = {
path: "/cat/:cat",
categories: ["traditional-media"],
example: "/bjnews/cat/depth",
parameters: { cat: "分类, 可从URL中找到" },
features: {},
radar: [{ source: ["www.bjnews.com.cn/:cat"] }],
name: "分类",
maintainers: ["dzx-dzx"],
handler,
url: "www.bjnews.com.cn"
};
async function handler(ctx) {
const url = `https://www.bjnews.com.cn/${ctx.req.param("cat")}`;
const $ = load(await ofetch_default(url));
const out = await pMap($("#waterfall-container .pin_demo > a").toArray().slice(0, ctx.req.query("limit") ? Number.parseInt(ctx.req.query("limit")) : 15).map((a) => ({
title: $(a).text(),
link: $(a).attr("href"),
category: $(a).parent().find(".source").text().trim()
})), (item) => fetchArticle(item), { concurrency: 2 });
return {
title: `新京报 - 分类 - ${$(".cur").text().trim()}`,
link: url,
item: out
};
}
//#endregion
export { route };