UNPKG

rsshub

Version:
78 lines (76 loc) 1.96 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/deepin/thread.ts const route = { path: "/threads/:type?", categories: ["bbs"], example: "/deepin/threads/latest", parameters: { type: { description: "主题类型", options: [{ value: "hot", label: "最热主题" }, { value: "latest", label: "最新主题" }] } }, name: "首页主题列表", maintainers: ["myml"], radar: [{ source: ["bbs.deepin.org"], target: "/threads/latest" }], handler }; const TypeMap = { hot: { where: "hot_value", title: "最热主题" }, latest: { where: "id", title: "最新主题" } }; async function handler(ctx) { let type = TypeMap.latest; if (ctx.req.param("type") === "hot") type = TypeMap.hot; const res = await ofetch_default("https://bbs.deepin.org.cn/api/v1/thread/index", { query: { languages: "zh_CN", order: "updated_at", where: type.where }, headers: { accept: "application/json" } }); const items = await Promise.all(res.ThreadIndex.map((thread) => { const link = "https://bbs.deepin.org.cn/post/" + thread.id; return cache_default.tryGet(link, async () => { const item = { id: String(thread.id), title: thread.subject, link, pubDate: parseDate(thread.created_at), author: thread.user.nickname, category: [thread.forum.name], description: "" }; const cacheData = await ofetch_default("https://bbs.deepin.org.cn/api/v1/thread/info?id=" + item.id); if (cacheData) item.description = cacheData.data.post.message; return item; }); })); return { title: "deepin论坛主页 - " + type.title, link: "https://bbs.deepin.org", item: items }; } //#endregion export { route };