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