Compare commits

...

2 Commits

Author SHA1 Message Date
ThePendulum 4ecb386233 1.70.0 2020-01-31 00:39:53 +01:00
ThePendulum 2fef4b4314 Fetching and returning releases for Evil Angel actors. 2020-01-31 00:39:49 +01:00
3 changed files with 30 additions and 4 deletions

2
package-lock.json generated
View File

@ -1,6 +1,6 @@
{
"name": "traxxx",
"version": "1.69.0",
"version": "1.70.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@ -1,6 +1,6 @@
{
"name": "traxxx",
"version": "1.69.0",
"version": "1.70.0",
"description": "All the latest porn releases in one place",
"main": "src/app.js",
"scripts": {

View File

@ -102,7 +102,7 @@ async function scrapeScene(html, url, site) {
};
}
function scrapeActor(data) {
function scrapeActor(data, releases) {
const actor = {};
if (data.male === 1) actor.gender = 'male';
@ -118,6 +118,8 @@ function scrapeActor(data) {
const avatarPath = Object.values(data.pictures).reverse()[0];
actor.avatar = `https://images01-evilangel.gammacdn.com/actors${avatarPath}`;
actor.releases = releases.map(release => `https://evilangel.com/en/video/${release.url_title}/${release.clip_id}`);
return actor;
}
@ -172,6 +174,28 @@ async function fetchScene(url, site) {
return scrapeScene(res.body.toString(), url, site);
}
async function fetchActorScenes(actorName, apiUrl) {
const res = await bhttp.post(apiUrl, {
requests: [
{
indexName: 'all_scenes',
params: `query=&hitsPerPage=36&maxValuesPerFacet=100&page=0&facetFilters=[["lesbian:"],["bisex:"],["shemale:"],["actors.name:${actorName}"]]`,
},
],
}, {
headers: {
Referer: 'https://www.evilangel.com/en/videos',
},
encodeJSON: true,
});
if (res.statusCode === 200 && res.body.results[0].hits.length > 0) {
return res.body.results[0].hits;
}
return [];
}
async function fetchProfile(actorName) {
const { apiUrl } = await fetchApiCredentials();
const actorSlug = encodeURI(actorName);
@ -194,7 +218,9 @@ async function fetchProfile(actorName) {
const actorData = res.body.results[0].hits.find(actor => actor.name === actorName);
if (actorData) {
return scrapeActor(actorData);
const actorScenes = await fetchActorScenes(actorName, apiUrl);
return scrapeActor(actorData, actorScenes);
}
}