rsshub
Version:
Make RSS Great Again!
263 lines (248 loc) • 13.3 kB
JavaScript
import { t as parseDate } from "./parse-date-Cr0wQjV_.mjs";
import { t as cache_default } from "./cache-BkqOokyU.mjs";
import { t as got_default } from "./got-BTowW50G.mjs";
import { t as timezone } from "./timezone-BBvDwS_3.mjs";
import { load } from "cheerio";
//#region lib/routes/gov/lswz/index.ts
const handler = async (ctx) => {
const { category = "html/xinwen/index" } = ctx.req.param();
const limit = ctx.req.query("limit") ? Number(ctx.req.query("limit")) : 25;
const rootUrl = "https://www.lswz.gov.cn";
const currentUrl = new URL(`${category}.shtml`, rootUrl).href;
const { data: response } = await got_default(currentUrl);
const $ = load(response);
const language = $("html").prop("lang");
let items = $("ul.lists li").slice(0, limit).toArray().map((item) => {
const $item = $(item);
return {
title: $item.find("a").text(),
pubDate: parseDate($item.find("span").text()),
link: new URL($item.find("a").prop("href"), rootUrl).href
};
});
items = await Promise.all(items.map((item) => cache_default.tryGet(item.link, async () => {
const { data: detailResponse } = await got_default(item.link);
const $$ = load(detailResponse);
$$("ul.lists").remove();
$$("div.pub-right-source, div.detail_links_pane").remove();
const title = $$("meta[name=\"ArticleTitle\"]").prop("content") || $$("div.pub-det-title").text();
const description = $$("table.pages_content, div.article-content, div.TRS_UEDITOR, div.TRS_PreAppend").html();
const pubDate = $$("meta[name=\"PubDate\"]").prop("content");
item.title = title || item.title;
item.description = description;
item.pubDate = pubDate ? timezone(parseDate(pubDate), 8) : item.pubDate;
item.author = $$("meta[name=\"ContentSource\"]").prop("content")?.trim() ?? void 0;
item.content = {
html: description,
text: $$("table.pages_content, div.article-content, div.TRS_UEDITOR, div.TRS_PreAppend").text()
};
item.language = language;
return item;
})));
const image = new URL($("div.lsj-index-logo img").prop("src"), rootUrl).href;
return {
title: $("title").text(),
description: $("meta[name=\"ColumnDescription\"]").prop("content"),
link: currentUrl,
item: items,
allowEmpty: true,
image,
author: $("meta[name=\"SiteName\"]").prop("content"),
language
};
};
const route = {
path: "/:category{.+}?",
name: "通用",
url: "lswz.gov.cn",
maintainers: ["nczitzk"],
handler,
example: "/gov/lswz",
parameters: { category: "分类,默认为 `html/xinwen/index`,可在对应分类页 URL 中找到" },
description: `::: tip
若订阅 [新闻发布](https://www.lswz.gov.cn/html/xinwen/index.shtml),网址为 \`https://www.lswz.gov.cn/html/xinwen/index.shtml\`。截取 \`https://www.lswz.gov.cn/\` 到末尾 \`.shtml\` 的部分 \`html/xinwen/index\` 作为参数填入,此时路由为 [\`/gov/lswz/html/xinwen/index\`](https://rsshub.app/gov/lswz/html/xinwen/index)。
:::
| [新闻发布](https://www.lswz.gov.cn/html/xinwen/index.shtml) | [党建工作](https://www.lswz.gov.cn/html/djgz/index.shtml) |
| ------------------------------------------------------------------ | -------------------------------------------------------------- |
| [html/xinwen/index](https://rsshub.app/gov/lswz/html/xinwen/index) | [html/djgz/index](https://rsshub.app/gov/lswz/html/djgz/index) |
| [粮食交易](https://www.lswz.gov.cn/html/zmhd/lysj/lsjy.shtml) | [粮食质量](https://www.lswz.gov.cn/html/zmhd/lysj/lszl.shtml) |
| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| [html/zmhd/lysj/lsjy](https://rsshub.app/gov/lswz/html/zmhd/lysj/lsjy) | [html/zmhd/lysj/lszl](https://rsshub.app/gov/lswz/html/zmhd/lysj/lszl) |
#### [业务频道](https://www.lswz.gov.cn/html/ywpd/index.shtml)
| [粮食调控](https://www.lswz.gov.cn/html/ywpd/lstk/index.shtml) | [物资储备](https://www.lswz.gov.cn/html/ywpd/wzcb/index.shtml) | [能源储备](https://www.lswz.gov.cn/html/ywpd/nycb/index.shtml) | [安全应急](https://www.lswz.gov.cn/html/ywpd/aqyj/index.shtml) | [法规体改](https://www.lswz.gov.cn/html/ywpd/fgtg/index.shtml) |
| ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ |
| [html/ywpd/lstk/index](https://rsshub.app/gov/lswz/html/ywpd/lstk/index) | [html/ywpd/wzcb/index](https://rsshub.app/gov/lswz/html/ywpd/wzcb/index) | [html/ywpd/nycb/index](https://rsshub.app/gov/lswz/html/ywpd/nycb/index) | [html/ywpd/aqyj/index](https://rsshub.app/gov/lswz/html/ywpd/aqyj/index) | [html/ywpd/fgtg/index](https://rsshub.app/gov/lswz/html/ywpd/fgtg/index) |
| [规划建设](https://www.lswz.gov.cn/html/ywpd/gjks/index.shtml) | [财务审计](https://www.lswz.gov.cn/html/ywpd/cwsj/index.shtml) | [仓储科技](https://www.lswz.gov.cn/html/ywpd/cckj/index.shtml) | [执法督查](https://www.lswz.gov.cn/html/ywpd/zfdc/index.shtml) | [国际交流](https://www.lswz.gov.cn/html/ywpd/gjjl/index.shtml) |
| ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ |
| [html/ywpd/gjks/index](https://rsshub.app/gov/lswz/html/ywpd/gjks/index) | [html/ywpd/cwsj/index](https://rsshub.app/gov/lswz/html/ywpd/cwsj/index) | [html/ywpd/cckj/index](https://rsshub.app/gov/lswz/html/ywpd/cckj/index) | [html/ywpd/zfdc/index](https://rsshub.app/gov/lswz/html/ywpd/zfdc/index) | [html/ywpd/gjjl/index](https://rsshub.app/gov/lswz/html/ywpd/gjjl/index) |
| [人事人才](https://www.lswz.gov.cn/html/ywpd/rsrc/index.shtml) | [标准质量](https://www.lswz.gov.cn/html/ywpd/bzzl/index.shtml) | [粮食和储备研究](https://www.lswz.gov.cn/html/ywpd/lshcbyj/index.shtml) |
| ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------------ |
| [html/ywpd/rsrc/index](https://rsshub.app/gov/lswz/html/ywpd/rsrc/index) | [html/ywpd/bzzl/index](https://rsshub.app/gov/lswz/html/ywpd/bzzl/index) | [html/ywpd/lshcbyj/index](https://rsshub.app/gov/lswz/html/ywpd/lshcbyj/index) |
#### [政策发布](https://www.lswz.gov.cn/html/zcfb/index.shtml)
| [文件](https://www.lswz.gov.cn/html/zcfb/wenjian.shtml) | [法律法规](https://www.lswz.gov.cn/html/zcfb/fggz-fg.shtml) | [规章](https://www.lswz.gov.cn/html/zcfb/fggz-gz.shtml) |
| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| [html/zcfb/wenjian](https://rsshub.app/gov/lswz/html/zcfb/wenjian) | [html/zcfb/fggz-fg](https://rsshub.app/gov/lswz/html/zcfb/fggz-fg) | [html/zcfb/fggz-gz](https://rsshub.app/gov/lswz/html/zcfb/fggz-gz) |
#### [通知公告](https://www.lswz.gov.cn/html/tzgg/index.shtml)
| [行政通知](https://www.lswz.gov.cn/html/tzgg/xztz.shtml) | [公告通告](https://www.lswz.gov.cn/html/tzgg/ggtg.shtml) |
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| [html/tzgg/xztz](https://rsshub.app/gov/lswz/html/tzgg/xztz) | [html/tzgg/ggtg](https://rsshub.app/gov/lswz/html/tzgg/ggtg) |
#### [粮食收购](https://www.lswz.gov.cn/html/zmhd/lysj/lssg-szym.shtml)
| [收购数据](https://www.lswz.gov.cn/html/zmhd/lysj/lssg-szym.shtml) | [政策・解读](https://www.lswz.gov.cn/html/zmhd/lysj/lssg-gzdt.shtml) |
| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| [html/zmhd/lysj/lssg-szym](https://rsshub.app/gov/lswz/html/zmhd/lysj/lssg-szym) | [html/zmhd/lysj/lssg-gzdt](https://rsshub.app/gov/lswz/html/zmhd/lysj/lssg-gzdt) |
#### [粮食价格](https://www.lswz.gov.cn/html/zmhd/lysj/lsjg-scjc.shtml)
| [市场监测](https://www.lswz.gov.cn/html/zmhd/lysj/lsjg-scjc.shtml) | [市场价格](https://www.lswz.gov.cn/html/zmhd/lysj/lsjg-scjg.shtml) |
| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| [html/zmhd/lysj/lsjg-scjc](https://rsshub.app/gov/lswz/html/zmhd/lysj/lsjg-scjc) | [html/zmhd/lysj/lsjg-scjg](https://rsshub.app/gov/lswz/html/zmhd/lysj/lsjg-scjg) |`,
categories: ["government"],
features: {
requireConfig: false,
requirePuppeteer: false,
antiCrawler: false,
supportRadar: true,
supportBT: false,
supportPodcast: false,
supportScihub: false
},
radar: [
{
source: ["www.lswz.gov.cn/:category?"],
target: (params) => {
const category = params.category;
return `/gov/lswz${category ? `/${category}` : ""}`;
}
},
{
title: "新闻发布",
source: ["www.lswz.gov.cn/html/xinwen/index.shtml"],
target: "/html/xinwen/index"
},
{
title: "党建工作",
source: ["www.lswz.gov.cn/html/djgz/index.shtml"],
target: "/html/djgz/index"
},
{
title: "业务频道 - 粮食调控",
source: ["www.lswz.gov.cn/html/ywpd/lstk/index.shtml"],
target: "/html/ywpd/lstk/index"
},
{
title: "业务频道 - 物资储备",
source: ["www.lswz.gov.cn/html/ywpd/wzcb/index.shtml"],
target: "/html/ywpd/wzcb/index"
},
{
title: "业务频道 - 能源储备",
source: ["www.lswz.gov.cn/html/ywpd/nycb/index.shtml"],
target: "/html/ywpd/nycb/index"
},
{
title: "业务频道 - 安全应急",
source: ["www.lswz.gov.cn/html/ywpd/aqyj/index.shtml"],
target: "/html/ywpd/aqyj/index"
},
{
title: "业务频道 - 法规体改",
source: ["www.lswz.gov.cn/html/ywpd/fgtg/index.shtml"],
target: "/html/ywpd/fgtg/index"
},
{
title: "业务频道 - 规划建设",
source: ["www.lswz.gov.cn/html/ywpd/gjks/index.shtml"],
target: "/html/ywpd/gjks/index"
},
{
title: "业务频道 - 财务审计",
source: ["www.lswz.gov.cn/html/ywpd/cwsj/index.shtml"],
target: "/html/ywpd/cwsj/index"
},
{
title: "业务频道 - 仓储科技",
source: ["www.lswz.gov.cn/html/ywpd/cckj/index.shtml"],
target: "/html/ywpd/cckj/index"
},
{
title: "业务频道 - 执法督查",
source: ["www.lswz.gov.cn/html/ywpd/zfdc/index.shtml"],
target: "/html/ywpd/zfdc/index"
},
{
title: "业务频道 - 国际交流",
source: ["www.lswz.gov.cn/html/ywpd/gjjl/index.shtml"],
target: "/html/ywpd/gjjl/index"
},
{
title: "业务频道 - 人事人才",
source: ["www.lswz.gov.cn/html/ywpd/rsrc/index.shtml"],
target: "/html/ywpd/rsrc/index"
},
{
title: "业务频道 - 标准质量",
source: ["www.lswz.gov.cn/html/ywpd/bzzl/index.shtml"],
target: "/html/ywpd/bzzl/index"
},
{
title: "业务频道 - 粮食和储备研究",
source: ["www.lswz.gov.cn/html/ywpd/lshcbyj/index.shtml"],
target: "/html/ywpd/lshcbyj/index"
},
{
title: "政策发布 - 文件",
source: ["www.lswz.gov.cn/html/zcfb/wenjian.shtml"],
target: "/html/zcfb/wenjian"
},
{
title: "政策发布 - 法律法规",
source: ["www.lswz.gov.cn/html/zcfb/fggz-fg.shtml"],
target: "/html/zcfb/fggz-fg"
},
{
title: "政策发布 - 规章",
source: ["www.lswz.gov.cn/html/zcfb/fggz-gz.shtml"],
target: "/html/zcfb/fggz-gz"
},
{
title: "通知公告 - 行政通知",
source: ["www.lswz.gov.cn/html/tzgg/xztz.shtml"],
target: "/html/tzgg/xztz"
},
{
title: "通知公告 - 公告通告",
source: ["www.lswz.gov.cn/html/tzgg/ggtg.shtml"],
target: "/html/tzgg/ggtg"
},
{
title: "粮食收购 - 收购数据",
source: ["www.lswz.gov.cn/html/zmhd/lysj/lssg-szym.shtml"],
target: "/html/zmhd/lysj/lssg-szym"
},
{
title: "粮食收购 - 政策·解读",
source: ["www.lswz.gov.cn/html/zmhd/lysj/lssg-gzdt.shtml"],
target: "/html/zmhd/lysj/lssg-gzdt"
},
{
title: "粮食价格 - 市场监测",
source: ["www.lswz.gov.cn/html/zmhd/lysj/lsjg-scjc.shtml"],
target: "/html/zmhd/lysj/lsjg-scjc"
},
{
title: "粮食价格 - 市场价格",
source: ["www.lswz.gov.cn/html/zmhd/lysj/lsjg-scjg.shtml"],
target: "/html/zmhd/lysj/lsjg-scjg"
},
{
title: "粮食交易",
source: ["www.lswz.gov.cn/html/zmhd/lysj/lsjy.shtml"],
target: "/html/zmhd/lysj/lsjy"
},
{
title: "粮食质量",
source: ["www.lswz.gov.cn/html/zmhd/lysj/lszl.shtml"],
target: "/html/zmhd/lysj/lszl"
}
]
};
//#endregion
export { handler, route };