UNPKG

rsshub

Version:
483 lines (478 loc) 15.5 kB
import { n as init_esm_shims, t as __dirname } from "./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 { t as art } from "./render-BQo6B4tL.mjs"; import path from "node:path"; import { load } from "cheerio"; //#region lib/routes/wdfxw/bookfree.ts init_esm_shims(); const handler = async (ctx) => { const { id } = ctx.req.param(); const limit = Number.parseInt(ctx.req.query("limit") ?? "30", 10); const targetUrl = new URL(`bookfree${id ? `-${id}` : ""}.html`, "https://www.wdfxw.net").href; const $ = load(await ofetch_default(targetUrl)); const language = $("meta[http-equiv=\"Content-Language\"]").attr("content") ?? "zh-cn"; let items = []; items = $("ul.camWholeBoxUl li").slice(0, limit).toArray().map((el) => { const $el = $(el); const $aEl = $el.find("div.camLiTitleC a"); const title = $aEl.attr("title") ?? $aEl.text(); const image = $el.find("div.img img").attr("data-original") ?? $el.find("div.img img").attr("src"); const description = art(path.join(__dirname, "templates/description-dd265222.art"), { images: image ? [{ src: image, alt: title }] : void 0 }); return { title, description, link: $aEl.attr("href"), content: { html: description, text: description }, image, banner: image, 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 = $$("h1").text(); const pubDateStr = $$("div.uhit li").filter((_, el) => $$(el).text().startsWith("上传时间")).text().split(/:/).pop(); const categories = [...new Set([...$$("div.nav_uis a").slice(1).toArray().map((el) => $$(el).text()), ...$$("meta[name=\"KeyWords\"]").attr("content")?.split(/,/) ?? []])]; const authors = $$("div.uhit li").filter((_, el) => $$(el).text().startsWith("上传人")).text().split(/:/).pop(); const upDatedStr = pubDateStr; const processedItem = { title, pubDate: pubDateStr ? parseDate(pubDateStr) : item.pubDate, category: categories, author: authors, updated: upDatedStr ? parseDate(upDatedStr) : item.updated, language }; return { ...item, ...processedItem }; }); })); return { title: $("title").text(), description: $("meta[name=\"description\"]").attr("content"), link: targetUrl, item: items, allowEmpty: true, image: $("div.xxxk_top img").attr("src"), author: $("div.xxxk_top img").attr("alt"), language, id: targetUrl }; }; const route = { path: "/bookfree/:id?", name: "免费区", url: "www.wdfxw.net", maintainers: ["nczitzk"], handler, example: "/wdfxw/bookfree", parameters: { category: { description: "分类,默认为空,即全部,可在对应分类页 URL 中找到", options: [ { label: "全部", value: "" }, { label: "行业标准", value: "00002" }, { label: "国家标准GB", value: "00001" }, { label: "国外标准", value: "00003" }, { label: "监理资料", value: "00004" }, { label: "施工组织设计", value: "00005" }, { label: "土木工程毕业设计论文", value: "00006" }, { label: "机械类毕业设计论文", value: "00007" }, { label: "小学课件教学资料", value: "00008" }, { label: "初中课件教学资料", value: "00009" }, { label: "高中课件教学资料", value: "00010" }, { label: "工作计划个人总结", value: "00011" }, { label: "中学小学教案导学案与教学设计", value: "00012" }, { label: "作文大全", value: "00013" }, { label: "幼儿教育", value: "00014" }, { label: "论文", value: "00015" }, { label: "财务管理", value: "00016" }, { label: "管理信息化", value: "00017" }, { label: "行业分类", value: "00018" }, { label: "合同样本", value: "00019" }, { label: "品质管理", value: "00020" }, { label: "企业管理", value: "00021" }, { label: "人力资源", value: "00022" }, { label: "生产管理", value: "00023" }, { label: "市场营销", value: "00024" }, { label: "制度表格", value: "00025" }, { label: "行业资料", value: "00026" }, { label: "国家标准", value: "00027" }, { label: "软件教程", value: "00028" }, { label: "标准汇编", value: "00029" }, { label: "其他", value: "00030" }, { label: "职业资格考试", value: "00031" }, { label: "股票证券行业研究报告(研报)", value: "00032" }, { label: "基金申请", value: "00033" }, { label: "教师资格证考试资料", value: "00034" }, { label: "专利说明书", value: "00035" } ] } }, description: `::: tip 订阅 [行业标准](https://www.wdfxw.net/bookfree-00002.html),其源网址为 \`https://www.wdfxw.net/bookfree-00002.html\`,请参考该 URL 指定部分构成参数,此时路由为 [\`/wdfxw/bookfree/00002\`](https://rsshub.app/wdfxw/bookfree/00002)。 ::: <details> <summary>更多分类</summary> | 分类 | ID | | ------------------------------------------------------------------------- | ---------------------------------------------------- | | [全部](https://www.wdfxw.net/bookfree.html) | [<无>](https://rsshub.app/wdfxw/bookfree) | | [行业标准](https://www.wdfxw.net/bookfree-00002.html) | [00002](https://rsshub.app/wdfxw/bookfree/00002) | | [国家标准 GB](https://www.wdfxw.net/bookfree-00001.html) | [00001](https://rsshub.app/wdfxw/bookfree/00001) | | [国外标准](https://www.wdfxw.net/bookfree-00003.html) | [00003](https://rsshub.app/wdfxw/bookfree/00003) | | [监理资料](https://www.wdfxw.net/bookfree-00004.html) | [00004](https://rsshub.app/wdfxw/bookfree/00004) | | [施工组织设计](https://极速.wdfxw.net/bookfree-00005.html) | [00005](https://rsshub.app/wdfxw/bookfree/00005) | | [土木工程毕业设计论文](https://www.wdfxw.net/bookfree-00006.html) | [00006](https://rsshub.app/wdfxw/bookfree/00006) | | [机械类毕业设计论文](https://www.wdfxw.net/bookfree-00007.html) | [00007](https://rsshub.app/wdfxw/bookfree/00007) | | [小学课件教学资料](https://www.wdfxw.net/bookfree-00008.html) | [00008](https://rsshub.app/wdfxw/bookfree/00008) | | [初中课件教学资料](https://www.wdfxw.net/bookfree-00009.html) | [00009](https://rsshub.app/wdfxw/bookfree/00009) | | [高中课件教学资料](https://www.wdfxw.net/bookfree-00010.html) | [00010](https://rsshub.app/wdfxw/bookfree/00010) | | [工作计划个人总结](https://www.wdfxw.net/bookfree-00011.html) | [00011](极速//rsshub.app/wdfxw/bookfree/00011) | | [中学小学教案导学案与教学设计](https://www.wdfxw.net/bookfree-00012.html) | [00012](https://rsshub.app/wdfxw/bookfree/00012) | | [作文大全](https://www.wdfxw.net/bookfree-00013.html) | [00013](https://rsshub.app/wdfxw/bookfree/00013) | | [幼儿教育](https://www.wdfxw.net/bookfree-00014.html) | [00014](https://rsshub.app/wdfxw/bookfree/00014) | | [论文](https://www.wdfxw.net/bookfree-00015.html) | [00015](https://rsshub.app/wdfxw/bookfree/00015) | | [财务管理](https://www.wdfxw.net/bookfree-00016.html) | [00016](https://rsshub.app/wdfxw/bookfree/00016) | | [管理信息化](https://www.wdfxw.net/bookfree-00017.html) | [00017](https://rsshub.app/wdfxw/bookfree/00017) | | [行业分类](https://www.wdfxw.net/bookfree-00018.html) | [00018](https://rsshub.app/wdfxw/bookfree/00018) | | [合同样本](https://www.wdfxw.net/bookfree-00019.html) | [00019](https://rsshub.app/wdf极速xw/bookfree/00019) | | [品质管理](https://www.wdfxw.net/bookfree-00020.html) | [00020](https://rsshub.app/wdfxw/bookfree/00020) | | [企业管理](https://www.wdfxw.net/bookfree-00021.html) | [00021](https://rsshub.app/wdfxw/bookfree/00021) | | [人力资源](https://www.wdfxw.net/bookfree-00022.html) | [00022](https://rsshub.app/wdfxw/bookfree/00022) | | [生产管理](https://www.wdfxw.net/bookfree-00023.html) | [00023](https://rsshub.app/wdfxw/bookfree/00023) | | [市场营销](https://www.wdfxw.net/bookfree-00024.html) | [00024](https://rsshub.app/wdfxw/bookfree/00024) | | [制度表格](https://www.wdfxw.net/bookfree-00025.html) | [00025](https://rsshub.app/wdfxw/bookfree/00025) | | [行业资料](https://www.wdfxw.net/bookfree-00026.html) | [00026](https://rsshub.app/wdfxw/bookfree/00026) | | [国家标准](https://www.wdfxw.net/bookfree-00027.html) | [00027](https://rsshub.app/wdfxw/bookfree/00027) | | [软件教程](https://www.wdfxw.net/bookfree-00028.html) | [00028](https://rsshub.app/wdfxw/bookfree/00028) | | [标准汇编](https://www.wdfxw.net/bookfree-00029.html) | [00029](https://rsshub.app/wdfxw/bookfree/00029) | | [其他](https://www.wdfxw.net/bookfree-00030.html) | [00030](https://rsshub.app/wdfxw/bookfree/00030) | | [职业资格考试](https://www.wdfxw.net/bookfree-00031.html) | [00031](https://rsshub.app/wdfxw/bookfree/00031) | | [股票证券行业研究报告(研报)](https://www.wdfxw.net/bookfree-00032.html) | [00032](https://rsshub.app/wdfxw/bookfree/00032) | | [基金申请](https://www.wdfxw.net/bookfree-00033.html) | [00033](https://rsshub.app/wdfxw/bookfree/00033) | | [教师资格证考试资料](https://www.wdfxw.net/bookfree-00034.html) | [00034](https://rsshub.app/wdfxw/bookfree/00034) | | [专利说明书](https://www.wdfxw.net/bookfree-00035.html) | [00035](https://rsshub.app/wdfxw/bookfree/00035) | </details> `, categories: ["reading"], features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportRadar: true, supportBT: false, supportPodcast: false, supportScihub: false }, radar: [ { source: ["www.wdfxw.net"], target: "/bookfree" }, { title: "全部", source: ["www.wdfxw.net/bookfree.html"], target: "/bookfree" }, { title: "行业标准", source: ["www.wdfxw.net/bookfree-00002.html"], target: "/bookfree/00002" }, { title: "国家标准GB", source: ["www.wdfxw.net/bookfree-00001.html"], target: "/bookfree/00001" }, { title: "国外标准", source: ["www.wdfxw.net/bookfree-00003.html"], target: "/bookfree/00003" }, { title: "监理资料", source: ["www.wdfxw.net/bookfree-00004.html"], target: "/bookfree/00004" }, { title: "施工组织设计", source: ["www.wdfxw.net/bookfree-00005.html"], target: "/bookfree/00005" }, { title: "土木工程毕业设计论文", source: ["www.wdfxw.net/bookfree-00006.html"], target: "/bookfree/00006" }, { title: "机械类毕业设计论文", source: ["www.wdfxw.net/bookfree-00007.html"], target: "/bookfree/00007" }, { title: "小学课件教学资料", source: ["www.wdfxw.net/bookfree-00008.html"], target: "/bookfree/00008" }, { title: "初中课件教学资料", source: ["www.wdfxw.net/bookfree-00009.html"], target: "/bookfree/00009" }, { title: "高中课件教学资料", source: ["www.wdfxw.net/bookfree-00010.html"], target: "/bookfree/00010" }, { title: "工作计划个人总结", source: ["www.wdfxw.net/bookfree-00011.html"], target: "/bookfree/00011" }, { title: "中学小学教案导学案与教学设计", source: ["www.wdfxw.net/bookfree-00012.html"], target: "/bookfree/00012" }, { title: "作文大全", source: ["www.wdfxw.net/bookfree-00013.html"], target: "/bookfree/00013" }, { title: "幼儿教育", source: ["www.wdfxw.net/bookfree-00014.html"], target: "/bookfree/00014" }, { title: "论文", source: ["www.wdfxw.net/bookfree-00015.html"], target: "/bookfree/00015" }, { title: "财务管理", source: ["www.wdfxw.net/bookfree-00016.html"], target: "/bookfree/00016" }, { title: "管理信息化", source: ["www.wdfxw.net/bookfree-00017.html"], target: "/bookfree/00017" }, { title: "行业分类", source: ["www.wdfxw.net/bookfree-00018.html"], target: "/bookfree/00018" }, { title: "合同样本", source: ["www.wdfxw.net/bookfree-00019.html"], target: "/bookfree/00019" }, { title: "品质管理", source: ["www.wdfxw.net/bookfree-00020.html"], target: "/bookfree/00020" }, { title: "企业管理", source: ["www.wdfxw.net/bookfree-00021.html"], target: "/bookfree/00021" }, { title: "人力资源", source: ["www.wdfxw.net/bookfree-00022.html"], target: "/bookfree/00022" }, { title: "生产管理", source: ["www.wdfxw.net/bookfree-00023.html"], target: "/bookfree/00023" }, { title: "市场营销", source: ["www.wdfxw.net/bookfree-00024.html"], target: "/bookfree/00024" }, { title: "制度表格", source: ["www.wdfxw.net/bookfree-00025.html"], target: "/bookfree/00025" }, { title: "行业资料", source: ["www.wdfxw.net/bookfree-00026.html"], target: "/bookfree/00026" }, { title: "国家标准", source: ["www.wdfxw.net/bookfree-00027.html"], target: "/bookfree/00027" }, { title: "软件教程", source: ["www.wdfxw.net/bookfree-00028.html"], target: "/bookfree/00028" }, { title: "标准汇编", source: ["www.wdfxw.net/bookfree-00029.html"], target: "/bookfree/00029" }, { title: "其他", source: ["www.wdfxw.net/bookfree-00030.html"], target: "/bookfree/00030" }, { title: "职业资格考试", source: ["www.wdfxw.net/bookfree-00031.html"], target: "/bookfree/00031" }, { title: "股票证券行业研究报告(研报)", source: ["www.wdfxw.net/bookfree-00032.html"], target: "/bookfree/00032" }, { title: "基金申请", source: ["www.wdfxw.net/bookfree-00033.html"], target: "/bookfree/00033" }, { title: "教师资格证考试资料", source: ["www.wdfxw.net/bookfree-00034.html"], target: "/bookfree/00034" }, { title: "专利说明书", source: ["www.wdfxw.net/bookfree-00035.html"], target: "/bookfree/00035" } ], view: ViewType.Articles }; //#endregion export { handler, route };