UNPKG

rsshub

Version:
69 lines (67 loc) 2.18 kB
import "./config-C37vj7VH.mjs"; import { t as logger_default } from "./logger-Czu8UMNd.mjs"; import { t as parseDate } from "./parse-date-BrP7mxXf.mjs"; import "./proxy-Db7uGcYb.mjs"; import { t as timezone } from "./timezone-D8cuwzTY.mjs"; import { n as puppeteer_default } from "./puppeteer-DGmvuGvT.mjs"; import { load } from "cheerio"; //#region lib/routes/colamanga/manga.ts const domain = "www.colamanga.com"; const route = { path: "/:id", parameters: { id: "漫画id" }, name: "Manga", maintainers: ["machsix"], example: "/colamanga/manga-qq978758", categories: ["anime"], radar: [{ source: [`${domain}/:id/`], target: "/:id" }], features: { requireConfig: false, requirePuppeteer: true, antiCrawler: true, supportBT: false, supportPodcast: false, supportScihub: false }, handler }; function shift_date(date, days) { const result = new Date(date); result.setDate(result.getDate() + days); return result; } async function handler(ctx) { const url = `https://${domain}/${ctx.req.param("id")}`; const browser = await puppeteer_default(); const page = await browser.newPage(); await page.setRequestInterception(true); page.on("request", (request) => { request.resourceType() === "document" ? request.continue() : request.abort(); }); logger_default.http(`Requesting ${url}`); await page.goto(url, { waitUntil: "domcontentloaded" }); const response = await page.content(); await browser.close(); const $ = load(response); const book_name = $("meta[property='og:comic:book_name']").attr("content"); const updateDateAttr = $("meta[property='og:comic:update_time']").attr("content"); const updateDate = updateDateAttr ? timezone(parseDate(updateDateAttr)) : timezone(/* @__PURE__ */ new Date()); const author = $("span:contains('作者')").parent().contents().eq(1).text(); const items = $(".all_data_list >ul>li>a").toArray().map((elem, i) => ({ title: `${book_name} ${$(elem).text()}`, link: elem.attribs.href, description: $(".fed-part-esan").text(), author, pubDate: shift_date(updateDate, -7 * i) })); return { title: book_name || "Unknown Manga", link: url, item: items }; } //#endregion export { route };