UNPKG

rsshub

Version:
195 lines (190 loc) 10.9 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 "./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"; //#region lib/routes/gov/samr/xgzlyhd.ts init_esm_shims(); const rootUrl = "https://xgzlyhd.samr.gov.cn"; const apiUrl = new URL("gjjly/message/getMessageList", rootUrl).href; const apiDataUrl = new URL("gjjly/message/getDataList", rootUrl).href; const currentUrl = new URL("gjjly/index", rootUrl).href; const types = { category: "1", department: "2" }; const fetchOptions = async (type) => { const { data: response } = await got_default.post(apiDataUrl, { json: { type: types[type] } }); return response.data; }; const getOption = async (type, name) => { const results = (await fetchOptions(type)).filter((o) => o.name === name || o.code === name); if (results.length > 0) return results.pop(); }; const route = { path: "/samr/xgzlyhd/:category?/:department?", categories: ["government"], example: "/gov/samr/xgzlyhd", parameters: { category: "留言类型,见下表,默认为全部", department: "回复部门,见下表,默认为全部" }, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, radar: [{ source: ["xgzlyhd.samr.gov.cn/gjjly/index"] }], name: "留言咨询", maintainers: ["nczitzk"], handler, url: "xgzlyhd.samr.gov.cn/gjjly/index", description: `#### 留言类型 | 类型 | 类型 id | | ------------------------------------------ | -------------------------------- | | 反腐倡廉 | 14101a4192df48b592b5cfd77a26c0cf | | 规划统计 | b807cf9cdf434635ae908d48757e0f39 | | 行政执法和复议 | 8af2530e77154d7b939428667b7413f6 | | 假冒仿冒行为 | 75374a34b95341829e08e54d4a0d8c04 | | 走私贩私 | 84c728530e1e478e94fe3f0030171c53 | | 登记注册 | 07fff64612dc41aca871c06587abf71d | | 个体工商户登记 | ca8f91ba9a2347a0acd57ea5fd12a5c8 | | 信用信息公示系统 | 1698886c3cdb495998d5ea9285a487f5 | | 市场主体垄断 | 77bfe965843844449c47d29f2feb7999 | | 反不正当竞争 | 2c919b1dc39440d8850c4f6c405869f8 | | 商业贿赂 | b494e6535af149c5a51fd4197993f061 | | 打击传销与规范直销 | 407a1404844e48558da46139f16d6232 | | 消费环境建设 | 94c2003331dd4c5fa19b0cf88d720676 | | 网络交易监管 | 6302aac5b87140598da53f85c1ccb8fa | | 动产抵押登记 | 3856de5835444229943b18cac7781e9f | | 广告监管 | d0e38171042048c2bf31b05c5e57aa68 | | 三包 | c4dbd85692604a428b1ea7613e67beb8 | | 缺陷产品召回 | f93c9a6b81e941d09a547406370e1c0c | | 工业生产许可 | 2b41afaabaa24325b53a5bd7deba895b | | 产品质量监督抽查 | 4388504cb0c04e988e2cf0c90d4a3f14 | | 食品安全协调 | 3127b9f409c24d0eaa60b13c25f819fa | | 食品生产监管 | beaa5555d1364e5bb2a0f0a7cc9720e5 | | 食品销售、餐饮服务、食用农产品销售监管 | 3b6c49c6ce934e1b9505601a3b881a6a | | 保健、特殊医学用途配方和婴幼儿配方乳粉监管 | 13b43888f8554e078b1dfa475e2aaab0 | | 食品监督抽检、召回 | 0eb6c75581bf41ecaedc629370cb425c | | 食品安全标准 | 399cfd9abfa34c22a5cb3bb971a43819 | | 特种设备人员、机构管理 | e5d0e51cc7d0412790efac605008bf20 | | 特种设备检验 | 03f22fb3d4cd4f09b632079359e9dd7d | | 计量器具 | 90b25e22861446d5822e07c7c1f5169a | | 计量机构和人员管理 | 76202742f06c459da7482160e0ce17ad | | 国家标准 | 299b9672e1c246e69485a5b695f42c5b | | 行业、地方、团体、企业标准 | cbdc804c9b2c4e259a159c32eccf4ca9 | | 认证监督管理 | 41259262a42e4de49b5c0b7362ac3796 | | 认可与检验检测 | cb3c9d1e3d364f2a8b1cd70efa69d1cb | | 新闻宣传 | e3e553e4019c46ccbdc06136900138e9 | | 科技财务 | 47367b9704964355ba52899a4c5abbb0 | | 干部人事 | 6b978e3c127c489ea8e2d693b768887e | | 国际合作 | dd5ce768e33e435ab4bfb769ab6e079a | | 党群工作 | aa71052978af4304937eb382f24f9902 | | 退休干部 | 44505fc58c81428eb5cef15706007b5e | | 虚假宣传 | 5bb2b83ecadb4bf89a779cee414a81dd | | 滥用行政权力 | 1215206156dc48029b98da825f26fcbc | | 公平竞争 | 9880a23dcbb04deba2cc7b4404e13ff6 | | 滥用市场支配地位 | fea04f0acd84486e84cf71d9c13005b0 | | 数字经济领域反垄断执法 | 4bea424a6e4c4e2aac19fe3c73f9be23 | | 并购行为 | 90e315647acd415ca68f97fc1b42053d | | 经营者集中案件 | d6571d2cd5624bc18191b342a2e8defb | | 数字经济领域反垄断审查 | 03501ef176ef44fba1c7c70da44ba8a0 | | 综合执法 | cfbb1b5dade446299670ca38844b265e | | 信用监管 | a9d76ea04a3a4433946bc02b0bdb77eb | | 3C 认证 | 111decc7b14a4fdbae86fb4a3ba5c0c1 | | 食用农产品 | 3159db51f8ca4f23a9340d87d5572d40 | | 食品添加 | 4e4b0e0152334cbb9c62fd1b80138305 | #### 回复部门 | 部门 | 部门 id | | ---------------------------- | -------------------------------- | | 办公厅 | 6ed539b270634667afc4d466b67a53f7 | | 法规司 | 8625ec7ff8d744ad80a1d1a2bf19cf19 | | 执法稽查局 | 313a8cb1c09042dea52be52cb392c557 | | 登记注册局 | e4553350549f45f38da5602147cf8639 | | 信用监督管理司 | 6af98157255a4a858eac5f94ba8d98f4 | | 竞争政策协调司 | 8d2266be4791483297822e1aa5fc0a96 | | 综合规划司 | 958e1619159c45a7b76663a59d9052ea | | 反垄断执法一司 | f9fb3f6225964c71ab82224a91f21b2c | | 反垄断执法二司 | 7986c79e4f16403493d5b480aec30be4 | | 价格监督检查和反不正当竞争局 | c5d2b1b273b545cfbc6f874f670654ab | | 网络交易监督管理司 | 6ac05b4dbd4e41c69f4529262540459b | | 广告监督管理司 | 96457dfe16c54840885b79b4e6e17523 | | 质量发展局 | cb8d2b16fbb540dca296aa33a43fc573 | | 质量监督司 | af2c4e0a54c04f76b512c29ddd075d40 | | 食品安全协调司 | cc29962c74e84ef2b21e44336da6c6c5 | | 食品生产安全监督管理司 | b334db85a253458285db70b30ee26b0a | | 食品经营安全监督管理司 | 4315f0261a5d49f7bdcc5a7524e19ce3 | | 特殊食品安全监督管理司 | 62d14f386317486ca94bc53ca7f88891 | | 食品安全抽检监测司 | abfc910832cc460a81876ad418618159 | | 特种设备安全监察局 | ea79f90bec5840ef9b0881c83682225a | | 计量司 | b0556236fbcf4f45b6fdec8004dac3e4 | | 标准技术管理司 | a558d07a51f4454fa59290e0d6e93c26 | | 标准创新管理司 | ffb3a80984b344ed8d168f4af6508af0 | | 认证监督管理司 | ca4987393d514debb4d1e2126f576987 | | 认可与检验检测监督管理司 | 796bfab21b15498e88c9032fe3e3c9f1 | | 新闻宣传司 | 884fc0ea6c184ad58dda10e2170a1eda | | 科技和财务司 | 117355eea94c426199e2e519fd98ce07 | | 人事司 | a341e8b7929e44769b9424b7cf69d32a | | 国际司 | f784499ef24541f5b20de4c24cfc61e7 | | 机关党委 | a49119c6f40045dd994f3910500cedfa | | 离退办 | 6bf265ffd1c94fa4a3f1687b03fa908b |` }; async function handler(ctx) { const { category, department } = ctx.req.param(); const limit = ctx.req.query("limit") ? Number.parseInt(ctx.req.query("limit"), 10) : 10; let categoryOption; let departmentOption; if (category) categoryOption = await getOption("category", category); if (department) departmentOption = await getOption("department", department); const { data: response } = await got_default.post(apiUrl, { json: { clyj: "", curPage: "1", endTime: "", fzsj: departmentOption?.code ?? "", lybt: void 0, lylx: categoryOption?.code ?? "", lynr: "", startTime: "", zj: "" } }); const items = response.data.data.slice(0, limit).map((item) => ({ title: item.lybt, link: `${currentUrl}#${item.zj}`, description: art(path.join(__dirname, "templates/description-5c2bbb00.art"), { item }), author: `${item.lyr}${item.fzsjCn}`, category: [item.fzsjCn], guid: `${currentUrl}#${item.zj}`, pubDate: parseDate(item.pubtime) })); const { data: currentResponse } = await got_default(currentUrl); const $ = load(currentResponse); const author = "国家市场监督管理总局"; const title = $("title").text(); const subtitle = [categoryOption ? categoryOption.name : void 0, departmentOption ? departmentOption.name : void 0].filter(Boolean).join(" - "); const icon = new URL($("link[rel=\"icon\"]").prop("href"), rootUrl).href; return { item: items, title: `${author}${title}${subtitle ? ` - ${subtitle}` : ""}`, link: currentUrl, description: $("meta[property=\"og:description\"]").prop("content"), language: "zh", image: new URL(`gjjly/${$("div.fd-logo img").prop("src")}`, rootUrl).href, icon, logo: icon, subtitle, author, allowEmpty: true }; } //#endregion export { route };