Compare commits
2 Commits
d4e6082d2e
...
74e0fb721d
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
74e0fb721d | ||
|
|
ba366df7a5 |
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "traxxx",
|
"name": "traxxx",
|
||||||
"version": "1.249.6",
|
"version": "1.249.7",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "traxxx",
|
"name": "traxxx",
|
||||||
"version": "1.249.6",
|
"version": "1.249.7",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@aws-sdk/client-s3": "^3.458.0",
|
"@aws-sdk/client-s3": "^3.458.0",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "traxxx",
|
"name": "traxxx",
|
||||||
"version": "1.249.6",
|
"version": "1.249.7",
|
||||||
"description": "All the latest porn releases in one place",
|
"description": "All the latest porn releases in one place",
|
||||||
"main": "src/app.js",
|
"main": "src/app.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -9,6 +9,9 @@ const grandParentNetworks = [
|
|||||||
name: 'Gamma Entertainment',
|
name: 'Gamma Entertainment',
|
||||||
url: 'https://www.gammaentertainment.com',
|
url: 'https://www.gammaentertainment.com',
|
||||||
alias: ['gammaentertainment'],
|
alias: ['gammaentertainment'],
|
||||||
|
options: {
|
||||||
|
preferNetwork: true,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
slug: 'hush',
|
slug: 'hush',
|
||||||
|
|||||||
@@ -836,7 +836,7 @@ async function scrapeActors(argNames) {
|
|||||||
const entitySlugs = sources.flat();
|
const entitySlugs = sources.flat();
|
||||||
|
|
||||||
const [entitiesBySlug, existingActorEntries] = await Promise.all([
|
const [entitiesBySlug, existingActorEntries] = await Promise.all([
|
||||||
fetchEntitiesBySlug(entitySlugs, { types: ['channel', 'network', 'info'], prefer: argv.prefer || 'channel' }),
|
fetchEntitiesBySlug(entitySlugs, { types: ['channel', 'network', 'info'], prefer: argv.prefer || 'options' }),
|
||||||
knex('actors')
|
knex('actors')
|
||||||
.select(knex.raw('actors.id, actors.name, actors.slug, actors.entry_id, actors.entity_id, row_to_json(entities) as entity'))
|
.select(knex.raw('actors.id, actors.name, actors.slug, actors.entry_id, actors.entity_id, row_to_json(entities) as entity'))
|
||||||
.whereIn('actors.slug', baseActors.map((baseActor) => baseActor.slug))
|
.whereIn('actors.slug', baseActors.map((baseActor) => baseActor.slug))
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ const knex = require('./knex');
|
|||||||
const { deleteScenes, deleteMovies, deleteSeries } = require('./releases');
|
const { deleteScenes, deleteMovies, deleteSeries } = require('./releases');
|
||||||
const { flushOrphanedMedia } = require('./media');
|
const { flushOrphanedMedia } = require('./media');
|
||||||
const { resolveScraper, resolveLayoutScraper } = require('./scrapers/resolve');
|
const { resolveScraper, resolveLayoutScraper } = require('./scrapers/resolve');
|
||||||
|
const getRecursiveParameters = require('./utils/get-recursive-parameters');
|
||||||
|
|
||||||
function getRecursiveParent(entity) {
|
function getRecursiveParent(entity) {
|
||||||
if (!entity) {
|
if (!entity) {
|
||||||
@@ -257,13 +258,18 @@ async function fetchEntitiesBySlug(entitySlugs, options = { prefer: 'channel', a
|
|||||||
entitySlugs: entitySlugs.filter((slug) => !slug.includes('.')),
|
entitySlugs: entitySlugs.filter((slug) => !slug.includes('.')),
|
||||||
entityHosts: entitySlugs.filter((slug) => slug.includes('.')).map((hostname) => `%${hostname}`),
|
entityHosts: entitySlugs.filter((slug) => slug.includes('.')).map((hostname) => `%${hostname}`),
|
||||||
entityTypes: options.types || ['channel', 'network'],
|
entityTypes: options.types || ['channel', 'network'],
|
||||||
sort: knex.raw(options.prefer === 'channel' ? 'asc' : 'desc'),
|
sort: knex.raw(options.prefer === 'channel' || options.prefer === 'options' ? 'asc' : 'desc'),
|
||||||
});
|
});
|
||||||
|
|
||||||
// channel entity will overwrite network entity
|
// by default channel entity will overwrite network entity
|
||||||
const entitiesBySlug = entities.rows.reduce((accEntities, { entity }) => {
|
const entitiesBySlug = entities.rows.reduce((accEntities, { entity }) => {
|
||||||
const host = urlToHostname(entity.url);
|
const host = urlToHostname(entity.url);
|
||||||
const curatedEntity = accEntities[entity.slug] || accEntities[host] || curateEntity(entity, true);
|
const entityOptions = getRecursiveParameters(entity, 'options');
|
||||||
|
const accEntity = accEntities[entity.slug] || accEntities[host];
|
||||||
|
|
||||||
|
const curatedEntity = !accEntity || (options.prefer === 'options' && entity.type === 'network' && entityOptions.preferNetwork)
|
||||||
|
? curateEntity(entity, true)
|
||||||
|
: accEntity;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...accEntities,
|
...accEntities,
|
||||||
|
|||||||
@@ -329,8 +329,7 @@ const validators = {
|
|||||||
|
|
||||||
// profiler in this context is shorthand for profile scraper
|
// profiler in this context is shorthand for profile scraper
|
||||||
async function init() {
|
async function init() {
|
||||||
// Pride Studios needs prefer network, probably works bests for most Gamma sites. Establish which scrapers need channel and why.
|
const entitiesBySlug = await fetchEntitiesBySlug(Object.keys(actorScrapers), { types: ['channel', 'network', 'info'], prefer: 'options' });
|
||||||
const entitiesBySlug = await fetchEntitiesBySlug(Object.keys(actorScrapers), { types: ['channel', 'network', 'info'], prefer: 'network' });
|
|
||||||
|
|
||||||
await Object.entries(actorScrapers).reduce(async (chain, [entitySlug, scraper]) => {
|
await Object.entries(actorScrapers).reduce(async (chain, [entitySlug, scraper]) => {
|
||||||
await chain;
|
await chain;
|
||||||
@@ -340,7 +339,6 @@ async function init() {
|
|||||||
|
|
||||||
const tests = actors.filter((actor) => actor.entity === entitySlug);
|
const tests = actors.filter((actor) => actor.entity === entitySlug);
|
||||||
|
|
||||||
// TODO: remove when all tests are written
|
|
||||||
if (tests.length === 0) {
|
if (tests.length === 0) {
|
||||||
console.log('TODO', entitySlug);
|
console.log('TODO', entitySlug);
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user