UNPKG

rsshub

Version:
57 lines (55 loc) 1.83 kB
import "./esm-shims-CzJ_djXG.mjs"; import "./config-C37vj7VH.mjs"; import "./dist-BInvbO1W.mjs"; import "./logger-Czu8UMNd.mjs"; import "./ofetch-BIyrKU3Y.mjs"; import { t as parseDate } from "./parse-date-BrP7mxXf.mjs"; import "./helpers-DxBp0Pty.mjs"; import { t as got_default } from "./got-KxxWdaxq.mjs"; import { t as invalid_parameter_default } from "./invalid-parameter-rr4AgGpp.mjs"; import { t as isValidHost } from "./valid-host-C-u5eW3j.mjs"; //#region lib/routes/zhubai/index.ts const route = { path: "/posts/:id", categories: ["blog"], example: "/zhubai/posts/via", parameters: { id: "`id` 为竹白主页 url 中的三级域名,如 via.zhubai.love 的 `id` 为 `via`" }, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, name: "文章", maintainers: ["naixy28"], handler, description: `::: tip 在路由末尾处加上 \`?limit=限制获取数目\` 来限制获取条目数量,默认值为\`20\` :::` }; async function handler(ctx) { const id = ctx.req.param("id"); const limit = ctx.req.query("limit") ? Number.parseInt(ctx.req.query("limit")) : 20; if (!isValidHost(id)) throw new invalid_parameter_default("Invalid id"); const data = (await got_default({ method: "get", url: `https://${id}.zhubai.love/api/publications/${id}/posts?publication_id_type=token&limit=${limit}`, headers: { Referer: `https://${id}.zhubai.love/` } })).data.data; const { name, description } = data[0].publication; return { title: name, link: `https://${id}.zhubai.love/`, description, item: data.map((item) => ({ title: item.title, pubDate: parseDate(item.created_at), link: `https://${id}.zhubai.love/posts/${item.id}`, author: name })) }; } //#endregion export { route };