Passing network channels as site scopes in Gamma API profile scraper.
This commit is contained in:
@@ -886,7 +886,6 @@ const networks = [
|
|||||||
layout: 'api',
|
layout: 'api',
|
||||||
sceneMovies: false,
|
sceneMovies: false,
|
||||||
actorScenes: 'https://www.xempire.com/en/videos/xempire/latest/{page}/All-Categories/0{actorPath}',
|
actorScenes: 'https://www.xempire.com/en/videos/xempire/latest/{page}/All-Categories/0{actorPath}',
|
||||||
actorAvailableOnSites: ['allblackx', 'darkx', 'eroticax', 'hardx', 'lesbianx', 'xempire', 'xempirepartners'],
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -716,27 +716,6 @@ async function scrapeProfile({ query }, url, actorName, _siteSlug, getActorRelea
|
|||||||
return profile;
|
return profile;
|
||||||
}
|
}
|
||||||
|
|
||||||
function scrapeApiProfile(data, releases, siteSlug) {
|
|
||||||
const profile = {};
|
|
||||||
|
|
||||||
if (data.male === 1) profile.gender = 'male';
|
|
||||||
if (data.female === 1) profile.gender = 'female';
|
|
||||||
if (data.shemale === 1 || data.trans === 1) profile.gender = 'transsexual';
|
|
||||||
|
|
||||||
if (data.description) profile.description = data.description.trim();
|
|
||||||
|
|
||||||
if (data.attributes.ethnicity) profile.ethnicity = data.attributes.ethnicity;
|
|
||||||
if (data.attributes.eye_color) profile.eyes = data.attributes.eye_color;
|
|
||||||
if (data.attributes.hair_color) profile.hairColor = data.attributes.hair_color;
|
|
||||||
|
|
||||||
const avatarPaths = Object.values(data.pictures).reverse();
|
|
||||||
if (avatarPaths.length > 0) profile.avatar = avatarPaths.map((avatarPath) => `https://images01-evilangel.gammacdn.com/actors${avatarPath}`);
|
|
||||||
|
|
||||||
if (releases) profile.releases = releases.map((release) => `https://${siteSlug}.com/en/video/${release.url_title}/${release.clip_id}`);
|
|
||||||
|
|
||||||
return profile;
|
|
||||||
}
|
|
||||||
|
|
||||||
async function fetchUpcomingApi(site, page = 1, options, preData) {
|
async function fetchUpcomingApi(site, page = 1, options, preData) {
|
||||||
return fetchLatestApi(site, page, options, preData, true);
|
return fetchLatestApi(site, page, options, preData, true);
|
||||||
}
|
}
|
||||||
@@ -925,6 +904,27 @@ async function fetchProfile({ name: actorName }, context, include, altSearchUrl,
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function scrapeApiProfile(data, releases, siteSlug) {
|
||||||
|
const profile = {};
|
||||||
|
|
||||||
|
if (data.male === 1) profile.gender = 'male';
|
||||||
|
if (data.female === 1) profile.gender = 'female';
|
||||||
|
if (data.shemale === 1 || data.trans === 1) profile.gender = 'transsexual';
|
||||||
|
|
||||||
|
if (data.description) profile.description = data.description.trim();
|
||||||
|
|
||||||
|
if (data.attributes.ethnicity) profile.ethnicity = data.attributes.ethnicity;
|
||||||
|
if (data.attributes.eye_color) profile.eyes = data.attributes.eye_color;
|
||||||
|
if (data.attributes.hair_color) profile.hairColor = data.attributes.hair_color;
|
||||||
|
|
||||||
|
const avatarPaths = Object.values(data.pictures).reverse();
|
||||||
|
if (avatarPaths.length > 0) profile.avatar = avatarPaths.map((avatarPath) => `https://images01-evilangel.gammacdn.com/actors${avatarPath}`);
|
||||||
|
|
||||||
|
if (releases) profile.releases = releases.map((release) => `https://${siteSlug}.com/en/video/${release.url_title}/${release.clip_id}`);
|
||||||
|
|
||||||
|
return profile;
|
||||||
|
}
|
||||||
|
|
||||||
async function fetchApiProfile({ name: actorName }, context, include) {
|
async function fetchApiProfile({ name: actorName }, context, include) {
|
||||||
const siteSlug = context.entity.slug || context.site?.slug || context.network?.slug;
|
const siteSlug = context.entity.slug || context.site?.slug || context.network?.slug;
|
||||||
const actorSlug = encodeURI(actorName);
|
const actorSlug = encodeURI(actorName);
|
||||||
@@ -932,7 +932,13 @@ async function fetchApiProfile({ name: actorName }, context, include) {
|
|||||||
|
|
||||||
const { apiUrl } = await fetchApiCredentials(referer);
|
const { apiUrl } = await fetchApiCredentials(referer);
|
||||||
|
|
||||||
const availableOnSites = (context.parameters.actorAvailableOnSites || [siteSlug]).map((site) => `"availableOnSite:${site}"`).join(',');
|
const availableOnSites = (context.parameters.actorAvailableOnSites
|
||||||
|
|| [
|
||||||
|
siteSlug,
|
||||||
|
...(context.entity.type === 'network'
|
||||||
|
? context.entity.children.map((networkChannel) => networkChannel.slug)
|
||||||
|
: []),
|
||||||
|
]).map((site) => `"availableOnSite:${site}"`).join(',');
|
||||||
|
|
||||||
const res = await http.post(apiUrl, {
|
const res = await http.post(apiUrl, {
|
||||||
requests: [
|
requests: [
|
||||||
@@ -950,6 +956,8 @@ async function fetchApiProfile({ name: actorName }, context, include) {
|
|||||||
encodeJSON: true,
|
encodeJSON: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
console.log(res.status, res.body.results[0].hits[0]);
|
||||||
|
|
||||||
if (res.status === 200 && res.body.results[0].hits.length > 0) {
|
if (res.status === 200 && res.body.results[0].hits.length > 0) {
|
||||||
const actorData = res.body.results[0].hits.find((actor) => slugify(actor.name) === slugify(actorName));
|
const actorData = res.body.results[0].hits.find((actor) => slugify(actor.name) === slugify(actorName));
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user