diff --git a/src/app.js b/src/app.js index 0176c521..c7c6d0d3 100755 --- a/src/app.js +++ b/src/app.js @@ -252,7 +252,12 @@ async function init() { const storedMovies = await storeMovies(deepMovies, storedScenes[0]?.batchId); const storedMovieScenes = await storeScenes(deepMovieScenes, storedScenes[0]?.batchId); - await associateMovieScenes(storedMovies, [...storedScenes, ...storedMovieScenes]); + const allScenes = [...storedScenes, ...storedMovieScenes]; + + await associateMovieScenes(storedMovies, allScenes); + + await updateSceneSearch(allScenes.map((scene) => scene.id)); + await updateMovieSearch(storedMovies.map((movie) => movie.id)); } logger.info(`Completed in ${Object.entries(intervalToDuration({ start: startTime, end: Date.now() })) diff --git a/src/store-releases.js b/src/store-releases.js index 2df5082b..dcb08cf6 100755 --- a/src/store-releases.js +++ b/src/store-releases.js @@ -17,7 +17,6 @@ const { associateActors, associateDirectors, scrapeActors, toBaseActors } = requ const { associateReleaseTags } = require('./tags'); const { curateEntity } = require('./entities'); const { associateReleaseMedia } = require('./media'); -const { updateSceneSearch, updateMovieSearch } = require('./update-search'); const geoCommon = import('../common/geo.mjs'); // eslint-disable-line import/extensions, import/no-relative-packages @@ -344,7 +343,8 @@ async function associateMovieScenes(movies, movieScenes) { await bulkInsert('movies_scenes', associations, false); - await updateSceneSearch(movieScenes.map((scene) => scene.id)); + // movieScenes includes scenes that are not associated to any movies, don't update those (again) + // await updateSceneSearch(associations.map((association) => association.scene_id)); } async function associateSerieScenes(series, serieScenes) { @@ -391,7 +391,7 @@ async function storeMovies(movies, useBatchId) { const moviesWithId = attachReleaseIds(movies, storedMovies); await associateReleaseTags(moviesWithId, 'movie'); - await updateMovieSearch(moviesWithId.map((movie) => movie.id)); + // await updateMovieSearch(moviesWithId.map((movie) => movie.id)); await associateReleaseMedia(moviesWithId, 'movie'); @@ -419,7 +419,8 @@ async function storeSeries(series, useBatchId) { const storedSeries = await bulkInsert('series', curatedSerieEntries, ['entity_id', 'entry_id'], true); const seriesWithId = attachReleaseIds(series, storedSeries); - await updateMovieSearch(seriesWithId.map((serie) => serie.id), 'serie'); + // TODO: the movie search function doesn't accept a second parameter, and we don't currently have a series search index at all; re-evaluate what actually needs to happen here + // await updateMovieSearch(seriesWithId.map((serie) => serie.id), 'serie'); await associateReleaseMedia(seriesWithId, 'serie'); return seriesWithId; @@ -489,7 +490,7 @@ async function storeScenes(releases, useBatchId) { await associateDirectors(releasesWithId, batchId); // some directors may also be actors, don't associate at the same time } - await updateSceneSearch(releasesWithId.map((release) => release.id)); + // await updateSceneSearch(releasesWithId.map((release) => release.id)); // media is more error-prone, associate separately await associateReleaseMedia(releasesWithId); @@ -509,6 +510,4 @@ module.exports = { associateMovieScenes, storeScenes, storeMovies, - updateSceneSearch, - updateMovieSearch, }; diff --git a/src/update-search.js b/src/update-search.js index bb098ff1..d8499efa 100644 --- a/src/update-search.js +++ b/src/update-search.js @@ -10,7 +10,7 @@ async function syncWeb(domain, ids) { return; } - await knex('sync').insert({ domain, item_ids: ids }); + await knex('sync').insert({ domain, item_ids: Array.from(new Set(ids)) }); if (config.webApi.enabled) { await unprint.post(`${config.webApi.address}/sync`, null, {