UNPKG

rsshub

Version:
38 lines (37 loc) 1.47 kB
import { t as rofetch } from "./ofetch-W1aeTHCo.mjs"; import { t as parseDate } from "./parse-date-CjhZE69i.mjs"; import { t as cache_default } from "./cache-CiDoUSLo.mjs"; import { load } from "cheerio"; //#region lib/routes/mit/csail/news.ts const route = { path: "/csail/news", categories: ["university"], example: "/mit/csail/news", radar: [{ source: ["www.csail.mit.edu/news"] }], name: "Computer Science and Artificial Intelligence Laboratory (CSAIL)", maintainers: ["nczitzk"], handler, url: "www.csail.mit.edu/news" }; async function handler(ctx) { const limit = ctx.req.query("limit") ? Number(ctx.req.query("limit")) : 24; const rootUrl = "https://www.csail.mit.edu"; const currentUrl = `${rootUrl}/news/`; const list = (await rofetch(`${rootUrl}/api-proxy/angular-solr?_api_proxy_uri=news&q=*%3A*&sort=ds_field_publication_date%20DESC&rows=${limit}&start=0`, { headers: { accept: "application/json" } })).response.docs.map((doc) => ({ title: doc.ss_title, link: `${rootUrl}${doc.ss_url}` })); return { title: "News - MIT CSAIL", link: currentUrl, item: await Promise.all(list.map((item) => cache_default.tryGet(item.link, async () => { const content = load(await rofetch(item.link)); content(".sidebar-right, .sidebar-item").remove(); item.description = content(".content-container-inner").html(); item.pubDate = parseDate(content("time").attr("datetime")); return item; }))) }; } //#endregion export { route };