rsshub
Version:
Make RSS Great Again!
31 lines (30 loc) • 1.58 kB
JavaScript
import { t as cache_default } from "./cache-C1Y-9qDV.mjs";
import { t as got_default } from "./got-DUpa1V3-.mjs";
import { Fragment, jsx } from "hono/jsx/jsx-runtime";
import { load } from "cheerio";
import { renderToString } from "hono/jsx/dom/server";
//#region lib/routes/jpxgmn/utils.tsx
const indexUrl = "http://mei8.vip/";
const getOriginUrl = async () => await cache_default.tryGet("jpxgmn:originUrl", async () => {
const response = await got_default(indexUrl);
const $ = load(response.data);
const entries = $("ul > li > span");
return "http://" + $(entries[Math.floor(Math.random() * entries.length)]).text();
});
const getImages = ($articleContent) => $articleContent("article > p img").toArray().map((img) => $articleContent(img).attr("src"));
const getArticleDesc = async (articleUrl) => {
const response = await got_default(articleUrl);
const $content = load(response.data);
let pageCnt = $content("div.pagination:first ul a").length - 1;
if (pageCnt === -1) pageCnt = 1;
const images = getImages($content);
const otherImages = await Promise.all(Array.from({ length: pageCnt - 1 }).keys().toArray().map(async (pageIndex) => {
const pageUrl = articleUrl.replace(".html", () => `_${pageIndex + 1}.html`);
const pageResponse = await got_default(pageUrl);
return getImages(load(pageResponse.data));
}));
const allImages = [...images, ...otherImages.flat()];
return renderToString(/* @__PURE__ */ jsx(Fragment, { children: allImages.map((src) => /* @__PURE__ */ jsx("img", { src })) }));
};
//#endregion
export { getOriginUrl as n, getArticleDesc as t };