UNPKG

rsshub

Version:
50 lines (48 loc) 1.79 kB
import "./dist-Bog6z_OM.mjs"; import "./config-MQ-7ebJ_.mjs"; import "./logger-C4avouvV.mjs"; import "./ofetch-DKl_Ma9g.mjs"; import "./helpers-Bo4JQYdN.mjs"; import { t as got_default } from "./got-CO-ndVl2.mjs"; import { t as rss_parser_default } from "./rss-parser-Cnh4NKwh.mjs"; import { t as getConfig } from "./utils-C7f2YUyQ.mjs"; //#region lib/routes/discourse/official.ts const route = { path: "/:configId/official/:path{.+}", categories: ["bbs"], example: "/discourse/0/official/latest", parameters: { configId: "Environment variable configuration id, see above", path: "Discourse RSS path between `domain` and `.rss`. All supported Rss path can be found in [https://meta.discourse.org/t/finding-discourse-rss-feeds/264134](https://meta.discourse.org/t/finding-discourse-rss-feeds/264134). For example: the path of [https://meta.discourse.org/top/all.rss](https://meta.discourse.org/top/all.rss) is `top/all`." }, features: { requireConfig: [{ name: "DISCOURSE_CONFIG_*", description: `Configure the Discourse environment variables referring to [https://docs.rsshub.app/deploy/config#discourse](https://docs.rsshub.app/deploy/config#discourse).` }], requirePuppeteer: false, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, name: "Official RSS", maintainers: ["Raikyou", "dzx-dzx"], handler }; async function handler(ctx) { const { link, key } = getConfig(ctx); const url = `${link}/${ctx.req.param("path")}.rss`; const feed = await rss_parser_default.parseString((await got_default(url, { headers: { "User-Api-Key": key } })).data); feed.items = feed.items.map((e) => ({ description: e.content, author: e.creator, ...e })); return { item: feed.items, ...feed }; } //#endregion export { route };