UNPKG

rsshub

Version:
60 lines (58 loc) 2.01 kB
import "./esm-shims-CzJ_djXG.mjs"; import "./config-C37vj7VH.mjs"; import "./dist-BInvbO1W.mjs"; import "./logger-Czu8UMNd.mjs"; import { t as ofetch_default } from "./ofetch-BIyrKU3Y.mjs"; import { t as parseDate } from "./parse-date-BrP7mxXf.mjs"; import { t as cache_default } from "./cache-Bo__VnGm.mjs"; //#region lib/routes/tencent/cloud/developer/column.ts const PAGE = 1; const PAGE_SIZE = 20; const route = { path: "/cloud/developer/column/:categoryId?", categories: ["programming"], example: "/tencent/cloud/developer/column/1", parameters: { categoryId: "categoryId from page url" }, radar: [{ source: ["cloud.tencent.com/developer/column"] }], name: "腾讯云开发者社区专栏", maintainers: ["lyling"], handler: async (ctx) => { const categoryId = ctx.req.param("categoryId") ?? 0; const items = (await ofetch_default(`https://cloud.tencent.com/developer/api/home/article-list`, { method: "POST", headers: { "Content-Type": "application/json" }, body: { classifyId: categoryId, page: PAGE, pagesize: PAGE_SIZE, type: "" } })).list.map((item) => ({ title: item.title, link: `https://cloud.tencent.com/developer/article/${item.articleId}`, description: item.summary, pubDate: parseDate(item.createTime * 1e3), author: item.author.nickname, category: item.tags.map((tag) => tag.tagName) })); const classify = await findClassifyById(categoryId); const title = classify ? classify.name : ""; return { title, description: `${title} - 腾讯云开发者社区`, item: items }; } }; async function findClassifyById(id) { const classifylink = "https://cloud.tencent.com/developer/api/column/get-classify-list-by-scene"; return (await cache_default.tryGet(classifylink, async () => { return await ofetch_default(classifylink, { method: "POST", headers: { "Content-Type": "application/json" }, body: { scene: 0 } }); })).list.find((classify) => classify.id === Number(id)); } //#endregion export { route };