diff --git a/src/scrapers/actors.js b/src/scrapers/actors.js index 909bb965..4d02f1f1 100644 --- a/src/scrapers/actors.js +++ b/src/scrapers/actors.js @@ -200,7 +200,7 @@ module.exports = { // model media jerkaoke: modelmedia, modelmediaasia: modelmedia, - // delphine: modelmedia, + delphine: modelmedia, // etc '18vr': badoink, theflourishxxx: theflourish, diff --git a/src/scrapers/modelmedia.js b/src/scrapers/modelmedia.js index 7f42e68f..c30d28fb 100644 --- a/src/scrapers/modelmedia.js +++ b/src/scrapers/modelmedia.js @@ -204,8 +204,8 @@ async function fetchProfileApi(actor, { entity, parameters }) { return null; } -function scrapeProfile({ query }) { - const profile = {}; +function scrapeProfile({ query }, url) { + const profile = { url }; const avatar = query.img('div[class*="prof-pic"] > img'); if (avatar) { @@ -216,12 +216,11 @@ function scrapeProfile({ query }) { } profile.description = query.content('h2') || null; - profile.height = query.number('//span[text()="Height"]/following-sibling::span', { match: /(\d+) cm/, matchIndex: 1 }); - profile.weight = query.number('//span[text()="Weight"]/following-sibling::span', { match: /(\d+) kg/, 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::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::span'); - profile.birthPlace = query.number('//span[text()="Birth Place"]/following-sibling::span'); + profile.measurements = query.content('//span[text()="Measurements"]/following-sibling::node()[self::span or self::text()]'); + profile.birthPlace = query.content('//span[text()="Birth Place"]/following-sibling::node()[self::span or self::text()]'); profile.banner = query.img('div[class*="banner"] > img'); profile.photos = query.imgs('#MusModelSwiper img'); diff --git a/src/scrapers/releases.js b/src/scrapers/releases.js index 4bedaa25..a56bf865 100644 --- a/src/scrapers/releases.js +++ b/src/scrapers/releases.js @@ -121,7 +121,7 @@ module.exports = { cumlouder, czechav, pornworld, - // delphine: modelmedia, + delphine: modelmedia, dorcel, elegantangel: adultempire, exploitedx, diff --git a/tests/profiles.js b/tests/profiles.js index f8a1e93b..e77eb21e 100644 --- a/tests/profiles.js +++ b/tests/profiles.js @@ -215,6 +215,7 @@ const actors = [ // model media { 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: 'delphine', name: 'Bridgette B', fields: ['avatar', 'measurements', 'birthPlace'] }, // etc. { entity: 'analvids', name: 'Veronica Leal', fields: ['avatar', 'gender', 'birthCountry', 'nationality', 'age', 'aliases', 'nationality'] }, { entity: 'bangbros', name: 'Kira Perez', fields: ['avatar', 'gender', 'ethnicity', 'hairColor'] },