Improved Team Skeet profile scraper.

This commit is contained in:
DebaucheryLibrarian
2020-07-23 21:00:16 +02:00
parent 126fd5c0ff
commit bfd54e94e7
117 changed files with 23 additions and 9 deletions

View File

@@ -67,10 +67,15 @@ function scrapeScene(scene) {
function scrapeProfile(actor) {
const profile = {};
// TODO: split bio https://store.psmcdn.net/ts-organic-iiiokv9kyo/modelsContent/valerie-white.json
if (actor.bio.about && !/\band\b/.test(actor.bio.about)) {
const bio = actor.bio.about.split(/\n/).filter(Boolean).reduce((acc, item) => {
const [key, value] = item.match(/(.+): (.+)/).slice(1);
return { ...acc, [slugify(key, '_')]: value.trim() };
}, {});
// birthdate seems never/rarely correct
const measurements = actor.bio.about.match(/Measurements: (\d+)(\w+)-(\d+)-(\d+)/i);
const measurements = bio.measurements?.match(/Measurements: (\d+)(\w+)-(\d+)-(\d+)/i);
if (measurements) {
[profile.bust, profile.cup, profile.waist, profile.hip] = measurements.slice(1);
@@ -82,18 +87,27 @@ function scrapeProfile(actor) {
}
}
profile.nationality = actor.bio.about.match(/Nationality: (\w+)/i)?.[1];
profile.ethnicity = actor.bio.about.match(/Ethnicity: (\w+)/i)?.[1];
profile.hairColor = actor.bio.about.match(/Hair Color: (\w+)/i)?.[1];
profile.birthPlace = bio.birth_location;
profile.nationality = bio.nationality;
profile.ethnicity = bio.ethnicity;
profile.hairColor = bio.hair_color;
const piercings = actor.bio.about.match(/Piercings: (\w+)/i)?.[1];
const tattoos = actor.bio.about.match(/Tattoos: (\w+)/i)?.[1];
if (slugify(piercings) === 'yes') profile.hasPiercings = true;
if (slugify(piercings) === 'no') profile.hasPiercings = false;
if (/yes|various/i.test(piercings)) profile.hasPiercings = true;
else if (/no/i.test(piercings)) profile.hasPiercings = false;
else if (bio.piercings) {
profile.hasPiercings = true;
profile.piercings = piercings;
}
if (slugify(tattoos) === 'yes') profile.hasTattoos = true;
if (slugify(tattoos) === 'no') profile.hasTattoos = false;
if (/yes|various/i.test(tattoos)) profile.hasTattoos = true;
else if (/no/i.test(tattoos)) profile.hasTattoos = false;
else if (bio.tattoos) {
profile.hasTattoos = true;
profile.tattoos = tattoos;
}
}
if (actor.bio.heightFeet && actor.bio.heightInches) {