Added profile scraper tests (WIP), fixed some profile scrapers. Fixed slugify not breaking existing slugs.
This commit is contained in:
@@ -254,7 +254,7 @@ async function scrapeProfile({ query, el }, channel, options) {
|
||||
};
|
||||
}, {});
|
||||
|
||||
if (bio.date_of_birth) profile.birthdate = qu.extractDate(bio.date_of_birth, 'MMMM D, YYYY');
|
||||
if (bio.date_of_birth) profile.dateOfBirth = qu.extractDate(bio.date_of_birth, 'MMMM D, YYYY');
|
||||
if (bio.birthplace) profile.birthPlace = bio.birthplace;
|
||||
if (bio.fun_fact) profile.description = bio.fun_fact;
|
||||
|
||||
@@ -262,6 +262,7 @@ async function scrapeProfile({ query, el }, channel, options) {
|
||||
|
||||
if (bio.height) profile.height = Number(bio.height.match(/^\d{2,3}/)?.[0]);
|
||||
if (bio.weight) profile.weight = Number(bio.weight.match(/^\d{2,3}/)?.[0]);
|
||||
if (bio.shoe_size) profile.foot = Number(bio.shoe_size);
|
||||
|
||||
profile.measurements = bio.measurements;
|
||||
|
||||
@@ -280,7 +281,7 @@ async function scrapeProfile({ query, el }, channel, options) {
|
||||
|
||||
if (bio.aliases) profile.aliases = bio.aliases.split(',').map((alias) => alias.trim());
|
||||
|
||||
profile.social = [bio.onlyfans, bio.twitter, bio.instagram, bio.domain].filter(Boolean);
|
||||
profile.socials = [bio.onlyfans, bio.twitter, bio.instagram, bio.domain].filter(Boolean);
|
||||
|
||||
profile.avatar = [
|
||||
query.img('.profile-pic img', 'src0_3x', { origin: channel.url }),
|
||||
@@ -327,29 +328,29 @@ async function fetchScene(url, site, baseRelease) {
|
||||
return scrapeScene(res.item, site, url, baseRelease);
|
||||
}
|
||||
|
||||
async function fetchProfile({ name: actorName }, { site }, options) {
|
||||
async function fetchProfile({ name: actorName }, { channel }, options) {
|
||||
const actorSlugA = slugify(actorName, '');
|
||||
const actorSlugB = slugify(actorName);
|
||||
|
||||
const t1 = site.parameters?.t1 ? 't1/' : '';
|
||||
const t1 = channel.parameters?.t1 ? 't1/' : '';
|
||||
|
||||
const res1 = site.parameters?.profile
|
||||
? await qu.get(util.format(site.parameters.profile, actorSlugA))
|
||||
: await qu.get(`${site.url}/${t1}models/${actorSlugA}.html`, null, null, { followRedirects: false });
|
||||
const res1 = channel.parameters?.profile
|
||||
? await qu.get(util.format(channel.parameters.profile, actorSlugA))
|
||||
: await qu.get(`${channel.url}/${t1}models/${actorSlugA}.html`, null, null, { followRedirects: false });
|
||||
|
||||
const res = (res1.ok && res1)
|
||||
|| (site.parameters?.profile && await qu.get(util.format(site.parameters.profile, actorSlugB)))
|
||||
|| await qu.get(`${site.url}/${t1}models/${actorSlugB}.html`, null, null, { followRedirects: false });
|
||||
|| (channel.parameters?.profile && await qu.get(util.format(channel.parameters.profile, actorSlugB)))
|
||||
|| await qu.get(`${channel.url}/${t1}models/${actorSlugB}.html`, null, null, { followRedirects: false });
|
||||
|
||||
if (!res.ok) {
|
||||
return res.status;
|
||||
}
|
||||
|
||||
if (site.parameters?.t1) {
|
||||
return scrapeProfileT1(res.item, site);
|
||||
if (channel.parameters?.t1) {
|
||||
return scrapeProfileT1(res.item, channel);
|
||||
}
|
||||
|
||||
return scrapeProfile(res.item, site, options);
|
||||
return scrapeProfile(res.item, channel, options);
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
|
||||
Reference in New Issue
Block a user