UNPKG

rsshub

Version:
45 lines (44 loc) 1.5 kB
import { t as rofetch } from "./ofetch-W1aeTHCo.mjs"; import { t as parseDate } from "./parse-date-CjhZE69i.mjs"; import { t as cache_default } from "./cache-CiDoUSLo.mjs"; import { load } from "cheerio"; //#region lib/routes/gwern/category.ts const route = { path: "/:category", categories: ["blog"], example: "/gwern/newest", parameters: { category: "網誌主頁的分類訊息" }, name: "博客", maintainers: ["cerebrater"], handler }; const baseURL = "https://gwern.net"; async function handler(ctx) { const { category } = ctx.req.param(); const name = category.charAt(0).toUpperCase() + category.slice(1); const url = `${baseURL}/index`; const $ = load(await rofetch(url)); const out = await Promise.all($(`section#${category} ul > li`).toArray().map((item) => { const link = baseURL + $(item).find("a").attr("href"); return cache_default.tryGet(link, async () => { const $$ = load(await rofetch(link)); const time = $$("span#page-creation").text(); $$("a").removeAttr("data-popup-title").removeAttr("data-popup-title-html").removeAttr("data-popup-author").removeAttr("data-popup-abstract").removeAttr("data-popup-doi").removeAttr("data-popup-date"); return { title: $$("header > h1").text(), author: "Gwern Branwen", description: $$("div#markdownBody").html().replace("­", ""), link, guid: link, pubDate: parseDate(time) }; }); })); return { title: `Gwern - ${name}`, link: url, item: out }; } //#endregion export { route };