rsshub
Version:
Make RSS Great Again!
44 lines (43 loc) • 1.34 kB
JavaScript
import { t as rofetch } from "./ofetch-W1aeTHCo.mjs";
import { t as parseDate } from "./parse-date-CjhZE69i.mjs";
//#region lib/routes/geekbang/column.ts
const route = {
path: "/column/:cid",
categories: ["programming"],
example: "/geekbang/column/48",
parameters: { cid: "专栏 id,可从[全部专栏](https://time.geekbang.org/paid-content)进入专栏介绍页,在 URL 中找到" },
name: "专栏文章",
maintainers: ["fengchang"],
handler
};
async function handler(ctx) {
const { cid: columnId } = ctx.req.param();
const introResponse = await rofetch("https://time.geekbang.org/serv/v3/column/info", {
method: "POST",
body: { product_id: Number(columnId) }
});
const out = (await rofetch("https://time.geekbang.org/serv/v1/column/articles", {
method: "POST",
body: {
cid: columnId,
size: 500,
prev: 0,
order: "latest",
sample: false
}
})).data.list.map((item) => ({
title: item.article_title,
pubDate: parseDate(item.article_ctime, "X"),
link: `https://time.geekbang.org/column/article/${item.id}`,
description: item.article_summary
}));
return {
title: introResponse.data.title,
link: `https://time.geekbang.org/column/intro/${columnId}`,
description: introResponse.data.subtitle,
image: introResponse.data.cover.square,
item: out
};
}
//#endregion
export { route };