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",
"version": "1.160.0",
"version": "1.159.10",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

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

View File

@ -8,7 +8,7 @@ const initServer = require('./web/server');
const knex = require('./knex');
const fetchUpdates = require('./updates');
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 { flushEntities } = require('./entities');
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 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;
if (argv.report) {
@ -88,10 +88,15 @@ async function init() {
}
if (argv.save) {
const storedMovies = await storeMovies(deepMovies);
const storedScenes = await storeScenes([...(deepScenes || []), ...(deepMovieScenes || [])]);
const storedScenes = deepScenes.length > 0 || deepMovieScenes.length > 0
? await storeScenes(deepScenes)
: [];
await associateMovieScenes(storedMovies, storedScenes);
if (deepMovies.length > 0) {
const storedMovieScenes = await storeScenes(deepMovieScenes);
await storeMovies(deepMovies, [...(storedMovieScenes || []), ...storedScenes]);
}
}
knex.destroy();

View File

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