UNPKG

rsshub

Version:
132 lines (130 loc) 3.98 kB
import { n as init_esm_shims, t as __dirname } from "./esm-shims-CzJ_djXG.mjs"; import "./config-C37vj7VH.mjs"; import "./dist-BInvbO1W.mjs"; import "./logger-Czu8UMNd.mjs"; import { t as ofetch_default } from "./ofetch-BIyrKU3Y.mjs"; import { t as parseDate } from "./parse-date-BrP7mxXf.mjs"; import { t as cache_default } from "./cache-Bo__VnGm.mjs"; import { t as art } from "./render-BQo6B4tL.mjs"; import { t as invalid_parameter_default } from "./invalid-parameter-rr4AgGpp.mjs"; import path from "node:path"; import * as cheerio from "cheerio"; //#region lib/routes/kpmg/insights.ts init_esm_shims(); const baseUrl = "https://kpmg.com"; const payload = { query: "", filters: { all: [ { kpmg_tab_type: ["Insights"] }, { kpmg_article_type: ["Article-General"] }, { kpmg_template_type: [ "article-details-template", "insights-flexible-template", "editable-flex-template", "editable-campaign-template" ] } ] }, result_fields: { kpmg_description: { raw: {} }, kpmg_banner_flag: { raw: {} }, kpmg_primary_tag: { raw: {} }, kpmg_article_date: { raw: {} }, kpmg_contact_job_ttl: { raw: {} }, kpmg_title: { raw: {} }, kpmg_contact_city: { raw: {} }, kpmg_event_start_time: { raw: {} }, kpmg_article_date_time: { raw: {} }, kpmg_tab_type: { raw: {} }, kpmg_short_desc: { raw: {} }, kpmg_image_alt: { raw: {} }, kpmg_url: { raw: {} }, kpmg_template_type: { raw: {} }, kpmg_image: { raw: {} }, kpmg_non_decorative_alt_text: { raw: {} }, kpmg_article_readtime: { raw: {} }, kpmg_contact_fn: { raw: {} }, kpmg_contact_ln: { raw: {} }, kpmg_event_type: { raw: {} }, kpmg_contact_country: { raw: {} }, kpmg_is_rendition_optimized: { raw: {} }, kpmg_article_primary_format: { raw: {} }, kpmg_article_type: { raw: {} }, kpmg_event_startdate: { raw: {} } }, page: { size: 20, current: 1 }, sort: { kpmg_filter_date: "desc" } }; const endpoints = { en: { title: "Insights - KPMG ", link: `${baseUrl}/xx/en/home/insights.html`, api: `${baseUrl}/esearch/xx-en` }, zh: { title: "洞察 - 毕马威", link: `${baseUrl}/cn/zh/home/insights.html`, api: `${baseUrl}/esearch/cn-zh` } }; const render = (data) => art(path.join(__dirname, "templates/description-46570299.art"), data); const handler = async (ctx) => { const { lang = "en" } = ctx.req.param(); const endpoint = endpoints[lang]; if (!endpoint) throw new invalid_parameter_default("Invalid language"); const link = endpoint.link; const list = (await ofetch_default(endpoint.api, { method: "POST", body: payload })).results.map((item) => ({ title: item.kpmg_title.raw, description: item.kpmg_description.raw, link: item.kpmg_url.raw, pubDate: parseDate(item.kpmg_article_date_time.raw), image: item.kpmg_image.raw, imageAlt: item.kpmg_image_alt?.raw })); return { title: "KPMG Insights", link, item: await Promise.all(list.map((item) => cache_default.tryGet(item.link, async () => { const response = await ofetch_default(item.link); const $ = cheerio.load(response); const content = $(".bodytext-data").toArray().map((item$1) => { const element = $(item$1); element.find(".hidden-xs, .sr-only").remove(); return element.parent().html(); }).join(""); const pdfDetails = $(".pdfdetails").parent().parent().parent(); pdfDetails.find(".hidden-xs, .sr-only").remove(); item.description = render({ image: item.image, alt: item.imageAlt, content, pdf: pdfDetails.prop("outerHTML") }); return item; }))) }; }; const route = { path: "/insights/:lang?", example: "/kpmg/insights", parameters: { lang: "Language, either `en` or `zh`" }, radar: [{ source: ["kpmg.com/xx/en/home/insights.html"], target: "/insights/en" }, { source: ["kpmg.com/cn/zh/home/insights.html"], target: "/insights/zh" }], name: "Insights", maintainers: ["LogicJake"], handler, url: "kpmg.com/xx/en/home/insights.html", zh: { name: "洞察" } }; //#endregion export { route };