UNPKG

rsshub

Version:
97 lines (95 loc) 3.3 kB
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 { t as parseDate } from "./parse-date-BrP7mxXf.mjs"; import { t as cache_default } from "./cache-Bo__VnGm.mjs"; import * as cheerio from "cheerio"; import markdownit from "markdown-it"; //#region lib/routes/lianxh/index.ts const md = markdownit({ html: true, breaks: true }); const route = { path: "/:category?", example: "/lianxh", parameters: { category: "分类 id,可在对应分类页 URL 中找到,默认为 `all`,即全部" }, radar: [{ source: ["www.lianxh.cn/blogs/all.html", "www.lianxh.cn/"] }], name: "精彩资讯", maintainers: ["nczitzk"], handler, url: "www.lianxh.cn/", description: `| 分类 | id | -------------------- | --- | 全部 | all | Stata 入门 | 16 | Stata 教程 | 17 | 计量专题 | 18 | 内生性 - 因果推断 | 19 | 面板数据 | 20 | 交乘项 - 调节 - 中介 | 21 | 结果输出 | 22 | 工具软件 | 23 | Stata 绘图 | 24 | 数据处理 | 25 | Stata 程序 | 26 | Probit-Logit | 27 | 时间序列 | 28 | 空间计量 - 网络分析 | 29 | Markdown-LaTeX | 30 | 论文写作 | 31 | 回归分析 | 32 | 其它 | 33 | 数据分享 | 34 | Stata 资源 | 35 | 文本分析 - 爬虫 | 36 | Python-R-Matlab | 37 | IV-GMM | 38 | 倍分法 DID | 39 | 断点回归 RDD | 40 | PSM-Matching | 41 | 合成控制法 | 42 | Stata 命令 | 43 | 专题课程 | 44 | 风险管理 | 45 | 生存分析 | 46 | 机器学习 | 47 | 分位数回归 | 48 | SFA-DEA - 效率分析 | 49 | 答疑 - 板书 | 50 | 论文重现 | 51 | 最新课程 | 52 | 公开课 | 53 |` }; async function handler(ctx) { const { category = "all" } = ctx.req.param(); const rootUrl = "https://www.lianxh.cn"; const currentUrl = `${rootUrl}/blogs/${category}.html`; const response = await ofetch_default(currentUrl); const $ = cheerio.load(response); const list = $(".card-body > a").slice(0, ctx.req.query("limit") ? Number.parseInt(ctx.req.query("limit"), 10) : 30).toArray().map((item) => { const $item = $(item); const href = $item.attr("href"); return { title: $item.find("h5").text().trim(), link: rootUrl + href, id: href?.split("/").pop()?.split(".")[0] }; }); const items = await Promise.all(list.map((item) => cache_default.tryGet(item.link, async () => { const { data: response$1 } = await ofetch_default(`${rootUrl}/web-api/article`, { query: { id: item.id } }); item.description = md.render(response$1.details); item.pubDate = parseDate(response$1.release_time, "YYYY-MM-DD"); item.author = response$1.author; return item; }))); return { title: `连享会 - ${$(".card-title").text()}`, link: currentUrl, item: items }; } //#endregion export { route };