UNPKG

rsshub

Version:
71 lines (69 loc) 2.23 kB
import "./dist-Bog6z_OM.mjs"; import "./config-MQ-7ebJ_.mjs"; import "./logger-C4avouvV.mjs"; import "./ofetch-DKl_Ma9g.mjs"; import { t as parseDate } from "./parse-date-r5WDWHno.mjs"; import "./is-worker-DESPicPc.mjs"; import { t as cache_default } from "./cache-SV6W5EPy.mjs"; import "./helpers-Bo4JQYdN.mjs"; import { t as got_default } from "./got-CO-ndVl2.mjs"; import { t as renderDescription } from "./description-DBMruKib.mjs"; import { load } from "cheerio"; //#region lib/routes/futunn/main.ts const route = { path: ["/main", "/"], categories: ["finance"], example: "/futunn/main", features: { supportRadar: true }, radar: [{ source: ["news.futunn.com/main", "news.futunn.com/:lang/main"], target: "/main" }], name: "要闻", maintainers: [ "Wsine", "nczitzk", "kennyfong19931" ], handler }; async function handler(ctx) { const limit = ctx.req.query("limit") ? Number.parseInt(ctx.req.query("limit")) : 48; const rootUrl = "https://news.futunn.com"; const currentUrl = `${rootUrl}/main`; let items = (await got_default({ method: "get", url: `${rootUrl}/news-site-api/main/get-market-list?size=${limit}` })).data.data.list.map((item) => ({ title: item.title, link: item.url.split("?")[0], author: item.source, pubDate: parseDate(item.timestamp * 1e3), description: renderDescription({ abs: item.abstract, pic: item.pic }) })); items = await Promise.all(items.map((item) => cache_default.tryGet(item.link, async () => { if (/news\.futunn\.com/.test(item.link)) { const content = load((await got_default({ method: "get", url: item.link })).data); content(".futu-news-time-stamp").remove(); content(".nnstock").each(function() { content(this).replaceWith(`<a href="${content(this).attr("href")}">${content(this).text().replaceAll("$", "")}</a>`); }); item.description = content(".origin_content").html(); item.category = [...content(".news__from-topic__title").toArray().map((a) => content(a).text().trim()), ...content("#relatedStockWeb .stock-name").toArray().map((s) => content(s).text().trim())]; } return item; }))); return { title: "富途牛牛 - 要闻", link: currentUrl, item: items }; } //#endregion export { route };