Compare commits

..

No commits in common. "1fc67704dca77694f04a1fc7087aa9dcd8402ba3" and "4d89256a4c9520d88aa4719443732fede665ea50" have entirely different histories.

4 changed files with 38 additions and 27 deletions

2
package-lock.json generated
View File

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

View File

@ -1,6 +1,6 @@
{ {
"name": "traxxx", "name": "traxxx",
"version": "1.160.0", "version": "1.159.10",
"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": {

View File

@ -8,7 +8,7 @@ const initServer = require('./web/server');
const knex = require('./knex'); const knex = require('./knex');
const fetchUpdates = require('./updates'); const fetchUpdates = require('./updates');
const { fetchScenes, fetchMovies } = require('./deep'); const { fetchScenes, fetchMovies } = require('./deep');
const { storeScenes, storeMovies, updateReleasesSearch, associateMovieScenes } = require('./store-releases'); const { storeScenes, storeMovies, updateReleasesSearch } = require('./store-releases');
const { scrapeActors, flushActors, flushProfiles, interpolateProfiles } = require('./actors'); const { scrapeActors, flushActors, flushProfiles, interpolateProfiles } = require('./actors');
const { flushEntities } = require('./entities'); const { flushEntities } = require('./entities');
const { deleteScenes, deleteMovies, flushScenes, flushBatches } = require('./releases'); const { deleteScenes, deleteMovies, flushScenes, flushBatches } = require('./releases');
@ -79,7 +79,7 @@ async function init() {
const sceneMovies = deepScenes ? deepScenes.map(scene => ({ ...scene.movie, entity: scene.entity })).filter(Boolean) : []; const sceneMovies = deepScenes ? deepScenes.map(scene => ({ ...scene.movie, entity: scene.entity })).filter(Boolean) : [];
const deepMovies = argv.sceneMovies || argv.movie ? await fetchMovies([...(argv.movie || []), ...(sceneMovies || [])]) : sceneMovies; const deepMovies = argv.sceneMovies || argv.movie ? await fetchMovies([...(argv.movie || []), ...(sceneMovies || [])]) : sceneMovies;
const movieScenes = argv.movieScenes ? deepMovies.map(movie => movie.scenes?.map(scene => ({ ...scene, movie, entity: movie.entity }))).flat().filter(Boolean) : []; const movieScenes = argv.movieScenes ? deepMovies.map(movie => movie.scenes?.map(scene => ({ ...scene, entity: movie.entity }))).flat().filter(Boolean) : [];
const deepMovieScenes = argv.deep ? await fetchScenes(movieScenes) : movieScenes; const deepMovieScenes = argv.deep ? await fetchScenes(movieScenes) : movieScenes;
if (argv.report) { if (argv.report) {
@ -88,10 +88,15 @@ async function init() {
} }
if (argv.save) { if (argv.save) {
const storedMovies = await storeMovies(deepMovies); const storedScenes = deepScenes.length > 0 || deepMovieScenes.length > 0
const storedScenes = await storeScenes([...(deepScenes || []), ...(deepMovieScenes || [])]); ? await storeScenes(deepScenes)
: [];
await associateMovieScenes(storedMovies, storedScenes); if (deepMovies.length > 0) {
const storedMovieScenes = await storeScenes(deepMovieScenes);
await storeMovies(deepMovies, [...(storedMovieScenes || []), ...storedScenes]);
}
} }
knex.destroy(); knex.destroy();

View File

@ -290,7 +290,7 @@ async function storeClips(releases) {
} }
async function storeScenes(releases) { async function storeScenes(releases) {
if (!releases || releases.length === 0) { if (releases.length === 0) {
return []; return [];
} }
@ -331,36 +331,42 @@ async function storeScenes(releases) {
} }
async function associateMovieScenes(movies, movieScenes) { async function associateMovieScenes(movies, movieScenes) {
const moviesByEntityIdAndEntryId = movies.reduce((acc, movie) => ({ const movieScenesByEntityIdAndEntryId = movieScenes.reduce((acc, scene) => ({
...acc, ...acc,
[movie.entity.id]: { [scene.entity.id]: {
...acc[movie.entity.id], ...acc[scene.entity.id],
[movie.entryId]: movie, [scene.entryId]: scene,
}, },
}), {}); }), {});
const associations = movieScenes.map((scene) => { console.log('movies', movies, movieScenes);
if (!scene.movie) {
const associations = movies.map((movie) => {
if (!movie.scenes || !movie.id) {
return null; return null;
} }
const sceneMovie = moviesByEntityIdAndEntryId[scene.entity.id]?.[scene.movie.entryId]; console.log(movie, movie.scenes);
if (sceneMovie?.id) { return movie.scenes.map((scene) => {
return { const movieScene = movieScenesByEntityIdAndEntryId[movie.entity.id]?.[scene.entryId];
movie_id: sceneMovie.id,
scene_id: scene.id,
};
}
return null; if (movieScene?.id) {
}).filter(Boolean); return {
movie_id: movie.id,
scene_id: movieScene.id,
};
}
return null;
});
}).flat().filter(Boolean);
await bulkInsert('movies_scenes', associations, false); await bulkInsert('movies_scenes', associations, false);
} }
async function storeMovies(movies) { async function storeMovies(movies, movieScenes) {
if (!movies || movies.length === 0) { if (movies.length === 0) {
return []; return [];
} }
@ -372,13 +378,13 @@ async function storeMovies(movies) {
const storedMovies = await bulkInsert('movies', curatedMovieEntries, ['entity_id', 'entry_id'], true); const storedMovies = await bulkInsert('movies', curatedMovieEntries, ['entity_id', 'entry_id'], true);
const moviesWithId = attachReleaseIds(movies, storedMovies); const moviesWithId = attachReleaseIds(movies, storedMovies);
await associateMovieScenes(moviesWithId, movieScenes);
await associateReleaseMedia(moviesWithId, 'movie'); await associateReleaseMedia(moviesWithId, 'movie');
return moviesWithId; return storedMovies;
} }
module.exports = { module.exports = {
associateMovieScenes,
storeScenes, storeScenes,
storeMovies, storeMovies,
updateReleasesSearch, updateReleasesSearch,