rsshub
Version:
Make RSS Great Again!
45 lines (44 loc) • 1.5 kB
JavaScript
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 };