2020-02-06 22:15:28 +00:00
|
|
|
'use strict';
|
|
|
|
|
2020-02-07 00:59:43 +00:00
|
|
|
const argv = require('../argv');
|
2020-02-06 22:15:28 +00:00
|
|
|
const { fetchLatest, fetchApiLatest, fetchUpcoming, fetchApiUpcoming, fetchScene, fetchProfile, fetchApiProfile } = require('./gamma');
|
|
|
|
|
|
|
|
function extractLowArtActors(release) {
|
|
|
|
const actors = release.title
|
|
|
|
.replace(/solo/i, '')
|
|
|
|
.split(/,|\band\b/ig)
|
|
|
|
.map(actor => actor.trim());
|
|
|
|
|
|
|
|
return {
|
|
|
|
...release,
|
|
|
|
actors,
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
async function networkFetchLatest(site, page = 1) {
|
|
|
|
if (site.parameters?.api) return fetchApiLatest(site, page, false);
|
|
|
|
|
|
|
|
const releases = await fetchLatest(site, page);
|
|
|
|
|
|
|
|
if (site.slug === 'lowartfilms') {
|
|
|
|
return releases.map(release => extractLowArtActors(release));
|
|
|
|
}
|
|
|
|
|
|
|
|
return releases;
|
|
|
|
}
|
|
|
|
|
|
|
|
async function networkFetchScene(url, site) {
|
|
|
|
const release = await fetchScene(url, site);
|
|
|
|
|
|
|
|
if (site.slug === 'lowartfilms') {
|
|
|
|
return extractLowArtActors(release);
|
|
|
|
}
|
|
|
|
|
|
|
|
return release;
|
|
|
|
}
|
|
|
|
|
|
|
|
async function networkFetchUpcoming(site, page = 1) {
|
|
|
|
if (site.parameters?.api) return fetchApiUpcoming(site, page, true);
|
|
|
|
|
|
|
|
return fetchUpcoming(site, page);
|
|
|
|
}
|
|
|
|
|
2020-02-07 00:59:43 +00:00
|
|
|
function getActorReleasesUrl(actorPath, page = 1) {
|
|
|
|
return `https://www.peternorth.com/en/videos/All-Categories/0${actorPath}/All-Dvds/0/latest/${page}`;
|
|
|
|
}
|
|
|
|
|
2020-02-06 22:15:28 +00:00
|
|
|
async function networkFetchProfile(actorName) {
|
|
|
|
// not all Fame Digital sites offer Gamma actors
|
|
|
|
const [devils, rocco, peter] = await Promise.all([
|
|
|
|
fetchApiProfile(actorName, 'devilsfilm', true),
|
|
|
|
fetchApiProfile(actorName, 'roccosiffredi'),
|
2020-02-07 00:59:43 +00:00
|
|
|
argv.withReleases ? fetchProfile(actorName, 'peternorth', true, getActorReleasesUrl) : [],
|
2020-02-06 22:15:28 +00:00
|
|
|
]);
|
|
|
|
|
|
|
|
if (devils || rocco || peter) {
|
|
|
|
const releases = [].concat(devils?.releases || [], rocco?.releases || [], peter?.releases || []);
|
|
|
|
|
|
|
|
return {
|
|
|
|
...peter,
|
|
|
|
...rocco,
|
|
|
|
...devils,
|
|
|
|
releases,
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
fetchLatest: networkFetchLatest,
|
|
|
|
fetchProfile: networkFetchProfile,
|
|
|
|
fetchScene: networkFetchScene,
|
|
|
|
fetchUpcoming: networkFetchUpcoming,
|
|
|
|
};
|