UNPKG

rsshub

Version:
138 lines (136 loc) 3.3 kB
import "./esm-shims-CzJ_djXG.mjs"; import "./config-C37vj7VH.mjs"; import { t as ViewType } from "./types-D84BRIt4.mjs"; import "./dist-BInvbO1W.mjs"; import "./logger-Czu8UMNd.mjs"; import "./ofetch-BIyrKU3Y.mjs"; import "./parse-date-BrP7mxXf.mjs"; import "./helpers-DxBp0Pty.mjs"; import "./render-BQo6B4tL.mjs"; import { t as got_default } from "./got-KxxWdaxq.mjs"; import { t as invalid_parameter_default } from "./invalid-parameter-rr4AgGpp.mjs"; import { t as isValidHost } from "./valid-host-C-u5eW3j.mjs"; import { i as parseItems, n as getRadarDomin, r as headers } from "./utils-BTaTkcFQ.mjs"; import { load } from "cheerio"; //#region lib/routes/pornhub/pornstar.ts const route = { path: "/pornstar/:username/:language?/:sort?", categories: ["multimedia"], view: ViewType.Videos, example: "/pornhub/pornstar/june-liu/www/mr", parameters: { username: { description: "username, part of the url e.g. `pornhub.com/pornstar/june-liu`" }, language: { description: "language", options: [ { value: "www", label: "English" }, { value: "de", label: "Deutsch" }, { value: "es", label: "Español" }, { value: "fr", label: "Français" }, { value: "it", label: "Italiano" }, { value: "ja", label: "日本語" }, { value: "pt", label: "Português" }, { value: "pl", label: "Polski" }, { value: "rt", label: "Русский" }, { value: "nl", label: "Dutch" }, { value: "cs", label: "Czech" }, { value: "cn", label: "中文(简体)" } ], default: "www" }, sort: { description: "sorting method, leave empty for `Best`", options: [ { label: "Most Recent", value: "mr" }, { label: "Most Viewed", value: "mv" }, { label: "Top Rated", value: "tr" }, { label: "Longest", value: "lg" } ] } }, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: true, supportBT: false, supportPodcast: false, supportScihub: false, nsfw: true }, radar: getRadarDomin("/pornstar/:username"), name: "Pornstar", maintainers: ["I2IMk", "queensferryme"], handler }; async function handler(ctx) { const { language = "www", username, sort = "mr" } = ctx.req.param(); let link = `https://${language}.pornhub.com/pornstar/${username}?o=${sort}`; if (!isValidHost(language)) throw new invalid_parameter_default("Invalid language"); const { data: response } = await got_default(link, { headers }); let $ = load(response); let items; if ($(".withBio").length === 0) { link = `https://${language}.pornhub.com/pornstar/${username}/videos?o=${sort}`; const { data: response$1 } = await got_default(link, { headers }); $ = load(response$1); items = $("#mostRecentVideosSection .videoBox").toArray().map((e) => parseItems($(e))); } else items = $("#pornstarsVideoSection .videoBox").toArray().map((e) => parseItems($(e))); return { title: $("h1").first().text(), description: $("section.aboutMeSection").text().trim(), link, image: $("#getAvatar").attr("src"), language: $("html").attr("lang"), item: items }; } //#endregion export { route };