UNPKG

rsshub

Version:
70 lines (68 loc) 2.17 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 "./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 art } from "./render-BQo6B4tL.mjs"; import { t as got_default } from "./got-KxxWdaxq.mjs"; import path from "node:path"; import { load } from "cheerio"; import sanitizeHtml from "sanitize-html"; //#region lib/routes/xueqiu/stock-comments.ts init_esm_shims(); const route = { path: "/stock_comments/:id", categories: ["finance"], example: "/xueqiu/stock_comments/SZ002626", parameters: { id: "股票代码(需要带上交易所)" }, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, radar: [{ source: ["xueqiu.com/S/:id"] }], name: "股票评论", maintainers: [], handler }; async function handler(ctx) { const id = ctx.req.param("id"); const res = await got_default({ method: "get", url: `https://xueqiu.com/query/v1/symbol/search/status?u=11111&count=100&comment=0&symbol=${id}&source=all&sort=time` }); const stock_name = await cache_default.tryGet(`stock_name_${id}`, async () => { return load((await got_default({ method: "get", url: `https://xueqiu.com/S/${id}` })).data)(".stock-name").text().split("(")[0]; }); const data = res.data.list; return { title: `${id} ${stock_name} - 评论`, link: `https://xueqiu.com/S/${id}`, description: `${stock_name} - 评论`, item: data.map((item) => { let link = `https://xueqiu.com${item.target}`; if (item.quote_cards) link = item.quote_cards[0].target_url; const description = art(path.join(__dirname, "templates/comments_description-684b47f1.art"), { item }); return { title: item.title || sanitizeHtml(item.text, { allowedTags: [], allowedAttributes: {} }), description, pubDate: parseDate(item.created_at), link }; }) }; } //#endregion export { route };