UNPKG

rsshub

Version:
39 lines (38 loc) 1.47 kB
import { t as rofetch } from "./ofetch-W1aeTHCo.mjs"; import { t as parseDate } from "./parse-date-CjhZE69i.mjs"; import { t as cache_default } from "./cache-CiDoUSLo.mjs"; //#region lib/routes/xuangubao/subject.ts const route = { path: "/subject/:subject_id", categories: ["finance"], example: "/xuangubao/subject/41", parameters: { subject_id: "主题 id,网址 https://xuangubao.cn/subject/41 中最后的数字" }, name: "主题", maintainers: ["hillerliao"], handler }; async function handler(ctx) { const { subject_id } = ctx.req.param(); const link = `https://xuangubao.cn/subject/${subject_id}`; const response = await rofetch(`https://api.xuangubao.cn/api/pc/subj/${subject_id}?limit=20`, { headers: { Referer: link } }); const subject = response.Subject; const out = await Promise.all(response.Messages.map((item) => cache_default.tryGet(item.Url, async () => { const detail = await rofetch(`https://baoer-api-prod.xuangubao.cn/baoer_backend/api/messages/show/v2/${item.Id}?subjectId=${subject_id}`, { headers: { Referer: `https://m.xuangubao.cn/subject/${subject_id}` } }); return { title: item.Title, link: item.Url || item.ShareUrl2, pubDate: parseDate(item.CreatedAt, "X"), description: detail.Content || item.Summary, image: item.PcImage }; }))); return { title: `${subject.Title} - 主题 - 选股宝`, link, description: subject.Desc, image: subject.Image, item: out }; } //#endregion export { route };