Compare commits

..

No commits in common. "763a913be6150426794a84a7153d22d1112a5121" and "841d3a8475216cc45ec0015b2a16fae4058da4fa" have entirely different histories.

6 changed files with 18 additions and 28 deletions

4
package-lock.json generated
View File

@ -1,12 +1,12 @@
{
"name": "traxxx",
"version": "1.245.33",
"version": "1.245.32",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "traxxx",
"version": "1.245.33",
"version": "1.245.32",
"license": "ISC",
"dependencies": {
"@aws-sdk/client-s3": "^3.458.0",

View File

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

View File

@ -818,7 +818,7 @@ const networks = [
{
slug: 'pierrewoodman',
name: 'Pierre Woodman',
url: 'https://www.woodmanfilms.com',
url: 'http://www.woodmancastingx.com',
},
{
slug: 'xempire',

View File

@ -31,7 +31,6 @@ const inspector = new Inspector();
let done = false;
unprint.options({
logErrors: false,
timeout: argv.requestTimeout,
userAgent: 'traxxx',
browserUserAgent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36',

View File

@ -4,7 +4,6 @@ const unprint = require('unprint');
const slugify = require('../utils/slugify');
const capitalize = require('../utils/capitalize');
const tryUrls = require('../utils/try-urls');
function scrapeAll(scenes, channel, discard = true) {
return scenes.reduce((acc, { query, element }) => {
@ -99,22 +98,23 @@ function scrapeScene({ query, html }, { url, entity }) {
return release;
}
function scrapeProfile({ query }, url, entity) {
const profile = { url };
function scrapeProfile({ query }, entity) {
const profile = {};
profile.avatar = query.img('.actor img, .avatar img');
profile.nationality = query.content(['.nationality, .nationnality', '//strong[contains(text(), "Nationnality")]'])?.replace(/nationn?ality\s*:/i, '').trim(); // sic
profile.avatar = query.img('.actor img');
profile.nationality = query.content('.nationality, .nationnality'); // sic
profile.scenes = scrapeAll(unprint.initAll(query.all('.videos .item, .list .scene.item')), entity, false);
profile.scenes = scrapeAll(unprint.initAll(query.all('.videos .item')), entity, false);
return profile;
}
async function getActorUrl(actor) {
if (actor.url) {
return [actor.url];
return actor.url;
}
// Wake up'n Fuck has higher quality images, but not all performers are available, vice versa they are
const res = await unprint.get('https://www.woodmancastingx.com');
if (!res.ok) {
@ -139,24 +139,20 @@ async function getActorUrl(actor) {
return null;
}
// WUNF has the same avatars at higher quality, but not all performers
return [
`https://www.wakeupnfuck.com/actor/${actor.slug}_${actorId}`,
`https://www.woodmancastingx.com/girl/${actor.slug}_${actorId}`,
];
return `https://www.woodmancastingx.com/search/redirection/actors/${actorId}`;
}
async function fetchProfile(actor, entity) {
const actorUrls = await getActorUrl(actor);
const actorUrl = await getActorUrl(actor);
if (!Array.isArray(actorUrls)) {
return actorUrls;
if (typeof actorUrl !== 'string') {
return actorUrl;
}
const { res, url } = await tryUrls(actorUrls);
const res = await unprint.get(actorUrl);
if (res.ok) {
return scrapeProfile(res.context, url, entity);
return scrapeProfile(res.context, entity);
}
return res.status;

View File

@ -2,7 +2,6 @@
const test = require('node:test');
const assert = require('node:assert/strict');
const unprint = require('unprint');
const argv = require('../src/argv');
const include = require('../src/utils/argv-include')(argv);
@ -13,10 +12,6 @@ const { resolveLayoutScraper } = require('../src/scrapers/resolve');
const getRecursiveParameters = require('../src/utils/get-recursive-parameters');
const knex = require('../src/knex');
unprint.options({
logErrors: false,
});
const actors = [
// vixen
{ entity: 'vixen', name: 'Abella Danger', fields: ['gender', 'avatar', 'description'] },
@ -181,7 +176,7 @@ const actors = [
{ entity: 'sexlikereal', name: 'Agatha Vega', fields: ['avatar', 'birthPlace', 'height', 'weight', 'description'] },
{ entity: 'porncz', name: 'Kama Oxi', fields: ['avatar', 'gender', 'birthCountry', 'ethnicity', 'age', 'hairColor', 'cup', 'naturalBoobs', 'hasTattoos'] },
{ entity: 'score', name: 'Vanessa Blue', fields: ['avatar', 'gender', 'placeOfResidence', 'ethnicity', 'height', 'weight', 'measurements', 'hairColor', 'dateOfBirth'] },
{ entity: 'pierrewoodman', name: 'Abby Lee Brazil', fields: ['avatar', 'nationality'] },
{ entity: 'pierrewoodman', name: 'Makayla Cox', fields: ['avatar', 'nationality'] },
];
const actorScrapers = scrapers.actors;