UNPKG

rsshub

Version:
54 lines (52 loc) 1.82 kB
import "./config-C37vj7VH.mjs"; import "./logger-Czu8UMNd.mjs"; import "./proxy-Db7uGcYb.mjs"; import { t as timezone } from "./timezone-D8cuwzTY.mjs"; import { n as puppeteer_default } from "./puppeteer-DGmvuGvT.mjs"; import { load } from "cheerio"; //#region lib/routes/parliament.uk/lordslibrary.ts const route = { path: "/lordslibrary/type/:topic?", categories: ["government"], example: "/parliament.uk/lordslibrary/type/research-briefing", parameters: { topic: "research by topic, string, example: [research-briefing|buisness|economy]" }, features: { requireConfig: false, requirePuppeteer: true, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, name: "House of Lords Library", maintainers: ["AntiKnot"], handler }; async function handler(ctx) { const { topic } = ctx.req.param(); const url = `https://lordslibrary.parliament.uk/type/${topic}/`; const browser = await puppeteer_default(); const page = await browser.newPage(); await page.setRequestInterception(true); page.on("request", (request) => { request.resourceType() === "document" ? request.continue() : request.abort(); }); await page.goto(url, { waitUntil: "domcontentloaded" }); const html = await page.evaluate(() => document.documentElement.innerHTML); await page.close(); const $ = load(html); const items = $("div.l-box.l-box--no-border.card__text").toArray().map((article) => ({ title: $(article).find(".card__text a").text().trim(), link: $(article).find(".card__text a").attr("href"), description: $(article).find("p").last().text().trim(), pubDate: timezone($(article).find(".card__date time").attr("datetime")) })); await browser.close(); return { title: `parliament - lordslibrary - ${topic}`, link: url, item: items }; } //#endregion export { route };