rsshub
Version:
Make RSS Great Again!
62 lines (60 loc) • 1.88 kB
JavaScript
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 };