rsshub
Version:
Make RSS Great Again!
38 lines (37 loc) • 1.37 kB
JavaScript
import { t as rofetch } from "./ofetch-W1aeTHCo.mjs";
import { t as parseDate } from "./parse-date-CjhZE69i.mjs";
//#region lib/routes/fnal/news.ts
const route = {
path: "/news/:category?",
categories: ["new-media"],
example: "/fnal/news",
parameters: { category: "Category, see below, All News by default" },
name: "News",
maintainers: ["nczitzk"],
handler,
description: `| All News | Fermilab features | Press releases | Symmetry features |
| -------- | ----------------- | -------------- | ----------------- |
| allnews | 269 | 55 | 12580 |`
};
async function handler(ctx) {
const { category = "allnews" } = ctx.req.param();
const rootUrl = "https://news.fnal.gov";
const items = (await rofetch(`${rootUrl}/wp-json/wp/v2/posts`, { query: {
_embed: "",
...category !== "allnews" && { categories: category }
} })).map((post) => ({
title: post.title.rendered,
link: post.link,
description: post.content.rendered,
pubDate: parseDate(`${post.date_gmt}Z`),
author: post._embedded?.author?.[0]?.name,
category: [...new Set(post._embedded["wp:term"].flat().filter((term) => term.taxonomy === "category" || term.taxonomy === "post_tag").map((term) => term.name))]
}));
return {
title: "Fermilab News",
link: `${rootUrl}/newsroom/news/?se=&c=${category}`,
item: items
};
}
//#endregion
export { route };