Compare commits

..

2 Commits

Author SHA1 Message Date
DebaucheryLibrarian bfb9581f12 1.246.3 2026-01-20 05:59:45 +01:00
DebaucheryLibrarian c711d73cd0 Added Full Porn Network sites. 2026-01-20 05:59:42 +01:00
8 changed files with 213 additions and 42 deletions

4
package-lock.json generated
View File

@ -1,12 +1,12 @@
{
"name": "traxxx",
"version": "1.246.2",
"version": "1.246.3",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "traxxx",
"version": "1.246.2",
"version": "1.246.3",
"license": "ISC",
"dependencies": {
"@aws-sdk/client-s3": "^3.458.0",

View File

@ -1,6 +1,6 @@
{
"name": "traxxx",
"version": "1.246.2",
"version": "1.246.3",
"description": "All the latest porn releases in one place",
"main": "src/app.js",
"scripts": {

View File

@ -879,6 +879,11 @@ const tags = [
slug: 'outdoors',
group: 'location',
},
{
name: 'public',
slug: 'public',
group: 'location',
},
{
name: 'indoors',
slug: 'indoors',

View File

@ -4465,7 +4465,7 @@ const sites = [
{
slug: 'analviolation',
name: 'Anal Violation',
url: 'https://analviolation.com',
url: 'https://analized.com/channels/anal-violation',
tags: ['anal'],
parent: 'fullpornnetwork',
},
@ -4476,14 +4476,6 @@ const sites = [
tags: ['anal'],
parent: 'fullpornnetwork',
},
{
slug: 'baddaddypov',
name: 'Bad Daddy POV',
alias: ['bdpov'],
url: 'https://baddaddypov.com',
tags: ['pov', 'family'],
parent: 'fullpornnetwork',
},
{
slug: 'dtfsluts',
name: 'DTF Sluts',
@ -4500,14 +4492,15 @@ const sites = [
{
slug: 'hergape',
name: 'Her Gape',
url: 'https://hergape.com',
url: 'https://analized.com/channels/her-gape',
tags: ['anal'],
parent: 'fullpornnetwork',
},
{
slug: 'homemadeanalwhores',
name: 'Homemade Anal Whores',
url: 'https://homemadeanalwhores.com',
slug: 'analamateur',
rename: 'homemadeanalwhores',
name: 'Anal Amateur',
url: 'https://analamateur.com',
tags: ['anal'],
parent: 'fullpornnetwork',
},
@ -4520,20 +4513,20 @@ const sites = [
{
slug: 'onlyprince',
name: 'Only Prince',
url: 'https://onlyprince.com',
url: 'https://fullpornnetwork.com/channels/only-prince',
tags: ['bbc'],
parent: 'fullpornnetwork',
},
{
slug: 'pervertgallery',
name: 'Pervert Gallery',
url: 'http://pervertgallery.com',
url: 'https://fullpornnetwork.com/channels/pervert-gallery',
parent: 'fullpornnetwork',
},
{
slug: 'povperverts',
name: 'POV Perverts',
url: 'http://povperverts.net',
url: 'https://fullpornnetwork.com/channels/pov-perverts',
tags: ['pov'],
parent: 'fullpornnetwork',
},
@ -4544,16 +4537,70 @@ const sites = [
tags: ['anal'],
parent: 'fullpornnetwork',
},
{
slug: 'lesbiananalsluts',
name: 'Lesbian Anal Sluts',
url: 'https://analized.com/channels/lesbian-anal-sluts',
tags: ['lesbian'],
parent: 'fullpornnetwork',
},
{
slug: 'teenagecorruption',
name: 'Teenage Corruption',
url: 'https://fullpornnetwork.com/channels/teenagecorruption',
tags: ['teen'],
parent: 'fullpornnetwork',
},
{
slug: 'teenagetryouts',
name: 'Teenage Tryouts',
url: 'https://teenagetryouts.com',
tags: ['teen'],
parent: 'fullpornnetwork',
},
{
slug: 'twistedvisual',
name: 'Twisted Visual',
url: 'https://twistedvisual.com',
parent: 'fullpornnetwork',
},
{
slug: 'slutinspection',
name: 'Slut Inspection',
url: 'https://slutinspection.com',
parent: 'fullpornnetwork',
},
{
slug: 'slutsbts',
name: 'Sluts BTS',
url: 'https://slutinspection.com/channels/slutsbtscom',
tags: ['bts'],
parent: 'fullpornnetwork',
},
{
slug: 'slutspov',
name: 'Sluts POV',
url: 'https://slutinspection.com/channels/slutspovcom',
tags: ['pov'],
parent: 'fullpornnetwork',
},
{
slug: 'wifespov',
name: 'Wife\'s POV',
url: 'https://slutinspection.com/channels/wifespovcom',
tags: ['pov'],
parent: 'fullpornnetwork',
},
{
slug: 'pornforce',
name: 'Porn Force',
url: 'https://pornforce.com',
parent: 'fullpornnetwork',
},
{
slug: 'yourmomdoesanal',
name: 'Your Mom Does Anal',
url: 'http://yourmomdoesanal.com',
url: 'https://yourmomdoesporn.com/channels/your-mom-does-anal',
tags: ['anal', 'milf'],
parent: 'fullpornnetwork',
},
@ -4564,13 +4611,139 @@ const sites = [
tags: ['milf'],
parent: 'fullpornnetwork',
},
{
slug: 'mommyjoi',
name: 'Mommy JOI',
url: 'https://yourmomdoesporn.com/channels/mommy-joi',
tags: ['milf'],
parent: 'fullpornnetwork',
},
{
slug: 'milfpornsite',
name: 'MILF Porn Site',
url: 'https://yourmomdoesporn.com/channels/MILF-porn-site/',
tags: ['milf'],
parent: 'fullpornnetwork',
},
{
slug: 'mugfucked',
name: 'Mugfucked',
url: 'https://mugfucked.com',
url: 'https://fullpornnetwork.com/channels/mugfucked',
tags: ['facefucking', 'blowjob'],
parent: 'fullpornnetwork',
},
{
slug: 'badfamilypov',
name: 'Bad Family POV',
url: 'https://badfamilypov.com',
tags: ['family', 'pov'],
parent: 'fullpornnetwork',
},
{
slug: 'badmommypov',
name: 'Bad Mommy POV',
url: 'https://badmommypov.com',
tags: ['milf', 'pov'],
parent: 'fullpornnetwork',
},
{
slug: 'baddaddypov',
name: 'Bad Daddy POV',
alias: ['bdpov'],
url: 'https://baddaddypov.com',
tags: ['pov', 'family'],
parent: 'fullpornnetwork',
},
{
slug: 'badsisterpov',
name: 'Bad Sister POV',
url: 'https://badfamilypov.com/channels/bad-sister-pov',
tags: ['family', 'pov'],
parent: 'fullpornnetwork',
},
{
slug: 'badbrotherpov',
name: 'Bad Brother POV',
url: 'https://badfamilypov.com/channels/bad-brother-pov',
tags: ['family', 'pov'],
parent: 'fullpornnetwork',
},
{
slug: 'sisterjoi',
name: 'Sister JOI',
url: 'https://badfamilypov.com/channels/sister-joi',
tags: ['family', 'joi'],
parent: 'fullpornnetwork',
},
{
slug: 'daughterjoi',
name: 'Daughter JOI',
url: 'https://badfamilypov.com/channels/daughter-joi',
tags: ['family', 'joi'],
parent: 'fullpornnetwork',
},
{
slug: 'publicsexdate',
name: 'Public Sex Date',
url: 'https://publicsexdate.com',
tags: ['public'],
parent: 'fullpornnetwork',
},
{
slug: 'abbiemaley',
name: 'Abbie Maley',
url: 'https://abbiemaley.com',
parent: 'fullpornnetwork',
},
{
slug: 'sluttybbws',
name: 'Slutty BBWs',
url: 'https://sluttybbws.com',
parent: 'fullpornnetwork',
},
{
slug: 'teasingandpleasing',
name: 'Teasing And Pleasing',
url: 'https://teasingandpleasing.com',
tags: ['lesbian'],
parent: 'fullpornnetwork',
},
{
slug: 'brokensluts',
name: 'Broken Sluts',
url: 'https://brokensluts.net',
parent: 'fullpornnetwork',
},
{
slug: 'cumdumpsterteens',
name: 'Cum Dumpster Teens',
url: 'https://cumdumpsterteens.com',
parent: 'fullpornnetwork',
},
{
slug: 'downtofuckdating',
name: 'Down To Fuck Dating',
url: 'https://publicsexdate.com/channels/downtofuckdating',
parent: 'fullpornnetwork',
},
{
slug: 'porkvendors',
name: 'Pork Vendors',
url: 'https://porkvendors.com',
parent: 'fullpornnetwork',
},
{
slug: 'realfuckingdating',
name: 'Real Fucking Dating',
url: 'https://publicsexdate.com/channels/realfuckingdating',
parent: 'fullpornnetwork',
},
{
slug: 'shefucksonthefirstdate',
name: 'She Fucks On The First Date',
url: 'https://publicsexdate.com/channels/shefucksonthefirstdate',
parent: 'fullpornnetwork',
},
// GAYWIRE
{
name: 'Bait Bus',

View File

@ -32,11 +32,14 @@ function curateEntity(entity, includeParameters = false) {
|| (entity.parent && { logo: `${entity.parent.slug}/${entity.slug}.png`, thumbnail: `${entity.parent.slug}/thumbs/${entity.slug}.png`, favicon: `${entity.parent.slug}/favicon.png` })))
|| null;
const url = entity.url && new URL(entity.url);
const curatedEntity = entity.id ? {
id: entity.id,
name: entity.name,
url: entity.url,
origin: entity.url && new URL(entity.url).origin,
origin: url?.origin,
pathname: url?.pathname,
description: entity.description,
slug: entity.slug,
type: entity.type,

View File

@ -178,23 +178,10 @@ module.exports = {
naughtyamerica,
tonightsgirlfriend: naughtyamerica,
// full porn network
analbbc: fullpornnetwork,
analized: fullpornnetwork,
analviolation: fullpornnetwork,
archangel: fullpornnetwork,
baddaddypov: fullpornnetwork,
dtfsluts: fullpornnetwork,
girlfaction: fullpornnetwork,
hergape: fullpornnetwork,
homemadeanalwhores: fullpornnetwork,
jamesdeen: fullpornnetwork,
mugfucked: fullpornnetwork,
onlyprince: fullpornnetwork,
pervertgallery: fullpornnetwork,
povperverts: fullpornnetwork,
// etc
'18vr': badoink,
theflourishxxx: theflourish,
fullpornnetwork,
adultempire,
allherluv: missax,
americanpornstar,

View File

@ -21,10 +21,13 @@ function scrapeAll(scenes, channel) {
url: unprint.query.url(actorEl, null, { origin: channel.url }),
}));
release.poster = query.img('.thumbnail img');
const poster = query.img('.thumbnail img');
const teaser = query.video('.thumbnail img', { attribute: 'data-vid' }); // not a mistake, video source is on img tag
if (!poster?.includes('blur')) { // seemingly global SFW
release.poster = poster;
}
if (!teaser?.includes('blur')) { // seemingly global SFW
release.teaser = teaser;
}
@ -34,7 +37,9 @@ function scrapeAll(scenes, channel) {
}
async function fetchLatest(channel, page = 1) {
const url = `${channel.url}/porn-categories/movies/?page=${page}&sort=most-recent`; // parameter order matters for some reason!
const section = channel.pathname?.match(/\/channels\/([\w-]+)/)?.[1] || 'movies';
const url = `${channel.origin}/porn-categories/${section}/?page=${page}&sort=most-recent`; // parameter order matters for some reason!
const res = await unprint.get(url, { selectAll: '.content div[data-setid]' });
if (res.ok) {

View File

@ -182,11 +182,8 @@ const actors = [
// missax
{ entity: 'missax', name: 'Alexis Fawx', fields: ['avatar', 'description'] },
{ entity: 'allherluv', name: 'Krissy Lynn', fields: ['avatar', 'description'] },
// full porn network
{ entity: 'povperverts', name: 'Krissy Lynn', fields: ['avatar', 'description'] },
// etc.
{ entity: 'analvids', name: 'Veronica Leal', fields: ['avatar', 'gender', 'birthCountry', 'nationality', 'age', 'aliases', 'nationality'] },
{ entity: 'archangel', name: 'Summer Brielle', fields: ['avatar', 'description', 'dateOfBirth', 'age', 'measurements', 'height', 'aliases'] },
{ entity: 'bangbros', name: 'Kira Perez', fields: ['avatar', 'gender', 'ethnicity', 'hairColor'] },
{ entity: 'hookuphotshot', name: 'Kenzie Reeves', fields: ['avatar', 'description'] },
{ entity: 'julesjordan', name: 'Vanna Bardot', fields: ['height', 'dateOfBirth', 'measurements', 'description', 'avatar'] },
@ -208,6 +205,7 @@ const actors = [
{ entity: 'tonightsgirlfriend', name: 'Abella Danger', fields: ['avatar'] },
{ entity: 'mariskax', name: 'Honey Demon', fields: ['avatar', 'gender', 'dateOfBirth', 'placeOfBirth', 'measurements', 'height', 'weight', 'hairColor', 'eyes'] },
{ entity: 'pornhub', name: 'Lexi Luna', fields: ['avatar', 'gender', 'ethnicity', 'description', 'birthPlace', 'measurements', 'naturalBoobs', 'height', 'weight', 'hairColor', 'hasPiercings', 'hasTattoos'] },
{ entity: 'fullpornnetwork', name: 'Kenzie Reeves', fields: ['avatar', 'description'] },
];
const actorScrapers = scrapers.actors;