rsshub
Version:
Make RSS Great Again!
34 lines (32 loc) • 1.22 kB
JavaScript
import { t as parseDate } from "./parse-date-BrP7mxXf.mjs";
import { t as cache_default } from "./cache-Bo__VnGm.mjs";
import { t as got_default } from "./got-KxxWdaxq.mjs";
import * as cheerio from "cheerio";
//#region lib/routes/guokr/utils.ts
const parseList = (result) => result.map((item) => ({
title: item.title,
description: item.summary,
pubDate: parseDate(item.date_published),
link: `https://www.guokr.com/article/${item.id}/`,
author: item.author.nickname,
category: item.subject?.name,
id: item.id,
channels: item.channels
}));
const parseItem = (item) => cache_default.tryGet(item.link, async () => {
const { data: res } = await got_default(`https://apis.guokr.com/minisite/article/${item.id}.json`);
const $ = cheerio.load(res.result.content);
$("#meta_content").remove();
$("div").each((_, elem) => {
const $elem = $(elem);
$elem.attr("style", $elem.attr("style")?.replaceAll(/(?:display:\s*none|visibility:\s*hidden|opacity:\s*0);?/g, ""));
});
$("img").each((_, elem) => {
const $elem = $(elem);
if ($elem.attr("data-src")) $elem.attr("src", $elem.attr("data-src"));
});
item.description = $.html();
return item;
});
//#endregion
export { parseList as n, parseItem as t };