Allowing release scrapers to return actor details. Added True Amateurs.

This commit is contained in:
2020-02-09 23:25:54 +01:00
parent 739d2de297
commit 139f0ce7cb
62 changed files with 47 additions and 20 deletions

View File

@@ -7,6 +7,11 @@ const slugify = require('../utils/slugify');
const clusterId = '617fb597b659459bafe6472470d9073a';
const authKey = 'YmFuZy1yZWFkOktqVDN0RzJacmQ1TFNRazI=';
const genderMap = {
M: 'male',
F: 'female',
};
function getScreenUrl(item, scene) {
return `https://i.bang.com/screenshots/${scene.dvd.id}/movie/${scene.order}/${item.screenId}.jpg`;
}
@@ -37,7 +42,6 @@ function scrapeScene(scene, site) {
entryId: scene.id,
title: scene.name,
description: scene.description,
actors: scene.actors.map(actor => actor.name),
tags: scene.genres.concat(scene.actions).map(genre => genre.name),
duration: scene.duration,
};
@@ -48,6 +52,8 @@ function scrapeScene(scene, site) {
const date = new Date(scene.releaseDate);
release.date = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()));
release.actors = scene.actors.map(actor => ({ name: actor.name, gender: genderMap[actor.gender] }));
if (scene.is4k) release.tags.push('4k');
if (scene.gay) release.tags.push('gay');

View File

@@ -106,7 +106,7 @@ async function scrapeApiReleases(json, site) {
else if (site.parameters?.scene !== false) release.url = `${site.url}/en/video${release.path}`;
release.date = moment.utc(scene.release_date, 'YYYY-MM-DD').toDate();
release.actors = scene.actors.map(({ name }) => name);
release.actors = scene.actors.map(actor => ({ name: actor.name, gender: actor.gender }));
release.director = scene.directors[0]?.name || null;
release.tags = scene.master_categories
@@ -198,15 +198,21 @@ async function scrapeScene(html, url, site, scrapedRelease) {
if (data.director?.[0]?.name) release.director = data.director[0].name;
else if (data2?.director?.[0]?.name) release.director = data2.director[0].name;
const actors = data?.actor || data2?.actor || [];
release.actors = actors.map(actor => actor.name);
const stars = (data.aggregateRating.ratingValue / data.aggregateRating.bestRating) * 5;
if (stars) release.rating = { stars };
release.duration = moment.duration(data.duration.slice(2)).asSeconds();
}
const actors = data?.actor || data2?.actor;
if (actors) {
release.actors = actors.map(actor => ({
name: actor.name,
gender: actor.gender,
}));
}
const hasTrans = release.actors.some(actor => actor.gender === 'shemale');
const rawTags = data?.keywords?.split(', ') || data2?.keywords?.split(', ');
release.tags = hasTrans ? [...rawTags, 'transsexual'] : rawTags;
@@ -440,7 +446,7 @@ async function fetchUpcoming(site) {
}
function getDeepUrl(url, site, release) {
const pathname = release.path || new URL(url).pathname;
const pathname = release?.path || new URL(url).pathname;
if (site.parameters?.deep === 'network') {
return `${site.network.url}${pathname}`;

View File

@@ -40,7 +40,7 @@ function scrapeLatestX(data, site) {
const hostname = site.parameters?.native ? site.url : site.network.url;
const url = `${hostname}/scene/${entryId}/`;
const date = new Date(data.dateReleased);
const actors = data.actors.map(actor => actor.name);
const actors = data.actors.map(actor => ({ name: actor.name, gender: actor.gender }));
const tags = data.tags.map(tag => tag.name);
@@ -83,7 +83,7 @@ function scrapeScene(data, url, _site, networkName) {
release.description = description;
release.date = new Date(data.dateReleased);
release.actors = data.actors.map(actor => actor.name);
release.actors = data.actors.map(actor => ({ name: actor.name, gender: actor.gender }));
release.tags = data.tags.map(tag => tag.name);

View File

@@ -34,7 +34,7 @@ async function fetchClassic(site, page) {
}
async function fetchLatestWrap(site, page = 1) {
if (site.parameters && site.parameters.classic) {
if (site.parameters?.classic) {
return fetchClassic(site, page);
}