rsshub
Version:
Make RSS Great Again!
69 lines (67 loc) • 2.18 kB
JavaScript
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 };