UNPKG

rsshub

Version:
76 lines (74 loc) 2.43 kB
import "./esm-shims-CzJ_djXG.mjs"; import "./config-C37vj7VH.mjs"; import "./dist-BInvbO1W.mjs"; import "./logger-Czu8UMNd.mjs"; import "./ofetch-BIyrKU3Y.mjs"; import { t as cache_default } from "./cache-Bo__VnGm.mjs"; import "./helpers-DxBp0Pty.mjs"; import "./render-BQo6B4tL.mjs"; import { t as got_default } from "./got-KxxWdaxq.mjs"; import { t as utils_default } from "./utils-qtmmaZ0W.mjs"; import markdownit from "markdown-it"; //#region lib/routes/lanqiao/courses.ts const route = { path: "/courses/:sort/:tag", categories: ["programming"], example: "/lanqiao/courses/latest/all", parameters: { sort: "排序规则 sort, 默认(`default`)、最新(`latest`)、最热(`hotest`)", tag: "课程标签 `tag`,可在该页面找到:https://www.lanqiao.cn/courses/" }, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: true, supportBT: false, supportPodcast: false, supportScihub: false }, name: "全站发布的课程", maintainers: ["huhuhang"], handler }; async function handler(ctx) { const sort = ctx.req.param("sort"); const tag = ctx.req.param("tag"); const data = (await got_default({ method: "get", url: `https://www.lanqiao.cn/api/v2/courses/?sort=${sort}&tag=${tag}&include=name,description,picture_url,id` })).data.results; const md = new markdownit(); const courseType = { free: "免费课", member: "会员课", limit_free: "限时免费", louplus: "楼+", bootcamp: "训练营", private: "私有课", exam: "考试" }; const items = await Promise.all(data.map((item) => cache_default.tryGet(`https://www.lanqiao.cn/api/v2/courses/${item.id}/`, async () => { const course = (await got_default({ method: "get", url: `https://www.lanqiao.cn/api/v2/courses/${item.id}/` })).data; item.title = `${course.name} [${courseType[course.fee_type]}]`; item.description = utils_default.courseDesc(course.picture_url, md.render(course.long_description)); item.author = course.teacher.name; item.link = `https://www.lanqiao.cn/courses/${course.id}/`; return item; }))); const sortType = { latest: "最新", hotest: "最热", default: "默认" }; return { title: `蓝桥云课${sortType[sort]}课程列表【${tag}】`, link: `https://www.lanqiao.cn/courses/?sort=${sort}&tag=${tag}`, description: `蓝桥云课【${tag}】标签下${sortType[sort]}课程列表`, item: items }; } //#endregion export { route };