UNPKG

rsshub

Version:
62 lines (60 loc) 1.88 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/author.ts const handler = async (ctx) => { const { uid } = ctx.req.param(); const user = (await ofetch_default(gqlEndpoint, { method: "POST", body: { query: `{ user(input: {userName: "${uid}"}) { displayName avatar info { description } articles(input: {first: ${ctx.req.query("limit") ? Number.parseInt(ctx.req.query("limit"), 10) : 20}}) { edges { node { shortHash title content createdAt author { displayName } tags { content } } } } } }` } })).data.user; return { title: `Matters | ${user.displayName}`, link: `${baseUrl}/@${uid}`, description: user.info.description, image: user.avatar, item: user.articles.edges.map(({ node }) => parseItem(node)) }; }; const route = { path: "/author/:uid", name: "Author", example: "/matters/author/robertu", parameters: { uid: "Author id, can be found at author's homepage url" }, maintainers: ["Cerebrater", "xosdy"], handler, radar: [{ source: ["matters.town/:uid"], target: (params) => `/matters/author/${params.uid.slice(1)}` }] }; //#endregion export { route };