rsshub
Version:
Make RSS Great Again!
153 lines (152 loc) • 4.13 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 { jsx } from "hono/jsx/jsx-runtime";
import { load } from "cheerio";
import { renderToString } from "hono/jsx/dom/server";
import { raw } from "hono/html";
//#region lib/routes/gov/sichuan/deyang/mztoday.tsx
const rootUrl = "http://www.mztoday.gov.cn";
const basicInfoDict = {
zx: {
name: "最新",
url: "/news.html?page=1"
},
tj: {
name: "推荐",
url: "/list/42.html?page=1"
},
sz: {
name: "时政",
url: "/list/39.html?page=1"
},
jy: {
name: "教育",
url: "/list/40.html?page=1"
},
ms: {
name: "民生",
url: "/list/41.html?page=1"
},
wl: {
name: "文旅",
url: "/list/41.html?page=1"
},
jj: {
name: "经济",
url: "/list/53.html?page=1"
},
wwcj: {
name: "文明创建",
url: "/list/54.html?page=1"
},
bxsh: {
name: "文明创建",
url: "/list/55.html?page=1"
},
bm: {
name: "部门",
url: "/list/56.html?page=1"
},
zj: {
name: "镇(街道)",
url: "/list/57.html?page=1"
},
jkmz: {
name: "健康绵竹",
url: "/list/59.html?page=1"
},
nxjt: {
name: "南轩讲堂",
url: "/list/70.html?page=1"
},
sp: {
name: "视频",
url: "/vlist.html?page=1"
},
wmsj: {
name: "文明实践",
url: "/list/71.html?page=1"
},
lhzg: {
name: "领航中国",
url: "/list/74.html?page=1"
},
mznh: {
name: "绵竹年画",
url: "/list/36.html?page=1"
},
mzls: {
name: "绵竹历史",
url: "/list/16.html?page=1"
},
mzly: {
name: "绵竹旅游",
url: "/list/37.html?page=1"
},
wwkmz: {
name: "外媒看绵竹",
url: "/list/50.html?page=1"
}
};
const getInfoUrlList = async (url) => {
const $ = load((await got_default(url)).data);
return $("div.sl").toArray().map((item) => ({
title: $("a", item).attr("title"),
url: `${rootUrl}${$("a", item).attr("href")}`,
pubDate: timezone(parseDate($("div > div:nth-child(4)", item).html().trim()), 8)
}));
};
const getInfoContent = (item) => cache_default.tryGet(item.url, async () => {
const $ = load((await got_default(item.url)).data);
return {
title: item.title,
content: $("td:nth-child(2)").html(),
link: item.url,
pubDate: item.pubDate
};
});
const route = {
path: "/deyang/mztoday/:infoType?",
categories: ["government"],
example: "/gov/sichuan/deyang/mztoday/zx",
parameters: { infoType: "信息栏目名称。默认最新(zx)" },
features: {
requireConfig: false,
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,
supportPodcast: false,
supportScihub: false
},
radar: [{
source: ["www.mztoday.gov.cn/*"],
target: "/deyang/mztoday"
}],
name: "今日绵竹",
maintainers: ["zytomorrow"],
handler,
url: "www.mztoday.gov.cn/*",
description: `| 最新 | 推荐 | 时政 | 教育 | 民生 | 文旅 | 经济 | 文明创建 | 部门 | 镇(街道) | 健康绵竹 | 南轩讲堂 | 视频 | 文明实践 | 领航中国 | 绵竹年画 | 绵竹历史 | 绵竹旅游 | 外媒看绵竹 |
| ---- | ---- | ---- | ---- | ---- | ---- | ---- | -------- | ---- | ---------- | -------- | -------- | ---- | -------- | -------- | -------- | -------- | -------- | ---------- |
| zx | tj | sz | jy | ms | wl | jj | wmcj | bm | zj | jkmz | nxjt | sp | wmsj | lhzg | mznh | mzls | mzly | wmkmz |`
};
async function handler(ctx) {
const infoType = ctx.req.param("infoType") || "zx";
const infoBasicUrl = `${rootUrl}${basicInfoDict[infoType].url}`;
const infoUrlList = await getInfoUrlList(infoBasicUrl);
const items = await Promise.all(infoUrlList.map((item) => getInfoContent(item)));
return {
title: `今日绵竹-${basicInfoDict[infoType].name}`,
link: `${infoBasicUrl}1`,
item: items.map((item) => ({
title: item.title,
description: renderToString(/* @__PURE__ */ jsx("div", { children: item.content ? raw(item.content) : null })),
link: item.link,
pubDate: item.pubDate
}))
};
}
//#endregion
export { route };