rsshub
Version:
Make RSS Great Again!
43 lines (41 loc) • 1.61 kB
JavaScript
import "./config-MQ-7ebJ_.mjs";
import "./logger-C4avouvV.mjs";
import "./parse-date-r5WDWHno.mjs";
import "./is-worker-DESPicPc.mjs";
import { t as cache_default } from "./cache-SV6W5EPy.mjs";
import "./proxy-CjvoY5ys.mjs";
import { n as puppeteer_default } from "./puppeteer-9J9JS5H4.mjs";
import { i as puppeteerFetch, n as getItem, r as parseList, t as baseUrl } from "./utils-CIrp8W18.mjs";
//#region lib/routes/javtrailers/casts.ts
const route = {
path: "/casts/:cast",
categories: ["multimedia"],
example: "/javtrailers/casts/hibiki-otsuki",
parameters: { cast: "Cast name, can be found in the URL of the cast page" },
radar: [{ source: ["javtrailers.com/casts/:category"] }],
name: "Casts",
maintainers: ["TonyRL"],
url: "javtrailers.com/casts",
handler,
features: {
nsfw: true,
requirePuppeteer: true
}
};
async function handler(ctx) {
const { cast } = ctx.req.param();
const browser = await puppeteer_default();
const response = await puppeteerFetch(`${baseUrl}/api/casts/${cast}?page=0`, browser);
const list = parseList(response.videos);
const items = await Promise.all(list.map((item) => cache_default.tryGet(item.link, () => getItem(item, browser))));
await browser.close();
return {
title: `Watch ${response.cast.name} Jav Online | Japanese Adult Video - JavTrailers.com`,
description: response.cast.castWiki?.description.replaceAll("\n", " ") ?? `Watch ${response.cast.name} Jav video’s free, we have the largest Jav collections with high definition`,
image: response.cast.avatar,
link: `${baseUrl}/casts/${cast}`,
item: items
};
}
//#endregion
export { route };