UNPKG

rsshub

Version:
143 lines (132 loc) 4.4 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 { t as timezone } from "./timezone-D8cuwzTY.mjs"; import path from "node:path"; //#region lib/routes/szse/projectdynamic.ts init_esm_shims(); const route = { path: "/projectdynamic/:type?/:stage?/:status?", categories: ["finance"], example: "/szse/projectdynamic", parameters: { type: "类型,见下表,默认为IPO", stage: "阶段,见下表,默认为全部", status: "状态,见下表,默认为全部" }, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, radar: [{ source: [ "listing.szse.cn/projectdynamic/1/index.html", "listing.szse.cn/projectdynamic/2/index.html", "listing.szse.cn/projectdynamic/3/index.html", "listing.szse.cn/" ] }], name: "创业板项目动态", maintainers: ["nczitzk"], handler, url: "listing.szse.cn/projectdynamic/1/index.html", description: `类型 | IPO | 再融资 | 重大资产重组 | | --- | ------ | ------------ | | 1 | 2 | 3 | 阶段 | 全部 | 受理 | 问询 | 上市委会议 | | ---- | ---- | ---- | ---------- | | 0 | 10 | 20 | 30 | | 提交注册 | 注册结果 | 中止 | 终止 | | -------- | -------- | ---- | ---- | | 35 | 40 | 50 | 60 | 状态 | 全部 | 新受理 | 已问询 | 通过 | 未通过 | | ---- | ------ | ------ | ---- | ------ | | 0 | 20 | 30 | 45 | 44 | | 暂缓审议 | 复审通过 | 复审不通过 | 提交注册 | | -------- | -------- | ---------- | -------- | | 46 | 56 | 54 | 60 | | 注册生效 | 不予注册 | 补充审核 | 终止注册 | | -------- | -------- | -------- | -------- | | 70 | 74 | 78 | 76 | | 中止 | 审核不通过 | 撤回 | | ---- | ---------- | ---- | | 80 | 90 | 95 |` }; async function handler(ctx) { const typeMap = { 1: "IPO", 2: "再融资", 3: "重大资产重组" }; const stageMap = { 10: "受理", 20: "问询", 30: "上市委会议", 35: "提交注册", 40: "注册结果", 50: "中止", 60: "终止" }; const statusMap = { 20: "新受理", 30: "已问询", 45: "通过", 44: "未通过", 46: "暂缓审议", 56: "复审通过", 54: "复审不通过", 60: "提交注册", 70: "注册生效", 74: "不予注册", 78: "补充审核", 76: "终止注册", 80: "中止", 90: "审核不通过", 95: "撤回" }; const type = ctx.req.param("type") ?? "1"; const stage = ctx.req.param("stage") ?? "0"; const status = ctx.req.param("status") ?? "0"; const rootUrl = "http://listing.szse.cn"; let items = (await got_default({ method: "get", url: `${rootUrl}/api/ras/projectrends/query?bizType=${type}${stage === "0" ? "" : `&stage=${stage}`}${status === "0" ? "" : `&status=${status}`}&pageIndex=0&pageSize=20` })).data.data.map((item) => ({ title: item.prjid, link: `${rootUrl}/api/ras/projectrends/details?id=${item.prjid}` })); items = await Promise.all(items.map((item) => cache_default.tryGet(item.link, async () => { const data = (await got_default({ method: "get", url: item.link })).data.data; const current = JSON.parse(data.pjdot)["-1"]; item.link = `${rootUrl}/projectdynamic/ipo/detail/index.html?id=${item.title}`; item.title = `[${data.prjst}] ${data.cmpnm} (${data.cmpsnm})- ${data.csrcind}`; item.description = art(path.join(__dirname, "templates/description-1d5c8723.art"), { data, current }); item.pubDate = timezone(parseDate(current.startTime, "YYYY-MM-DD HH:mm:ss"), 8); return item; }))); return { title: `${typeMap[type]}项目动态${status === "0" ? stage === "0" ? "" : ` (${stageMap[stage]}) ` : ` (${statusMap[status]}) `} - 创业板发行上市审核信息公开网站 - 深圳证券交易所`, link: `${rootUrl}/projectdynamic/${type}/index.html`, item: items }; } //#endregion export { route };