rsshub
Version:
Make RSS Great Again!
43 lines (41 loc) • 3.19 kB
JavaScript
import { t as rofetch } from "./ofetch-C3ts-Hud.mjs";
import { i as parseCardList, n as fetchArticle, t as feedMeta } from "./common-DcqxCICR.mjs";
import { load } from "cheerio";
//#region lib/routes/jiemian/vip.ts
const route = {
path: "/pro/lists/:id",
parameters: { id: "分类 id,见下表,可在对应分类页 URL 中找到" },
name: "VIP",
example: "/jiemian/pro/lists/12",
maintainers: ["nczitzk", "pseudoyu"],
handler,
description: `| [投资早晚报](https://www.jiemian.com/pro/lists/12.html) | [宏观晚 6 点](https://www.jiemian.com/pro/lists/20.html) | [打新早报](https://www.jiemian.com/pro/lists/21.html) | [盘前机会前瞻](https://www.jiemian.com/pro/lists/13.html) | [公告快评](https://www.jiemian.com/pro/lists/14.html) | [盘中必读](https://www.jiemian.com/pro/lists/15.html) |
| ------------------------------------------------------- | -------------------------------------------------------- | ----------------------------------------------------- | --------------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- |
| 12 | 20 | 21 | 13 | 14 | 15 |
| [金股挖掘](https://www.jiemian.com/pro/lists/16.html) | [调研早知道](https://www.jiemian.com/pro/lists/17.html) | [研报新知](https://www.jiemian.com/pro/lists/18.html) | [大势侦察](https://www.jiemian.com/pro/lists/1.html) | [市场风向标](https://www.jiemian.com/pro/lists/19.html) |
| ----------------------------------------------------- | ------------------------------------------------------- | ----------------------------------------------------- | ---------------------------------------------------- | ------------------------------------------------------- |
| 16 | 17 | 18 | 1 | 19 |`
};
async function handler(ctx) {
const { id } = ctx.req.param();
const limit = ctx.req.query("limit") ? Number(ctx.req.query("limit")) : 20;
const currentUrl = `https://www.jiemian.com/pro/lists/${id}.html`;
const [pageResponse, listResponse] = await Promise.all([rofetch(currentUrl), rofetch("https://a.jiemian.com/index.php", { query: {
m: "newLists",
a: "loadMore",
tid: id,
page: 1,
tpl: "sub-card",
cid: "",
repeat: "",
list_type: "pay"
} })]);
const { html } = JSON.parse(listResponse.slice(listResponse.indexOf("(") + 1, listResponse.lastIndexOf(")")));
const list = parseCardList(html);
return {
item: await Promise.all(list.slice(0, limit).map((item) => fetchArticle(item))),
...feedMeta(load(pageResponse), currentUrl)
};
}
//#endregion
export { route };