UNPKG

rsshub

Version:
37 lines (36 loc) 1.45 kB
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 };