UNPKG

rsshub

Version:
92 lines (90 loc) 3.03 kB
import "./esm-shims-CzJ_djXG.mjs"; import "./config-C37vj7VH.mjs"; import "./dist-BInvbO1W.mjs"; import "./logger-Czu8UMNd.mjs"; import "./ofetch-BIyrKU3Y.mjs"; import { t as parseDate } from "./parse-date-BrP7mxXf.mjs"; import { t as cache_default } from "./cache-Bo__VnGm.mjs"; import "./helpers-DxBp0Pty.mjs"; import { t as got_default } from "./got-KxxWdaxq.mjs"; //#region lib/routes/wallstreetcn/news.ts const titles = { global: "最新", shares: "股市", bonds: "债市", commodities: "商品", forex: "外汇", enterprise: "公司", "asset-manage": "资管", tmt: "科技", estate: "地产", car: "汽车", medicine: "医药" }; const route = { path: "/news/:category?", categories: ["finance"], example: "/wallstreetcn/news", radar: [{ source: ["wallstreetcn.com/news/:category", "wallstreetcn.com/"] }], name: "资讯", maintainers: ["nczitzk"], handler, description: `| id | 分类 | | ------------ | ---- | | global | 最新 | | shares | 股市 | | bonds | 债市 | | commodities | 商品 | | forex | 外汇 | | enterprise | 公司 | | asset-manage | 资管 | | tmt | 科技 | | estate | 地产 | | car | 汽车 | | medicine | 医药 |` }; async function handler(ctx) { const category = ctx.req.param("category") ?? "global"; const rootUrl = "https://wallstreetcn.com"; const apiRootUrl = "https://api-one.wallstcn.com"; const currentUrl = `${rootUrl}/news/${category}`; let items = (await got_default({ method: "get", url: `${apiRootUrl}/apiv1/content/information-flow?channel=${category}-channel&accept=article&limit=${ctx.req.query("limit") ?? 25}` })).data.data.items.filter((item) => item.resource_type !== "ad").map((item) => ({ type: item.resource_type, guid: item.resource.id, link: item.resource.uri, pubDate: parseDate(item.resource.display_time * 1e3) })); items = await Promise.all(items.map((item) => cache_default.tryGet(item.link, async () => { const responseData = (await got_default({ method: "get", url: `${apiRootUrl}/apiv1/content/${item.type === "live" ? `lives/${item.guid}` : `articles/${item.guid}?extract=0`}` })).data; if (responseData.code !== 2e4) return null; const data = responseData.data; item.title = data.title || data.content_text; item.author = data.source_name ?? data.author.display_name; item.description = data.content + (data.content_more ?? ""); item.category = data.asset_tags?.map((t) => t.name) ?? []; if (data.audio_uri) { item.enclosure_type = "audio/mpeg"; item.enclosure_url = data.audio_uri; item.itunes_item_image = data.image?.uri ?? ""; item.itunes_duration = data.audio_info?.duration ?? ""; } delete item.type; return item; }))); items = items.filter((item) => item !== null); return { title: `华尔街见闻 - 资讯 - ${titles[category]}`, link: currentUrl, item: items, itunes_author: "华尔街见闻", image: "https://static.wscn.net/wscn/_static/favicon.png" }; } //#endregion export { route };