Improved Model Media profile scraper for Delphine, added test.

This commit is contained in:
DebaucheryLibrarian 2026-02-06 17:15:42 +01:00
parent d4b73b6dd3
commit 93df88768c
4 changed files with 9 additions and 9 deletions

View File

@ -200,7 +200,7 @@ module.exports = {
// model media // model media
jerkaoke: modelmedia, jerkaoke: modelmedia,
modelmediaasia: modelmedia, modelmediaasia: modelmedia,
// delphine: modelmedia, delphine: modelmedia,
// etc // etc
'18vr': badoink, '18vr': badoink,
theflourishxxx: theflourish, theflourishxxx: theflourish,

View File

@ -204,8 +204,8 @@ async function fetchProfileApi(actor, { entity, parameters }) {
return null; return null;
} }
function scrapeProfile({ query }) { function scrapeProfile({ query }, url) {
const profile = {}; const profile = { url };
const avatar = query.img('div[class*="prof-pic"] > img'); const avatar = query.img('div[class*="prof-pic"] > img');
if (avatar) { if (avatar) {
@ -216,12 +216,11 @@ function scrapeProfile({ query }) {
} }
profile.description = query.content('h2') || null; profile.description = query.content('h2') || null;
profile.height = query.number('//span[text()="Height"]/following-sibling::span', { match: /(\d+) cm/, matchIndex: 1 }); profile.height = query.number('//span[text()="Height"]/following-sibling::node()[self::span or self::text()]', { match: /(\d+) cm/, matchIndex: 1 });
profile.weight = query.number('//span[text()="Weight"]/following-sibling::span', { match: /(\d+) kg/, matchIndex: 1 }); profile.weight = query.number('//span[text()="Weight"]/following-sibling::node()[self::span or self::text()]', { match: /(\d+) kg/, matchIndex: 1 });
// can't find a single profile wiht this information available, but add for good measure profile.measurements = query.content('//span[text()="Measurements"]/following-sibling::node()[self::span or self::text()]');
profile.measurements = query.content('//span[text()="Measurements"]/following-sibling::span'); profile.birthPlace = query.content('//span[text()="Birth Place"]/following-sibling::node()[self::span or self::text()]');
profile.birthPlace = query.number('//span[text()="Birth Place"]/following-sibling::span');
profile.banner = query.img('div[class*="banner"] > img'); profile.banner = query.img('div[class*="banner"] > img');
profile.photos = query.imgs('#MusModelSwiper img'); profile.photos = query.imgs('#MusModelSwiper img');

View File

@ -121,7 +121,7 @@ module.exports = {
cumlouder, cumlouder,
czechav, czechav,
pornworld, pornworld,
// delphine: modelmedia, delphine: modelmedia,
dorcel, dorcel,
elegantangel: adultempire, elegantangel: adultempire,
exploitedx, exploitedx,

View File

@ -215,6 +215,7 @@ const actors = [
// model media // model media
{ entity: 'jerkaoke', name: 'Harley Haze', fields: ['avatar', 'description', 'height', 'weight', 'banner', 'photos'] }, { entity: 'jerkaoke', name: 'Harley Haze', fields: ['avatar', 'description', 'height', 'weight', 'banner', 'photos'] },
{ entity: 'modelmediaasia', name: 'Li WeiWei', fields: ['avatar', 'entryId', 'gender', 'alias', 'height', 'weight', 'bust', 'waist', 'hip', 'socials'] }, { entity: 'modelmediaasia', name: 'Li WeiWei', fields: ['avatar', 'entryId', 'gender', 'alias', 'height', 'weight', 'bust', 'waist', 'hip', 'socials'] },
{ entity: 'delphine', name: 'Bridgette B', fields: ['avatar', 'measurements', 'birthPlace'] },
// etc. // etc.
{ entity: 'analvids', name: 'Veronica Leal', fields: ['avatar', 'gender', 'birthCountry', 'nationality', 'age', 'aliases', 'nationality'] }, { entity: 'analvids', name: 'Veronica Leal', fields: ['avatar', 'gender', 'birthCountry', 'nationality', 'age', 'aliases', 'nationality'] },
{ entity: 'bangbros', name: 'Kira Perez', fields: ['avatar', 'gender', 'ethnicity', 'hairColor'] }, { entity: 'bangbros', name: 'Kira Perez', fields: ['avatar', 'gender', 'ethnicity', 'hairColor'] },