Centralized search update to minimize duplicate sync calls.
This commit is contained in:
@@ -252,7 +252,12 @@ async function init() {
|
|||||||
const storedMovies = await storeMovies(deepMovies, storedScenes[0]?.batchId);
|
const storedMovies = await storeMovies(deepMovies, storedScenes[0]?.batchId);
|
||||||
const storedMovieScenes = await storeScenes(deepMovieScenes, 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() }))
|
logger.info(`Completed in ${Object.entries(intervalToDuration({ start: startTime, end: Date.now() }))
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ const { associateActors, associateDirectors, scrapeActors, toBaseActors } = requ
|
|||||||
const { associateReleaseTags } = require('./tags');
|
const { associateReleaseTags } = require('./tags');
|
||||||
const { curateEntity } = require('./entities');
|
const { curateEntity } = require('./entities');
|
||||||
const { associateReleaseMedia } = require('./media');
|
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
|
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 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) {
|
async function associateSerieScenes(series, serieScenes) {
|
||||||
@@ -391,7 +391,7 @@ async function storeMovies(movies, useBatchId) {
|
|||||||
const moviesWithId = attachReleaseIds(movies, storedMovies);
|
const moviesWithId = attachReleaseIds(movies, storedMovies);
|
||||||
|
|
||||||
await associateReleaseTags(moviesWithId, 'movie');
|
await associateReleaseTags(moviesWithId, 'movie');
|
||||||
await updateMovieSearch(moviesWithId.map((movie) => movie.id));
|
// await updateMovieSearch(moviesWithId.map((movie) => movie.id));
|
||||||
|
|
||||||
await associateReleaseMedia(moviesWithId, 'movie');
|
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 storedSeries = await bulkInsert('series', curatedSerieEntries, ['entity_id', 'entry_id'], true);
|
||||||
const seriesWithId = attachReleaseIds(series, storedSeries);
|
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');
|
await associateReleaseMedia(seriesWithId, 'serie');
|
||||||
|
|
||||||
return seriesWithId;
|
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 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
|
// media is more error-prone, associate separately
|
||||||
await associateReleaseMedia(releasesWithId);
|
await associateReleaseMedia(releasesWithId);
|
||||||
@@ -509,6 +510,4 @@ module.exports = {
|
|||||||
associateMovieScenes,
|
associateMovieScenes,
|
||||||
storeScenes,
|
storeScenes,
|
||||||
storeMovies,
|
storeMovies,
|
||||||
updateSceneSearch,
|
|
||||||
updateMovieSearch,
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ async function syncWeb(domain, ids) {
|
|||||||
return;
|
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) {
|
if (config.webApi.enabled) {
|
||||||
await unprint.post(`${config.webApi.address}/sync`, null, {
|
await unprint.post(`${config.webApi.address}/sync`, null, {
|
||||||
|
|||||||
Reference in New Issue
Block a user