Added Full Porn Network scraper.

This commit is contained in:
ThePendulum 2020-02-15 01:50:22 +01:00
parent 8389787c7e
commit 880cc64022
6 changed files with 86 additions and 17 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1012 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

@ -1846,115 +1846,115 @@ const sites = [
{
slug: 'analbbc',
name: 'Anal BBC',
url: 'https://analbbc.com/',
url: 'https://analbbc.com',
tags: ['anal', 'bbc'],
network: 'fullpornnetwork',
},
{
slug: 'analviolation',
name: 'Anal Violation',
url: 'https://analviolation.com/',
url: 'https://analviolation.com',
tags: ['anal'],
network: 'fullpornnetwork',
},
{
slug: 'analized',
name: 'ANALIZED',
url: 'https://analized.com/',
url: 'https://analized.com',
tags: ['anal'],
network: 'fullpornnetwork',
},
{
slug: 'baddaddypov',
name: 'Bad Daddy POV',
url: 'https://baddaddypov.com/',
url: 'https://baddaddypov.com',
tags: ['pov', 'family'],
network: 'fullpornnetwork',
},
{
slug: 'dtfsluts',
name: 'DTF Sluts',
url: 'https://dtfsluts.com/',
url: 'https://dtfsluts.com',
network: 'fullpornnetwork',
},
{
slug: 'girlfaction',
name: 'Girlfaction',
url: 'https://girlfaction.com/',
url: 'https://girlfaction.com',
tags: ['lesbian'],
network: 'fullpornnetwork',
},
{
slug: 'hergape',
name: 'Her Gape',
url: 'https://hergape.com/',
url: 'https://hergape.com',
tags: ['anal'],
network: 'fullpornnetwork',
},
{
slug: 'homemadeanalwhores',
name: 'Homemade Anal Whores',
url: 'https://homemadeanalwhores.com/',
url: 'https://homemadeanalwhores.com',
tags: ['anal'],
network: 'fullpornnetwork',
},
{
slug: 'jamesdeen',
name: 'James Deen',
url: 'https://jamesdeen.com/',
url: 'https://jamesdeen.com',
network: 'fullpornnetwork',
},
{
slug: 'onlyprince',
name: 'Only Prince',
url: 'https://onlyprince.com/',
url: 'https://onlyprince.com',
tags: ['bbc'],
network: 'fullpornnetwork',
},
{
slug: 'pervertgallery',
name: 'Pervert Gallery',
url: 'http://pervertgallery.com/',
url: 'http://pervertgallery.com',
network: 'fullpornnetwork',
},
{
slug: 'povperverts',
name: 'POV Perverts',
url: 'http://povperverts.net/',
url: 'http://povperverts.net',
tags: ['pov'],
network: 'fullpornnetwork',
},
{
slug: 'teenageanalsluts',
name: 'Teenage Anal Sluts',
url: 'https://teenageanalsluts.com/',
url: 'https://teenageanalsluts.com',
tags: ['anal'],
network: 'fullpornnetwork',
},
{
slug: 'twistedvisual',
name: 'Twisted Visual',
url: 'https://twistedvisual.com/',
url: 'https://twistedvisual.com',
network: 'fullpornnetwork',
},
{
slug: 'yourmomdoesanal',
name: 'Your Mom Does Anal',
url: 'http://yourmomdoesanal.com/',
url: 'http://yourmomdoesanal.com',
tags: ['anal', 'milf'],
network: 'fullpornnetwork',
},
{
slug: 'yourmomdoesporn',
name: 'Your Mom Does Porn',
url: 'https://yourmomdoesporn.com/',
url: 'https://yourmomdoesporn.com',
tags: ['milf'],
network: 'fullpornnetwork',
},
{
slug: 'mugfucked',
name: 'Mugfucked',
url: 'https://mugfucked.com/',
url: 'https://mugfucked.com',
tags: ['facefucking', 'blowjob'],
network: 'fullpornnetwork',
},

View File

@ -0,0 +1,67 @@
'use strict';
const { get, geta } = require('../utils/q');
function scrapeLatest(scenes) {
return scenes.map(({ el, q, qa, qd, qu, ql }) => {
const release = {};
release.entryId = el.dataset.setid || q('.update_thumb', 'id').match(/\w+-\w+-(\d+)-\d+/)[1];
release.url = qu('.title');
release.title = q('.title', true);
release.description = q('.title', 'title');
release.date = qd('.video-data > span:last-child', 'YYYY-MM-DD');
release.duration = ql('.video-data > span');
release.actors = qa('.update_models a', true);
const poster = q('.update_thumb', 'src0_1x');
release.poster = [
poster.replace('-1x', '-2x'),
poster,
];
return release;
});
}
function scrapeScene({ q, qa, qd, qtx }, url) {
const release = { url };
release.entryId = q('#image_parent img', 'id').match(/\w+-\w+-(\d+)-\d+/)[1];
release.title = q('.trailer_title', true);
release.description = qtx('.text p');
release.date = qd('span[data-dateadded]', 'YYYY-MM-DD', null, 'data-dateadded');
release.actors = qa('.update_models a', true);
release.tags = qa('.video-info a[href*="/categories"]', true);
const poster = q('#image_parent img', 'src0_1x');
release.poster = [
poster.replace('-1x', '-2x'),
poster,
];
return release;
}
async function fetchLatest(site, page = 1) {
const url = `${site.url}/categories/movies_${page}_d.html`;
const qLatest = await geta(url, '.latest-updates .update');
return qLatest && scrapeLatest(qLatest, site);
}
async function fetchScene(url, site) {
const qScene = await get(url, '.content-wrapper');
return qScene && scrapeScene(qScene, site);
}
module.exports = {
fetchLatest,
fetchScene,
};

View File

@ -18,6 +18,7 @@ const famedigital = require('./famedigital');
const fantasymassage = require('./fantasymassage');
const freeones = require('./freeones');
const freeonesLegacy = require('./freeones_legacy');
const fullpornnetwork = require('./fullpornnetwork');
const girlsway = require('./girlsway');
const iconmale = require('./iconmale');
const insex = require('./insex');
@ -75,6 +76,7 @@ module.exports = {
fakehub,
famedigital,
fantasymassage,
fullpornnetwork,
girlsway,
insex,
jayrock,