UNPKG

rsshub

Version:
80 lines (78 loc) 2.28 kB
import "./config-MQ-7ebJ_.mjs"; import "./logger-C4avouvV.mjs"; import "./proxy-CjvoY5ys.mjs"; import { n as puppeteer_default } from "./puppeteer-9J9JS5H4.mjs"; import { jsx } from "hono/jsx/jsx-runtime"; import * as cheerio from "cheerio"; import { renderToString } from "hono/jsx/dom/server"; //#region lib/routes/missav/new.tsx const urlPath = "dm514/new"; const route = { path: "/new", categories: ["multimedia"], example: "/missav/new", features: { requireConfig: false, requirePuppeteer: true, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false, nsfw: true }, radar: [{ source: [ `missav.ws/${urlPath}`, "missav.ws/new", "missav.ws/" ] }, { source: [ `missav.ai/${urlPath}`, "missav.ai/new", "missav.ai/" ] }], name: "最近更新", maintainers: ["TonyRL"], handler, url: "missav.ws/dm397/new" }; async function handler() { const baseUrl = "https://missav.ws"; const url = `${baseUrl}/${urlPath}`; const browser = await puppeteer_default(); const page = await browser.newPage(); await page.setRequestInterception(true); page.on("request", (request) => { request.resourceType() === "document" || request.resourceType() === "script" || request.resourceType() === "xhr" ? request.continue() : request.abort(); }); await page.goto(url, { waitUntil: "domcontentloaded" }); const response = await page.evaluate(() => document.documentElement.innerHTML); await browser.close(); const $ = cheerio.load(response); const items = $(".grid .group").toArray().map((item) => { const $item = $(item); const title = $item.find(".text-secondary"); const poster = new URL($item.find("img").data("src")); poster.searchParams.set("class", "normal"); const video = $item.find("video").data("src"); return { title: title.text().trim(), link: title.attr("href"), description: renderToString(/* @__PURE__ */ jsx("video", { controls: true, preload: "metadata", poster: poster.href, children: /* @__PURE__ */ jsx("source", { src: video, type: video.split(".").pop() }) })) }; }); return { title: $("head title").text(), description: $("head meta[name=\"description\"]").attr("content"), link: baseUrl, item: items }; } //#endregion export { route };