rsshub
Version:
Make RSS Great Again!
104 lines (102 loc) • 3.27 kB
JavaScript
import "./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 { t as cache_default } from "./cache-Bo__VnGm.mjs";
import "./helpers-DxBp0Pty.mjs";
import { t as got_default } from "./got-KxxWdaxq.mjs";
import { load } from "cheerio";
//#region lib/routes/gmcmonline/chinacustoms.ts
const handler = async (ctx) => {
const limit = ctx.req.query("limit") ? Number.parseInt(ctx.req.query("limit"), 10) : 10;
const rootUrl = "http://chinacustoms.gmcmonline.com";
const magRootUrl = "http://manager.gmcmonline.com";
const { data: response } = await got_default(rootUrl);
const $ = load(response);
const author = $("p.copyright a").text();
const language = $("html").prop("lang");
let items = $("ul.booklist li a").toArray().slice(0, limit).map((item) => {
item = $(item);
const title$1 = item.find("p.txt").text();
const image$1 = new URL(item.find("img").prop("src"), rootUrl).href;
return {
title: title$1,
link: new URL(item.prop("href"), rootUrl).href,
pubDate: parseDate(title$1, "YYYY年MM期"),
author,
image: image$1,
banner: image$1,
language
};
});
items = await Promise.all(items.map((item) => cache_default.tryGet(item.link, async () => {
const { data: detailResponse } = await got_default(item.link);
const $$ = load(detailResponse);
$$("ol.breadcrumb li a").first().remove();
const current = $$("ol.breadcrumb li a").first().text();
const pubDate = parseDate($$("div.title").text(), "YYYY年MM月DD日");
const image$1 = new URL($$("div.coverline img").prop("src"), rootUrl).href;
return $$("a.txt").toArray().map((i) => {
i = $(i);
const id = i.prop("href").match(/c\/(\d+)\.shtml/)?.[1] ?? void 0;
if (!id) return;
const title$1 = i.prop("title") || i.text();
const guid = `gmcmonline-chinacustoms-${id}`;
return {
title: title$1,
pubDate,
link: new URL(i.prop("href"), item.link).href,
category: [current, i.closest("div.class-box").find("div.title-box span").text().replaceAll(/【|】/g, "") || void 0].filter(Boolean),
author,
guid,
id: guid,
image: image$1,
banner: image$1,
language,
enclosure_url: new URL(`front/article/${id}/pdf?magazineID=2`, magRootUrl).href,
enclosure_type: "application/pdf",
enclosure_title: title$1
};
}).filter(Boolean);
})));
const title = $("title").text();
const image = new URL($("div.img-box img").prop("src"), rootUrl).href;
return {
title,
description: title,
link: rootUrl,
item: items.flat(),
allowEmpty: true,
image,
author: title,
language
};
};
const route = {
path: "/chinacustoms",
name: "中国海关",
url: "chinacustoms.gmcmonline.com",
maintainers: ["nczitzk"],
handler,
example: "/gmcmonline/chinacustoms",
parameters: void 0,
description: void 0,
categories: ["reading"],
features: {
requireConfig: false,
requirePuppeteer: false,
antiCrawler: false,
supportRadar: true,
supportBT: false,
supportPodcast: false,
supportScihub: false
},
radar: [{
source: ["chinacustoms.gmcmonline.com"],
target: "/chinacustoms"
}]
};
//#endregion
export { handler, route };