Added ExploitedX profile tests, fixed bio queries.

This commit is contained in:
DebaucheryLibrarian 2026-01-27 04:43:59 +01:00
parent fd8a2c346b
commit 0d20872489
3 changed files with 19 additions and 9 deletions

View File

@ -193,6 +193,7 @@ module.exports = {
// etc
'18vr': badoink,
theflourishxxx: theflourish,
exploitedx, // only from known URL that will specify site
fullpornnetwork,
adultempire,
allherluv: missax,
@ -213,7 +214,6 @@ module.exports = {
cumlouder,
dorcelclub: dorcel,
doubleviewcasting: firstanalquest,
exploitedx, // only from known URL that will specify site
firstanalquest,
freeones,
hitzefrei,

View File

@ -75,10 +75,11 @@ function scrapeScene({ query }, { url }) {
function scrapeProfile({ query }, _entity) {
const profile = {};
const bio = Object.fromEntries(query.all('.detail-div p').map((detailEl) => [
slugify(unprint.query.content(detailEl, 'strong'), '_'),
unprint.query.text(detailEl),
]));
// all three selectors still apply to different sites
const keys = query.contents('h1 + div strong, .bio-items li strong, .detail-div p strong');
const values = query.texts('h1 + div, .bio-items li, .detail-div p', { join: false }).flat();
const bio = Object.fromEntries(keys.map((key, index) => [slugify(key, '_'), values[index]]));
profile.age = Number(bio.age) || null;
profile.height = convert(bio.height, 'cm');
@ -86,15 +87,18 @@ function scrapeProfile({ query }, _entity) {
profile.description = [
bio.favorite_position && `Favorite position: ${bio.favorite_position}`,
bio.favorite_sex_toy && `Favorite sex toy: ${bio.favorite_sex_toy}`,
bio.likes && `Likes: ${bio.likes}`,
].filter(Boolean).join('\n');
].filter(Boolean).join('\n') || null;
profile.avatar = [
query.img('.model_bio_thumb', { attribute: 'src0_2x' }),
query.img('.model_bio_thumb', { attribute: 'src0_1x' }),
query.img('.model_bio_thumb', { attribute: 'src0_3x' }), // too big
query.img('.model-bio__image, .model_bio_thumb', { attribute: 'src0_2x' }),
query.img('.model-bio__image, .model_bio_thumb', { attribute: 'src0_1x' }),
query.img('.model-bio__image, .model_bio_thumb', { attribute: 'src0_3x' }), // too big
];
console.log(bio);
return profile;
}

View File

@ -199,6 +199,12 @@ const actors = [
{ entity: 'julesjordan', name: 'Vanna Bardot', fields: ['height', 'dateOfBirth', 'measurements', 'description', 'avatar'] },
{ entity: 'amateurallure', name: 'Ava Amira', fields: ['avatar', 'description'] },
{ entity: 'swallowsalon', name: 'Abella Danger', fields: ['avatar'] },
// exploitedx
{ entity: 'exploitedx', name: 'Amber Moore', url: 'https://exploitedcollegegirls.com/models/AmberMoore.html', fields: ['avatar', 'description', 'age', 'height', 'measurements'] },
{ entity: 'exploitedx', name: 'Amber Moore', url: 'https://bbcsurprise.com/models/AmberMoore.html', fields: ['avatar', 'age'] },
{ entity: 'exploitedx', name: 'Megan Marx', url: 'https://excogigirls.com/models/megan-marx.html', fields: ['avatar', 'description', 'age', 'height', 'measurements'] },
{ entity: 'exploitedx', name: 'Sophie Hunt', url: 'https://www.backroomcastingcouch.com/models/Sophie-Hunt.html', fields: ['avatar', 'age'] },
{ entity: 'exploitedx', name: 'Lao Latina', url: 'https://hotmilfsfuck.com/models/Lao-Latina.html', fields: ['avatar', 'description', 'age', 'height', 'measurements'] },
// etc.
{ entity: 'analvids', name: 'Veronica Leal', fields: ['avatar', 'gender', 'birthCountry', 'nationality', 'age', 'aliases', 'nationality'] },
{ entity: 'bangbros', name: 'Kira Perez', fields: ['avatar', 'gender', 'ethnicity', 'hairColor'] },