forked from DebaucheryLibrarian/traxxx
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 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() }))
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
|
||||
@@ -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, {
|
||||
|
||||
Reference in New Issue
Block a user