UNPKG

rsshub

Version:
76 lines (74 loc) 2.05 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 "./parse-date-BrP7mxXf.mjs"; import { n as gqlEndpoint, r as parseItem, t as baseUrl } from "./utils-Dik9yXN-.mjs"; //#region lib/routes/matters/latest.ts const handler = async (ctx) => { const { type = "latest" } = ctx.req.param(); const limit = ctx.req.query("limit") ? Number.parseInt(ctx.req.query("limit"), 10) : 20; const options = { latest: { title: "最新", apiType: "newest" }, heat: { title: "熱議", apiType: "hottest" }, essence: { title: "精華", apiType: "icymi" } }; const item = (await ofetch_default(gqlEndpoint, { method: "POST", body: { query: `{ viewer { recommendation { feed: ${options[type].apiType}(input: {first: ${limit}}) { edges { node { shortHash title content createdAt author { displayName } tags { content } } } } } } }` } })).data.viewer.recommendation.feed.edges.map(({ node }) => parseItem(node)); return { title: `Matters | ${options[type].title}`, link: baseUrl, item }; }; const route = { path: "/latest/:type?", name: "Latest, heat, essence", example: "/matters/latest/heat", parameters: { uid: "Defaults to latest, see table below" }, maintainers: [ "xyqfer", "Cerebrater", "xosdy" ], handler, radar: [{ source: ["matters.town"] }], description: `| 最新 | 热门 | 精华 | | ------ | ---- | ------- | | latest | heat | essence |` }; //#endregion export { route };