rsshub
Version:
Make RSS Great Again!
37 lines (36 loc) • 1.45 kB
JavaScript
import { t as rofetch } from "./ofetch-C3ts-Hud.mjs";
import { t as parseDate } from "./parse-date-Cr0wQjV_.mjs";
import { t as cache_default } from "./cache-BkqOokyU.mjs";
import { t as timezone } from "./timezone-BBvDwS_3.mjs";
import { load } from "cheerio";
//#region lib/routes/njxzc/utils/index.ts
function parsePubDate(text) {
const match = text?.match(/(\d{4})[-/.年]\s*(\d{1,2})[-/.月]\s*(\d{1,2})/);
if (!match) return;
const [, year, month, day] = match;
const time = text?.match(/(\d{1,2}:\d{2}(?::\d{2})?)/)?.[1];
return timezone(parseDate(`${year}-${month.padStart(2, "0")}-${day.padStart(2, "0")}${time ? ` ${time}` : ""}`), 8);
}
async function fetchArticle(item) {
const $ = load(await rofetch(item.link));
const $content = $(".wp_articlecontent");
$content.find(".wp_pdf_player").each((_, el) => {
const $player = $(el);
const pdfSrc = $player.attr("pdfsrc");
if (pdfSrc) $player.replaceWith(`<p><a href="${pdfSrc}">附件下载</a></p>`);
else $player.remove();
});
const title = $(".arti_title").text();
const pubDate = parsePubDate($(".arti_update").text());
return {
...item,
title: title || item.title,
pubDate: pubDate ?? item.pubDate,
description: $content.html() ?? item.description
};
}
function resolveArticles(list) {
return Promise.all(list.map((item) => cache_default.tryGet(item.link, () => fetchArticle(item))));
}
//#endregion
export { resolveArticles as n, parsePubDate as t };