UNPKG

rsshub

Version:
65 lines (63 loc) 2.26 kB
import "./dist-Bog6z_OM.mjs"; import "./config-MQ-7ebJ_.mjs"; import "./logger-C4avouvV.mjs"; import "./ofetch-DKl_Ma9g.mjs"; import { t as parseDate } from "./parse-date-r5WDWHno.mjs"; import "./is-worker-DESPicPc.mjs"; import { t as cache_default } from "./cache-SV6W5EPy.mjs"; import "./helpers-Bo4JQYdN.mjs"; import { t as got_default } from "./got-CO-ndVl2.mjs"; import { t as invalid_parameter_default } from "./invalid-parameter-ByDtry1B.mjs"; import { jsx } from "hono/jsx/jsx-runtime"; import { load } from "cheerio"; import { renderToString } from "hono/jsx/dom/server"; //#region lib/routes/comicskingdom/index.tsx const route = { path: "/:name", categories: ["anime"], example: "/comicskingdom/pardon-my-planet", parameters: { name: "URL path of the strip on comicskingdom.com" }, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, radar: [{ source: ["comicskingdom.com/:name/*", "comicskingdom.com/:name"] }], name: "Archive", maintainers: ["stjohnjohnson"], handler }; async function handler(ctx) { const baseURL = "https://comicskingdom.com"; const name = ctx.req.param("name"); const url = `${baseURL}/${name}/archive`; const { data } = await got_default(url); const $ = load(data); const comic = $("title").text().replace("Comics Kingdom - ", "").trim(); const author = $(".feature-title h2").text(); const links = $("div.tile").toArray().map((el) => $(el).find("a").first().attr("href")); if (links.length === 0) throw new invalid_parameter_default(`Comic Not Found - ${name}`); const items = await Promise.all(links.map((link) => cache_default.tryGet(link, async () => { const content = load((await got_default(link)).data); return { title: content("meta[property=\"og:description\"]").attr("content"), author, category: "comic", description: renderToString(/* @__PURE__ */ jsx("img", { src: content("meta[property=\"og:image\"]").attr("content") })), pubDate: parseDate(link.slice(link.lastIndexOf("/") + 1), "YYYY-MM-DD"), link }; }))); return { title: comic, link: url, image: $(".feature-logo").attr("src"), item: items, language: "en-US" }; } //#endregion export { route };