rsshub
Version:
Make RSS Great Again!
72 lines (70 loc) • 2.14 kB
JavaScript
import { n as init_esm_shims, t as __dirname } from "./esm-shims-CzJ_djXG.mjs";
import { t as art } from "./render-BQo6B4tL.mjs";
import { t as got_default } from "./got-KxxWdaxq.mjs";
import path from "node:path";
import { load } from "cheerio";
//#region lib/routes/furstar/utils.ts
init_esm_shims();
const base = "https://furstar.jp";
const langBase = (lang) => lang ? `${base}/${lang}` : base;
const renderAuthor = (author) => art(path.join(__dirname, "templates/author-fedbb8f1.art"), author);
const renderDesc = (desc, pics, author) => art(path.join(__dirname, "templates/description-ed3670e4.art"), {
desc,
pics,
author: renderAuthor(author)
});
const authorDetail = (el) => {
const $ = load(el);
const a = $("a");
const result = {
name: null,
avatar: null,
link: null
};
if (a.length > 0) {
const img = $("a img");
result.name = img.attr("alt");
result.avatar = img.attr("src");
result.link = a.attr("href");
} else {
const desc = $("img");
result.name = desc.attr("alt");
result.avatar = desc.attr("src");
}
return result;
};
const detailPage = (link, cache) => cache.tryGet(link, async () => {
const $ = load((await got_default(link, { https: { rejectUnauthorized: false } })).data);
const title = $(".row .panel-heading h2").text().trim();
const desc = $(".character-description p").text().trim();
return {
title,
pics: $(".img-gallery .prettyPhoto").toArray().map((e) => {
return `${base}/${load(e)("a").attr("href").trim().slice(2)}`;
}),
desc,
author: authorDetail($(".character-description").html())
};
});
const fetchAllCharacters = (data, base$1) => {
return load(data)(".character-article").toArray().map((e) => {
const c = load(e);
return {
title: c(".character-headline").text().trim(),
headImage: c(".character-images img").attr("src").trim(),
detailPage: `${base$1}/${c(".character-images a").attr("href").trim()}`,
author: authorDetail(c(".character-description").html())
};
});
};
var utils_default = {
BASE: base,
langBase,
fetchAllCharacters,
detailPage,
authorDetail,
renderDesc,
renderAuthor
};
//#endregion
export { utils_default as t };