UNPKG

rsshub

Version:
508 lines (482 loc) 17.5 kB
import "./esm-shims-CzJ_djXG.mjs"; import "./config-C37vj7VH.mjs"; import { t as ViewType } from "./types-D84BRIt4.mjs"; import "./dist-BInvbO1W.mjs"; import "./logger-Czu8UMNd.mjs"; import { t as ofetch_default } from "./ofetch-BIyrKU3Y.mjs"; import { t as parseDate } from "./parse-date-BrP7mxXf.mjs"; import { t as cache_default } from "./cache-Bo__VnGm.mjs"; import { load } from "cheerio"; //#region lib/routes/cnljxh/index.ts const handler = async (ctx) => { const { category = "news", id = "10" } = ctx.req.param(); const limit = Number.parseInt(ctx.req.query("limit") ?? "20", 10); const baseUrl = "https://www.cnljxh.org.cn"; const targetUrl = new URL(`${category}/?classid=${id}`, baseUrl).href; const $ = load(await ofetch_default(targetUrl)); const language = $("html").attr("lang") ?? "zh"; let items = []; items = $("div.main_left ul li").slice(0, limit).toArray().map((el) => { const $el = $(el); const $aEl = $el.find("a"); const title = $aEl.text(); const pubDateStr = $el.find("span").text(); const linkUrl = $aEl.attr("href"); const upDatedStr = pubDateStr; return { title, pubDate: pubDateStr ? parseDate(pubDateStr) : void 0, link: linkUrl ? new URL(linkUrl, baseUrl).href : void 0, updated: upDatedStr ? parseDate(upDatedStr) : void 0, language }; }); items = await Promise.all(items.map((item) => { if (!item.link) return item; return cache_default.tryGet(item.link, async () => { const $$ = load(await ofetch_default(item.link)); const title = $$("div.content_title h2").text(); const description = $$("div.content_div").html() ?? ""; let processedItem = { title, description, author: $$("div.content_title p").text().split(/\s/)[0]?.split(/:/).pop(), content: { html: description, text: description }, language }; const enclosureUrl = $$("div.content_div embed").first().attr("src"); if (enclosureUrl) processedItem = { ...processedItem, enclosure_url: new URL(enclosureUrl, targetUrl).href, enclosure_type: `application/${enclosureUrl.split(/\./).pop()}`, enclosure_title: title }; return { ...item, ...processedItem }; }); })); return { title: `${$("title").text()}${$("div.mianbao").contents().last().text()}`, description: $("meta[name=\"description\"]").attr("content"), link: targetUrl, item: items, allowEmpty: true, image: $("div.logo a img").attr("src") ? new URL($("div.logo a img").attr("src"), targetUrl).href : void 0, author: $("meta[name=\"keywords\"]").attr("content"), language, id: targetUrl }; }; const route = { path: "/:category?/:id?", name: "栏目", url: "www.cnljxh.org.cn", maintainers: ["nczitzk"], handler, example: "/cnljxh/news/10", parameters: { category: { description: "分类,默认为 `news`,即行业新闻,可在对应分类页 URL 中找到", options: [ { label: "行业新闻", value: "news" }, { label: "市场价格", value: "price" }, { label: "分析数据", value: "info" }, { label: "价格指数", value: "date" } ] }, id: { description: "分类,默认为 `10`,即协会公告,可在对应分类页 URL 中找到", options: [ { label: "协会专区 - 协会简介", value: "24" }, { label: "协会专区 - 协会章程", value: "25" }, { label: "协会专区 - 协会领导", value: "26" }, { label: "协会专区 - 入会程序", value: "27" }, { label: "协会专区 - 组织机构", value: "28" }, { label: "协会专区 - 理事会员", value: "29" }, { label: "协会专区 - 监事会", value: "32" }, { label: "协会专区 - 专家委员会", value: "30" }, { label: "协会公告", value: "10" }, { label: "行业新闻 - 协会动态", value: "8" }, { label: "行业新闻 - 企业动态", value: "9" }, { label: "行业新闻 - 行业动态", value: "11" }, { label: "政策法规 - 政策法规", value: "12" }, { label: "行业标准 - 国家标准", value: "13" }, { label: "行业标准 - 行业标准", value: "14" }, { label: "行业标准 - 团体标准", value: "15" }, { label: "减污降碳 - 超低排放", value: "33" }, { label: "减污降碳 - 技术广角", value: "16" }, { label: "市场价格 - 价格行情", value: "299" }, { label: "市场价格 - 双焦运费", value: "2143" }, { label: "市场价格 - 价格汇总", value: "10039" }, { label: "分析数据 - 市场分析", value: "575" }, { label: "分析数据 - 一周评述", value: "5573" }, { label: "分析数据 - 核心数据", value: "5417" }, { label: "价格指数 - 焦炭指数(MyCpic)", value: "5575" }, { label: "价格指数 - 炼焦煤指数(MyCpic)", value: "5907" }, { label: "价格指数 - 山西焦炭价格指数(SCSPI)", value: "34" }, { label: "价格指数 - 中价·新华焦煤价格指数(CCP)", value: "35" }, { label: "市场信息 - 汾渭", value: "19" }, { label: "市场信息 - 化工宝", value: "20" }, { label: "市场信息 - 百川", value: "21" }, { label: "市场信息 - 焦化市场信息", value: "22" }, { label: "市场信息 - 中国焦化信息", value: "31" } ] } }, description: `:::tip 订阅 [协会公告](https://www.cnljxh.org.cn/news/?classid=10),其源网址为 \`https://www.cnljxh.org.cn/news/?classid=10\`,请参考该 URL 指定部分构成参数,此时路由为 [\`/cnljxh/news/10\`](https://rsshub.app/cnljxh/news/10)。 订阅 [价格行情](https://www.cnljxh.org.cn/price/?classid=299),其源网址为 \`https://www.cnljxh.org.cn/price/?classid=299\`,请参考该 URL 指定部分构成参数,此时路由为 [\`/cnljxh/price/299\`](https://rsshub.app/cnljxh/price/299)。 ::: <details> <summary>更多分类</summary> #### 协会专区 | [协会简介](https://www.cnljxh.org.cn/news/?classid=24) | [协会章程](https://www.cnljxh.org.cn/news/?classid=25) | [协会领导](https://www.cnljxh.org.cn/news/?classid=26) | [入会程序](https://www.cnljxh.org.cn/news/?classid=27) | [组织机构](https://www.cnljxh.org.cn/news/?classid=28) | | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | | [24](https://rsshub.app/cnljxh/news/24) | [25](https://rsshub.app/cnljxh/news/25) | [26](https://rsshub.app/cnljxh/news/26) | [27](https://rsshub.app/cnljxh/news/27) | [28](https://rsshub.app/cnljxh/news/28) | | [理事会员](https://www.cnljxh.org.cn/news/?classid=29) | [监事会](https://www.cnljxh.org.cn/news/?classid=32) | [专家委员会](https://www.cnljxh.org.cn/news/?classid=30) | | ------------------------------------------------------ | ---------------------------------------------------- | -------------------------------------------------------- | | [29](https://rsshub.app/cnljxh/news/29) | [32](https://rsshub.app/cnljxh/news/32) | [30](https://rsshub.app/cnljxh/news/30) | #### 协会公告 | [协会公告](https://www.cnljxh.org.cn/news/?classid=10) | | ------------------------------------------------------ | | [10](https://rsshub.app/cnljxh/news/10) | #### 行业新闻 | [协会动态](https://www.cnljxh.org.cn/news/?classid=8) | [企业动态](https://www.cnljxh.org.cn/news/?classid=9) | [行业动态](https://www.cnljxh.org.cn/news/?classid=11) | | ----------------------------------------------------- | ----------------------------------------------------- | ------------------------------------------------------ | | [8](https://rsshub.app/cnljxh/news/8) | [9](https://rsshub.app/cnljxh/news/9) | [11](https://rsshub.app/cnljxh/news/11) | #### 政策法规 | [政策法规](https://www.cnljxh.org.cn/news/?classid=12) | | ------------------------------------------------------ | | [12](https://rsshub.app/cnljxh/news/12) | #### 行业标准 | [国家标准](https://www.cnljxh.org.cn/news/?classid=13) | [行业标准](https://www.cnljxh.org.cn/news/?classid=14) | [团体标准](https://www.cnljxh.org.cn/news/?classid=15) | | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | | [13](https://rsshub.app/cnljxh/news/13) | [14](https://rsshub.app/cnljxh/news/14) | [15](https://rsshub.app/cnljxh/news/15) | #### 减污降碳 | [超低排放](https://www.cnljxh.org.cn/news/indexdp.php?classid=33) | [技术广角](https://www.cnljxh.org.cn/news/?classid=16) | | ----------------------------------------------------------------- | ------------------------------------------------------ | | [33](https://rsshub.app/cnljxh/news/33) | [16](https://rsshub.app/cnljxh/news/16) | #### 市场价格 | [价格行情](https://www.cnljxh.org.cn/price/?classid=299) | [双焦运费](https://www.cnljxh.org.cn/price/?classid=2143) | [价格汇总](https://www.cnljxh.org.cn/collect/?classid=10039) | | -------------------------------------------------------- | --------------------------------------------------------- | ------------------------------------------------------------ | | [299](https://rsshub.app/cnljxh/price/299) | [2143](https://rsshub.app/cnljxh/price/2143) | [10039](https://rsshub.app/cnljxh/price/10039) | #### 分析数据 | [市场分析](https://www.cnljxh.org.cn/info/?classid=575) | [一周评述](https://www.cnljxh.org.cn/info/?classid=5573) | [核心数据](https://www.cnljxh.org.cn/info/?classid=5417) | | ------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | | [575](https://rsshub.app/cnljxh/info/575) | [5573](https://rsshub.app/cnljxh/info/5573) | [5417](https://rsshub.app/cnljxh/info/5417) | #### 价格指数 | [焦炭指数(MyCpic)](https://www.cnljxh.org.cn/date/?classid=5575) | [炼焦煤指数(MyCpic)](https://www.cnljxh.org.cn/date/?classid=5907) | [山西焦炭价格指数(SCSPI)](https://www.cnljxh.org.cn/news/index.php?classid=34) | [中价·新华焦煤价格指数(CCP)](https://www.cnljxh.org.cn/news/index.php?classid=35) | | ---------------------------------------------------------------- | ------------------------------------------------------------------ | -------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | | [5575](https://rsshub.app/cnljxh/date/5575) | [5907](https://rsshub.app/cnljxh/date/5907) | [34](https://rsshub.app/cnljxh/news/34) | [35](https://rsshub.app/cnljxh/news/35) | #### 市场信息 | [汾渭](https://www.cnljxh.org.cn/news/?classid=19) | [化工宝](https://www.cnljxh.org.cn/news/?classid=20) | [百川](https://www.cnljxh.org.cn/news/?classid=21) | [焦化市场信息](https://www.cnljxh.org.cn/news/?classid=22) | [中国焦化信息](https://www.cnljxh.org.cn/news/?classid=31) | | -------------------------------------------------- | ---------------------------------------------------- | -------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | | [19](https://rsshub.app/cnljxh/news/19) | [20](https://rsshub.app/cnljxh/news/20) | [21](https://rsshub.app/cnljxh/news/21) | [22](https://rsshub.app/cnljxh/news/22) | [31](https://rsshub.app/cnljxh/news/31) | </details> `, categories: ["new-media"], features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportRadar: true, supportBT: false, supportPodcast: false, supportScihub: false }, radar: [ { source: ["www.cnljxh.org.cn/:category"], target: (params, url) => { const urlObj = new URL(url); const category = params.category; const id = urlObj.searchParams.get("classid") ?? void 0; return `/cnljxh${category ? `/${category}${id ? `/${id}` : ""}` : ""}`; } }, { title: "协会专区 - 协会简介", source: ["www.cnljxh.org.cn/news/?classid=24"], target: "/news/24" }, { title: "协会专区 - 协会章程", source: ["www.cnljxh.org.cn/news/?classid=25"], target: "/news/25" }, { title: "协会专区 - 协会领导", source: ["www.cnljxh.org.cn/news/?classid=26"], target: "/news/26" }, { title: "协会专区 - 入会程序", source: ["www.cnljxh.org.cn/news/?classid=27"], target: "/news/27" }, { title: "协会专区 - 组织机构", source: ["www.cnljxh.org.cn/news/?classid=28"], target: "/news/28" }, { title: "协会专区 - 理事会员", source: ["www.cnljxh.org.cn/news/?classid=29"], target: "/news/29" }, { title: "协会专区 - 监事会", source: ["www.cnljxh.org.cn/news/?classid=32"], target: "/news/32" }, { title: "协会专区 - 专家委员会", source: ["www.cnljxh.org.cn/news/?classid=30"], target: "/news/30" }, { title: "协会公告", source: ["www.cnljxh.org.cn/news/?classid=10"], target: "/news/10" }, { title: "行业新闻 - 协会动态", source: ["www.cnljxh.org.cn/news/?classid=8"], target: "/news/8" }, { title: "行业新闻 - 企业动态", source: ["www.cnljxh.org.cn/news/?classid=9"], target: "/news/9" }, { title: "行业新闻 - 行业动态", source: ["www.cnljxh.org.cn/news/?classid=11"], target: "/news/11" }, { title: "政策法规", source: ["www.cnljxh.org.cn/news/?classid=12"], target: "/news/12" }, { title: "行业标准 - 国家标准", source: ["www.cnljxh.org.cn/news/?classid=13"], target: "/news/13" }, { title: "行业标准 - 行业标准", source: ["www.cnljxh.org.cn/news/?classid=14"], target: "/news/14" }, { title: "行业标准 - 团体标准", source: ["www.cnljxh.org.cn/news/?classid=15"], target: "/news/15" }, { title: "减污降碳 - 超低排放", source: ["www.cnljxh.org.cn/news/indexdp.php?classid=33"], target: "/news/33" }, { title: "减污降碳 - 技术广角", source: ["www.cnljxh.org.cn/news/?classid=16"], target: "/news/16" }, { title: "市场价格 - 价格行情", source: ["www.cnljxh.org.cn/price/?classid=299"], target: "/price/299" }, { title: "市场价格 - 双焦运费", source: ["www.cnljxh.org.cn/price/?classid=2143"], target: "/price/2143" }, { title: "市场价格 - 价格汇总", source: ["www.cnljxh.org.cn/collect/?classid=10039"], target: "/price/10039" }, { title: "分析数据 - 市场分析", source: ["www.cnljxh.org.cn/info/?classid=575"], target: "/info/575" }, { title: "分析数据 - 一周评述", source: ["www.cnljxh.org.cn/info/?classid=5573"], target: "/info/5573" }, { title: "分析数据 - 核心数据", source: ["www.cnljxh.org.cn/info/?classid=5417"], target: "/info/5417" }, { title: "价格指数 - 焦炭指数(MyCpic)", source: ["www.cnljxh.org.cn/date/?classid=5575"], target: "/date/5575" }, { title: "价格指数 - 炼焦煤指数(MyCpic)", source: ["www.cnljxh.org.cn/date/?classid=5907"], target: "/date/5907" }, { title: "价格指数 - 山西焦炭价格指数(SCSPI)", source: ["www.cnljxh.org.cn/news/index.php?classid=34"], target: "/news/34" }, { title: "价格指数 - 中价·新华焦煤价格指数(CCP)", source: ["www.cnljxh.org.cn/news/index.php?classid=35"], target: "/news/35" }, { title: "市场信息 - 汾渭", source: ["www.cnljxh.org.cn/news/?classid=19"], target: "/news/19" }, { title: "市场信息 - 化工宝", source: ["www.cnljxh.org.cn/news/?classid=20"], target: "/news/20" }, { title: "市场信息 - 百川", source: ["www.cnljxh.org.cn/news/?classid=21"], target: "/news/21" }, { title: "市场信息 - 焦化市场信息", source: ["www.cnljxh.org.cn/news/?classid=22"], target: "/news/22" }, { title: "市场信息 - 中国焦化信息", source: ["www.cnljxh.org.cn/news/?classid=31"], target: "/news/31" } ], view: ViewType.Articles }; //#endregion export { handler, route };