rsshub
Version:
Make RSS Great Again!
42 lines (41 loc) • 1.75 kB
JavaScript
import { t as rofetch } from "./ofetch-eUBdfMpp.mjs";
import { t as parseDate } from "./parse-date-CjhZE69i.mjs";
import { t as cache_default } from "./cache-CiDoUSLo.mjs";
//#region lib/routes/asml/press-releases.ts
const route = {
path: "/press-releases",
categories: ["new-media"],
example: "/asml/press-releases",
parameters: {},
name: "Press releases & announcements",
maintainers: ["nczitzk"],
handler
};
async function handler() {
const rootUrl = "https://www.asml.com";
const currentUrl = `${rootUrl}/en/news/press-releases`;
const buildId = await cache_default.tryGet("asml:buildId", async () => {
return (await rofetch(currentUrl)).match(/"buildId":"(.*?)"/)[1];
});
const response = await rofetch(`${rootUrl}/_next/data/${buildId}/en/news/press-releases.json`, { query: { path: ["news", "press-releases"] } });
const list = Object.values(response.pageProps.componentProps)[0].articles.flat().map((article) => ({
title: article.title.data.value.trim(),
link: `${rootUrl}${article.url.path}`,
pubDate: parseDate(article.articleDate.data.value),
path: article.url.path
}));
return {
title: "Press releases | ASML",
link: currentUrl,
item: await Promise.all(list.map((item) => cache_default.tryGet(item.link, async () => {
const { fields, placeholders } = (await rofetch(`${rootUrl}/_next/data/${buildId}${item.path}.json`)).pageProps.page.layout.sitecore.route;
return {
...item,
description: placeholders["headless-main"].find((component) => component.componentName === "CustomContainer").placeholders["content-component-placeholder"].map((component) => component.fields.content.value).join(""),
pubDate: parseDate(fields.publicationDate.value)
};
})))
};
}
//#endregion
export { route };