Showing actors, tags and date on movie tiles.

This commit is contained in:
DebaucheryLibrarian
2020-08-10 21:39:55 +02:00
parent dd1ea597d4
commit 40aed1086f
23 changed files with 273 additions and 17 deletions

View File

@@ -255,7 +255,38 @@ async function storeScenes(releases) {
return releasesWithId;
}
async function storeMovies(movies) {
async function associateMovieScenes(movies, movieScenes) {
const movieScenesByEntityIdAndEntryId = movieScenes.reduce((acc, scene) => ({
...acc,
[scene.entity.id]: {
...acc[scene.entity.id],
[scene.entryId]: scene,
},
}), {});
const associations = movies.map((movie) => {
if (!movie.scenes) {
return null;
}
return movie.scenes.map((scene) => {
const movieScene = movieScenesByEntityIdAndEntryId[movie.entity.id]?.[scene.entryId];
if (movieScene) {
return {
movie_id: movie.id,
scene_id: movieScene.id,
};
}
return null;
});
}).flat().filter(Boolean);
await knex.batchInsert('movies_scenes', associations);
}
async function storeMovies(movies, movieScenes) {
const { uniqueReleases } = await filterDuplicateReleases(movies);
const [batchId] = await knex('batches').insert({ comment: null }).returning('id');
@@ -264,6 +295,7 @@ async function storeMovies(movies) {
const moviesWithId = attachReleaseIds(movies, storedMovies);
await associateMovieScenes(moviesWithId, movieScenes);
await associateReleaseMedia(moviesWithId, 'movies');
return storedMovies;