UNPKG

rsshub

Version:
40 lines (39 loc) 1.65 kB
import { t as parseDate } from "./parse-date-Cr0wQjV_.mjs"; import { t as cache_default } from "./cache-BkqOokyU.mjs"; import { t as got_default } from "./got-BTowW50G.mjs"; import { load } from "cheerio"; //#region lib/routes/caixin/weekly.ts const route = { path: "/weekly", categories: ["traditional-media"], example: "/caixin/weekly", radar: [{ source: ["weekly.caixin.com/", "weekly.caixin.com/*"] }], name: "财新周刊", maintainers: ["TonyRL"], handler, url: "weekly.caixin.com/" }; async function handler(ctx) { const link = "https://weekly.caixin.com"; const { data: response } = await got_default(link); const $ = load(response); const list = [...$(".mi").toArray().map((item) => ({ link: $(item).find("a").attr("href")?.replace("http:", "https:") })), ...$(".xsjCon a").toArray().map((item) => ({ link: $(item).attr("href") }))].slice(0, ctx.req.query("limit") ? Number(ctx.req.query("limit")) : 10); const items = await Promise.all(list.map((item) => cache_default.tryGet(item.link, async () => { const { data } = await got_default(item.link); const $ = load(data); item.title = $("head title").text().replace(/_财新周刊频道_财新网$/, "").trim(); item.pubDate = parseDate($(".source").text().match(/出版日期:(\d{4}-\d{2}-\d{2})/)[1]); $(".subscribe").remove(); const report = $(".report"); report.find(".title, .source, .date").remove(); item.description = $(".cover").html() + report.html() + $(".magIntro2").html(); return item; }))); return { title: $("head title").text().replace(/_财新周刊频道_财新网$/, "").trim(), link, item: items }; } //#endregion export { route };