Added Porn+.
This commit is contained in:
parent
a8f0c25b50
commit
f5ffc002f0
|
@ -617,6 +617,15 @@ const networks = [
|
||||||
description: 'Watch the best HD exclusive movies and videos on Porn Pros. All the hottest new Pornstar and amateur girls in High Definition updated daily.',
|
description: 'Watch the best HD exclusive movies and videos on Porn Pros. All the hottest new Pornstar and amateur girls in High Definition updated daily.',
|
||||||
parent: 'whalemember',
|
parent: 'whalemember',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
slug: 'pornplus',
|
||||||
|
name: 'Porn+',
|
||||||
|
url: 'https://pornplus.com',
|
||||||
|
parent: 'whalemember',
|
||||||
|
parameters: {
|
||||||
|
layout: 'plus',
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
slug: 'private',
|
slug: 'private',
|
||||||
name: 'Private',
|
name: 'Private',
|
||||||
|
|
|
@ -13788,6 +13788,7 @@ const sites = [
|
||||||
id: 'shag-street',
|
id: 'shag-street',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
/*
|
||||||
{
|
{
|
||||||
slug: 'stayhomemilf',
|
slug: 'stayhomemilf',
|
||||||
name: 'StayHomeMilf',
|
name: 'StayHomeMilf',
|
||||||
|
@ -13797,6 +13798,7 @@ const sites = [
|
||||||
id: 'stay-home-milf',
|
id: 'stay-home-milf',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
*/
|
||||||
// MYLF cross-over
|
// MYLF cross-over
|
||||||
{
|
{
|
||||||
slug: 'mylfxadultprime',
|
slug: 'mylfxadultprime',
|
||||||
|
@ -15859,6 +15861,164 @@ const sites = [
|
||||||
parent: 'pornpros',
|
parent: 'pornpros',
|
||||||
hasLogo: false,
|
hasLogo: false,
|
||||||
},
|
},
|
||||||
|
// PORN PLUS PORN+
|
||||||
|
{
|
||||||
|
name: 'Passion Fuck',
|
||||||
|
slug: 'passionfuck',
|
||||||
|
url: 'https://pornplus.com/series/passion-fuck',
|
||||||
|
parent: 'pornplus',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Creepy Pa',
|
||||||
|
slug: 'creepypa',
|
||||||
|
url: 'https://pornplus.com/series/creepy-pa',
|
||||||
|
parent: 'pornplus',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Property Exploits',
|
||||||
|
slug: 'propertyexploits',
|
||||||
|
url: 'https://pornplus.com/series/property-exploits',
|
||||||
|
parent: 'pornplus',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Asians Exploited',
|
||||||
|
slug: 'asiansexploited',
|
||||||
|
url: 'https://pornplus.com/series/asians-exploited',
|
||||||
|
parent: 'pornplus',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Shower 4K',
|
||||||
|
slug: 'shower4k',
|
||||||
|
url: 'https://pornplus.com/series/shower-4k',
|
||||||
|
parent: 'pornplus',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Squirt Bomb',
|
||||||
|
slug: 'squirtbomb',
|
||||||
|
url: 'https://pornplus.com/series/squirt-bomb',
|
||||||
|
parent: 'pornplus',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Kinky Sluts 4K',
|
||||||
|
slug: 'kinkysluts4k',
|
||||||
|
url: 'https://pornplus.com/series/kinky-sluts-4k',
|
||||||
|
parent: 'pornplus',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'School of Cock',
|
||||||
|
slug: 'schoolofcock',
|
||||||
|
url: 'https://pornplus.com/series/school-of-cock',
|
||||||
|
parent: 'pornplus',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Facials Galore',
|
||||||
|
slug: 'facialsgalore',
|
||||||
|
url: 'https://pornplus.com/series/facials-galore',
|
||||||
|
parent: 'pornplus',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Game On',
|
||||||
|
slug: 'gameon',
|
||||||
|
url: 'https://pornplus.com/series/game-on',
|
||||||
|
parent: 'pornplus',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Waxxxed',
|
||||||
|
slug: 'waxxxed',
|
||||||
|
url: 'https://pornplus.com/series/waxxxed',
|
||||||
|
parent: 'pornplus',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Double Trouble',
|
||||||
|
slug: 'doubletrouble',
|
||||||
|
url: 'https://pornplus.com/series/double-trouble',
|
||||||
|
parent: 'pornplus',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Boobs 4K',
|
||||||
|
slug: 'boobs4k',
|
||||||
|
url: 'https://pornplus.com/series/boobs4k',
|
||||||
|
parent: 'pornplus',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'BBC POVD',
|
||||||
|
slug: 'bbcpovd',
|
||||||
|
url: 'https://pornplus.com/series/bbc-povd',
|
||||||
|
parent: 'pornplus',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Sexercise',
|
||||||
|
slug: 'sexercise',
|
||||||
|
url: 'https://pornplus.com/series/sexercise',
|
||||||
|
parent: 'pornplus',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Strip Club Tryouts',
|
||||||
|
slug: 'stripclubtryouts',
|
||||||
|
url: 'https://pornplus.com/series/strip-club-tryouts',
|
||||||
|
parent: 'pornplus',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Pornstars in Cars',
|
||||||
|
slug: 'pornstarsincars',
|
||||||
|
url: 'https://pornplus.com/series/pornstars-in-cars',
|
||||||
|
parent: 'pornplus',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'RV Adventures',
|
||||||
|
slug: 'rvadventures',
|
||||||
|
url: 'https://pornplus.com/series/rv-adventures',
|
||||||
|
parent: 'pornplus',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Bikini Smash',
|
||||||
|
slug: 'bikinismash',
|
||||||
|
alias: ['bikini splash'],
|
||||||
|
url: 'https://pornplus.com/series/bikini-splash',
|
||||||
|
parent: 'pornplus',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Momcum',
|
||||||
|
slug: 'momcum',
|
||||||
|
url: 'https://pornplus.com/series/momcum',
|
||||||
|
parent: 'pornplus',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Caged Sex',
|
||||||
|
slug: 'cagedsex',
|
||||||
|
url: 'https://pornplus.com/series/caged-sex',
|
||||||
|
parent: 'pornplus',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Glory Hole 4K',
|
||||||
|
slug: 'gloryhole4k',
|
||||||
|
url: 'https://pornplus.com/series/glory-hole-4k',
|
||||||
|
parent: 'pornplus',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Facials4K',
|
||||||
|
slug: 'facials4kpro',
|
||||||
|
url: 'https://pornplus.com/series/facials4k',
|
||||||
|
parent: 'pornplus',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'My Very First Time',
|
||||||
|
slug: 'myveryfirsttimepro',
|
||||||
|
url: 'https://pornplus.com/series/my-very-first-time',
|
||||||
|
parent: 'pornplus',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Mom 4K',
|
||||||
|
slug: 'mom4k',
|
||||||
|
url: 'https://pornplus.com/series/mom-4k',
|
||||||
|
parent: 'pornplus',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Nanny Spy',
|
||||||
|
slug: 'nannyspypro',
|
||||||
|
url: 'https://pornplus.com/series/nannyspy',
|
||||||
|
parent: 'pornplus',
|
||||||
|
},
|
||||||
// PRIVATE
|
// PRIVATE
|
||||||
{
|
{
|
||||||
slug: 'analintroductions',
|
slug: 'analintroductions',
|
||||||
|
@ -21020,7 +21180,6 @@ const sites = [
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
/*
|
|
||||||
sites.reduce((acc, site) => {
|
sites.reduce((acc, site) => {
|
||||||
if (acc.has(site.slug)) {
|
if (acc.has(site.slug)) {
|
||||||
console.log('DUPLICATE!', site.slug);
|
console.log('DUPLICATE!', site.slug);
|
||||||
|
@ -21030,7 +21189,6 @@ sites.reduce((acc, site) => {
|
||||||
|
|
||||||
return acc;
|
return acc;
|
||||||
}, new Set());
|
}, new Set());
|
||||||
*/
|
|
||||||
|
|
||||||
/* eslint-disable max-len */
|
/* eslint-disable max-len */
|
||||||
exports.seed = (knex) => Promise.resolve()
|
exports.seed = (knex) => Promise.resolve()
|
||||||
|
|
|
@ -160,6 +160,7 @@ const scrapers = {
|
||||||
pinkyxxx,
|
pinkyxxx,
|
||||||
porncz,
|
porncz,
|
||||||
pornpros: whalemember,
|
pornpros: whalemember,
|
||||||
|
pornplus: whalemember,
|
||||||
private: privateNetwork,
|
private: privateNetwork,
|
||||||
purgatoryx,
|
purgatoryx,
|
||||||
radical,
|
radical,
|
||||||
|
|
|
@ -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 }) {
|
function scrapeScene({ query }, { url, entity }) {
|
||||||
const release = {};
|
const release = {};
|
||||||
|
|
||||||
|
@ -70,6 +104,8 @@ function scrapeScene({ query }, { url, entity }) {
|
||||||
release.teaser = query.video('#player-wrapper source');
|
release.teaser = query.video('#player-wrapper source');
|
||||||
release.qualities = query.contents('#trailer_player .resolution').map((resolution) => Number(resolution.split('x')[1])).filter(Boolean);
|
release.qualities = query.contents('#trailer_player .resolution').map((resolution) => Number(resolution.split('x')[1])).filter(Boolean);
|
||||||
|
|
||||||
|
console.log(release);
|
||||||
|
|
||||||
return release;
|
return release;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -84,7 +120,22 @@ async function fetchLatest(channel, page = 1) {
|
||||||
return res.status;
|
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 = {
|
module.exports = {
|
||||||
fetchLatest,
|
fetchLatest,
|
||||||
scrapeScene,
|
scrapeScene,
|
||||||
|
plus: {
|
||||||
|
fetchLatest: fetchLatestPlus,
|
||||||
|
scrapeScene,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue