Added profile scraping in try/catch block. Re-added boobs enhanced info to actor page.

This commit is contained in:
ThePendulum 2019-11-21 11:43:07 +01:00
parent 31a8f1cac1
commit de36ed97e4
2 changed files with 34 additions and 30 deletions

View File

@ -73,12 +73,12 @@
<li v-if="actor.bust || actor.waist || actor.hip"> <li v-if="actor.bust || actor.waist || actor.hip">
<dfn class="bio-heading">Measurements</dfn> <dfn class="bio-heading">Measurements</dfn>
<span>{{ actor.bust || '??' }}-{{ actor.waist || '??' }}-{{ actor.hip || '??' }}</span> <span>{{ actor.bust || '??' }}-{{ actor.waist || '??' }}-{{ actor.hip || '??' }} <span v-if="actor.naturalBoobs !== undefined">({{ actor.naturalBoobs ? 'Natural' : 'Enhanced' }})</span></span>
</li> </li>
<li v-if="actor.social && actor.social.length > 0"> <li v-if="actor.social && actor.social.length > 0">
<dfn class="bio-heading">Social</dfn> <dfn class="bio-heading">Social</dfn>
<span v-for="social in actor.social">{{ social }}</span> {{ actor.social.join(',') }}
</li> </li>
</ul> </ul>

View File

@ -183,39 +183,43 @@ function mergeProfiles(profiles, actor) {
async function scrapeActors(actorNames) { async function scrapeActors(actorNames) {
await Promise.map(actorNames || argv.actors, async (actorName) => { await Promise.map(actorNames || argv.actors, async (actorName) => {
const actorSlug = actorName.toLowerCase().replace(/\s+/g, '-'); try {
const actorSlug = actorName.toLowerCase().replace(/\s+/g, '-');
const actorEntry = await knex('actors').where({ slug: actorSlug }).first(); const actorEntry = await knex('actors').where({ slug: actorSlug }).first();
const profiles = await Promise.all( const profiles = await Promise.all(
Object.values(scrapers.actors) Object.values(scrapers.actors)
.map(scraper => scraper.fetchProfile(actorEntry ? actorEntry.name : actorName)), .map(scraper => scraper.fetchProfile(actorEntry ? actorEntry.name : actorName)),
); );
const profile = mergeProfiles(profiles, actorEntry); const profile = mergeProfiles(profiles, actorEntry);
if (profile === null) { if (profile === null) {
console.log(`Could not find profile for actor '${actorName}'`); console.log(`Could not find profile for actor '${actorName}'`);
await updateActor(profile, true, false); await updateActor(profile, true, false);
return; return;
}
if (actorEntry && profile) {
await createActorMediaDirectory(profile, actorEntry);
await Promise.all([
updateActor(profile, true, true),
storeAvatars(profile, actorEntry),
]);
return;
}
const newActorEntry = await storeActor(profile, true, true);
await createActorMediaDirectory(profile, newActorEntry);
await storeAvatars(profile, newActorEntry);
} catch (error) {
console.warn(actorName, error);
} }
if (actorEntry && profile) {
await createActorMediaDirectory(profile, actorEntry);
await Promise.all([
updateActor(profile, true, true),
storeAvatars(profile, actorEntry),
]);
return;
}
const newActorEntry = await storeActor(profile, true, true);
await createActorMediaDirectory(profile, newActorEntry);
await storeAvatars(profile, newActorEntry);
}, { }, {
concurrency: 3, concurrency: 3,
}); });