Added Porn+.

This commit is contained in:
DebaucheryLibrarian
2025-02-26 04:09:22 +01:00
parent a8f0c25b50
commit f5ffc002f0
4 changed files with 221 additions and 2 deletions

View File

@@ -160,6 +160,7 @@ const scrapers = {
pinkyxxx,
porncz,
pornpros: whalemember,
pornplus: whalemember,
private: privateNetwork,
purgatoryx,
radical,

View File

@@ -44,6 +44,40 @@ function scrapeLatest(scenes, channel) {
});
}
function scrapeLatestPlus(scenes, channel) {
return scenes.map(({ query, _element }) => {
const release = {};
release.title = query.content('.title');
release.date = query.date('.video-thumbnail-footer', 'MM/DD/YYYY');
const slug = slugify(release.title);
release.url = `${new URL(channel.url).origin}/video/${slug}`;
release.entryId = slug;
release.actors = query.all('.actor-list a').map((actorEl) => ({
name: unprint.query.content(actorEl),
url: unprint.query.url(actorEl, null, { origin: channel.url }),
}));
const poster = query.poster() || query.img('a[data-video-thumbnail-single-image-target] img');
if (poster) {
release.poster = [
stripQuery(poster),
poster,
];
}
release.teaser = query.video('source', { attribute: 'data-src' });
release.channel = slugify(query.attribute('.series-link img', 'alt'), '');
return release;
});
}
function scrapeScene({ query }, { url, entity }) {
const release = {};
@@ -70,6 +104,8 @@ function scrapeScene({ query }, { url, entity }) {
release.teaser = query.video('#player-wrapper source');
release.qualities = query.contents('#trailer_player .resolution').map((resolution) => Number(resolution.split('x')[1])).filter(Boolean);
console.log(release);
return release;
}
@@ -84,7 +120,22 @@ async function fetchLatest(channel, page = 1) {
return res.status;
}
async function fetchLatestPlus(channel, page = 1) {
const url = `${channel.url}?page=${page}`;
const res = await unprint.get(url, { selectAll: '.video-thumbnail' });
if (res.status === 200) {
return scrapeLatestPlus(res.context, channel);
}
return res.status;
}
module.exports = {
fetchLatest,
scrapeScene,
plus: {
fetchLatest: fetchLatestPlus,
scrapeScene,
},
};