UNPKG

rsshub

Version:
71 lines (69 loc) 2.1 kB
import { n as parseRelativeDate } from "./parse-date-Cr0wQjV_.mjs"; import { t as got_default } from "./got-BTowW50G.mjs"; import { load } from "cheerio"; //#region lib/routes/learnblockchain/posts.ts const route = { path: "/posts/:cid/:sort?", categories: ["programming"], example: "/learnblockchain/posts/DApp/newest", parameters: { cid: "分类id,更多分类可以论坛的URL找到", sort: "排序方式,默认精选" }, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, name: "文章", maintainers: ["running-grass"], handler, description: `| id | 分类 | | -------- | ------------ | | all | 全部 | | DApp | 去中心化应用 | | chains | 公链 | | 联盟链 | 联盟链 | | scaling | Layer2 | | langs | 编程语言 | | security | 安全 | | dst | 存储 | | basic | 理论研究 | | other | 其他 | | id | 排序方式 | | -------- | ----------- | | newest | 最新 | | featured | 精选 (默认) | | featured | 最赞 | | hottest | 最热 |` }; async function handler(ctx) { const cid = ctx.req.param("cid") || "all"; const sort = ctx.req.param("sort"); let url = "https://learnblockchain.cn/categories/"; url += cid + "/"; if (sort) url += sort + "/"; const data = (await got_default(url)).data; const $ = load(data); const list = $("div.stream-list section.stream-list-item"); return { title: `登链社区--${cid}`, link: url, description: "登链社区", item: list.toArray().map((ite) => { const item = $(ite); return { title: item.find("h2.title").text().trim(), description: item.find("div.excerpt").text().trim(), pubDate: parseRelativeDate(item.find(".author li:nth-child(2)").text().replace("发布于", "").trim()), link: item.find("h2.title a").attr("href").trim(), author: item.find(".author li:nth-child(1)").text().trim() }; }) }; } //#endregion export { route };