Added screen caps separate from photos. Added Tokyo Hot. Added hair type, shoe size and blood type actor fields.

This commit is contained in:
DebaucheryLibrarian
2023-07-25 03:03:41 +02:00
parent 6fe212796b
commit 693983dc29
32 changed files with 472 additions and 113 deletions

View File

@@ -106,6 +106,21 @@ const ethnicities = {
white: 'white',
};
const bloodTypes = {
A: 'A',
'A+': 'A+',
'A-': 'A-',
B: 'B',
'B+': 'B+',
'B-': 'B-',
AB: 'AB',
'AB+': 'AB+',
'AB-': 'AB-',
O: 'O',
'O+': 'O+',
'O-': 'O-',
};
function getBoolean(value) {
if (typeof value === 'boolean') {
return value;
@@ -195,6 +210,7 @@ function toBaseActors(actorsOrNames, release) {
name,
slug,
entryId: (entity && (entryId || actorOrName.entryId)) || null,
suppliedEntryId: entryId,
entity,
hasProfile: !!actorOrName.name, // actor contains profile information
};
@@ -257,12 +273,15 @@ function curateActor(actor, withDetails = false, isProfile = false) {
circumcised: actor.circumcised,
height: actor.height,
weight: actor.weight,
shoeSize: actor.shoe_size,
eyes: actor.eyes,
hairColor: actor.hair_color,
hairType: actor.hair_type,
hasTattoos: actor.has_tattoos,
hasPiercings: actor.has_piercings,
tattoos: actor.tattoos,
piercings: actor.piercings,
bloodType: actor.blood_type,
...(isProfile && { description: actor.description }),
placeOfBirth: actor.birth_country && {
country: {
@@ -347,12 +366,15 @@ function curateProfileEntry(profile) {
natural_boobs: profile.naturalBoobs,
height: profile.height,
weight: profile.weight,
shoe_size: profile.shoeSize,
hair_color: profile.hairColor,
hair_type: profile.hairType,
eyes: profile.eyes,
has_tattoos: profile.hasTattoos,
has_piercings: profile.hasPiercings,
piercings: profile.piercings,
tattoos: profile.tattoos,
blood_type: profile.bloodType,
avatar_media_id: profile.avatarMediaId || null,
};
@@ -386,6 +408,7 @@ async function curateProfile(profile, actor) {
curatedProfile.nationality = profile.nationality?.trim() || null; // used to derive country when country not available
curatedProfile.ethnicity = ethnicities[profile.ethnicity?.trim().toLowerCase()] || null;
curatedProfile.hairType = profile.hairType?.trim() || null;
curatedProfile.hairColor = hairColors[(profile.hairColor || profile.hair)?.toLowerCase().replace('hair', '').trim()] || null;
curatedProfile.eyes = eyeColors[profile.eyes?.trim().toLowerCase()] || null;
@@ -411,6 +434,7 @@ async function curateProfile(profile, actor) {
curatedProfile.height = Number(profile.height) || profile.height?.match?.(/\d+/)?.[0] || null;
curatedProfile.weight = Number(profile.weight) || profile.weight?.match?.(/\d+/)?.[0] || null;
curatedProfile.shoeSize = Number(profile.shoeSize) || profile.shoeSize?.match?.(/\d+/)?.[0] || null;
// separate measurement values
curatedProfile.cup = profile.cup || (typeof profile.bust === 'string' && profile.bust?.match?.(/[a-zA-Z]+/)?.[0]) || null;
@@ -435,6 +459,7 @@ async function curateProfile(profile, actor) {
curatedProfile.naturalBoobs = getBoolean(profile.naturalBoobs);
curatedProfile.hasTattoos = getBoolean(profile.hasTattoos);
curatedProfile.hasPiercings = getBoolean(profile.hasPiercings);
curatedProfile.bloodType = bloodTypes[profile.bloodType?.trim().toUpperCase()] || null;
if (argv.resolvePlace) {
const [placeOfBirth, placeOfResidence] = await Promise.all([
@@ -564,6 +589,7 @@ async function interpolateProfiles(actorIdsOrNames) {
'bust',
'waist',
'hip',
'shoe_size',
'penis_length',
'penis_girth',
'circumcised',
@@ -571,6 +597,7 @@ async function interpolateProfiles(actorIdsOrNames) {
'eyes',
'has_tattoos',
'has_piercings',
'blood_type',
].reduce((acc, property) => ({
...acc,
[property]: getMostFrequent(valuesByProperty[property]),