Added series page and scene page section, no overview (yet).
This commit is contained in:
@@ -80,6 +80,12 @@ function curateScene(rawScene, assets) {
|
||||
title: movie.title,
|
||||
covers: movie.movie_covers?.map((cover) => curateMedia(cover)).toSorted((coverA, coverB) => coverA.index - coverB.index) || [],
|
||||
})),
|
||||
series: assets.series.map((serie) => ({
|
||||
id: serie.id,
|
||||
slug: serie.slug,
|
||||
title: serie.title,
|
||||
poster: curateMedia(serie.serie_poster),
|
||||
})),
|
||||
poster: curateMedia(assets.poster),
|
||||
trailer: curateMedia(assets.trailer),
|
||||
teaser: curateMedia(assets.teaser),
|
||||
@@ -99,6 +105,7 @@ export async function fetchScenesById(sceneIds, { reqUser, ...context } = {}) {
|
||||
directors,
|
||||
tags,
|
||||
movies,
|
||||
series,
|
||||
posters,
|
||||
photos,
|
||||
trailers,
|
||||
@@ -141,6 +148,13 @@ export async function fetchScenesById(sceneIds, { reqUser, ...context } = {}) {
|
||||
.leftJoin('media', 'media.id', 'movies_covers.media_id')
|
||||
.whereIn('scene_id', sceneIds)
|
||||
.groupBy('movies.id', 'movies_scenes.scene_id'),
|
||||
series: knex('series_scenes')
|
||||
.select('series_scenes.scene_id', 'series.*', knex.raw('row_to_json(media) as serie_poster'))
|
||||
.leftJoin('series', 'series.id', 'series_scenes.serie_id')
|
||||
.leftJoin('series_posters', 'series_posters.serie_id', 'series.id')
|
||||
.leftJoin('media', 'media.id', 'series_posters.media_id')
|
||||
.whereIn('scene_id', sceneIds)
|
||||
.groupBy('series.id', 'series_scenes.scene_id', 'media.*'),
|
||||
posters: knex('releases_posters')
|
||||
.whereIn('release_id', sceneIds)
|
||||
.leftJoin('media', 'media.id', 'releases_posters.media_id'),
|
||||
@@ -198,13 +212,12 @@ export async function fetchScenesById(sceneIds, { reqUser, ...context } = {}) {
|
||||
return null;
|
||||
}
|
||||
|
||||
console.log(movies);
|
||||
|
||||
const sceneChannel = channels.find((entity) => entity.id === scene.entity_id);
|
||||
const sceneActors = actors.filter((actor) => actor.release_id === sceneId);
|
||||
const sceneDirectors = directors.filter((director) => director.release_id === sceneId);
|
||||
const sceneTags = tags.filter((tag) => tag.release_id === sceneId);
|
||||
const sceneMovies = movies.filter((movie) => movie.scene_id === sceneId);
|
||||
const sceneSeries = series.filter((serie) => serie.scene_id === sceneId);
|
||||
const scenePoster = posters.find((poster) => poster.release_id === sceneId);
|
||||
const scenePhotos = photos.filter((photo) => photo.release_id === sceneId);
|
||||
const sceneTrailers = trailers.find((trailer) => trailer.release_id === sceneId);
|
||||
@@ -218,6 +231,7 @@ export async function fetchScenesById(sceneIds, { reqUser, ...context } = {}) {
|
||||
directors: sceneDirectors,
|
||||
tags: sceneTags,
|
||||
movies: sceneMovies,
|
||||
series: sceneSeries,
|
||||
poster: scenePoster,
|
||||
photos: scenePhotos,
|
||||
trailer: sceneTrailers,
|
||||
@@ -490,6 +504,10 @@ async function queryManticoreSql(filters, options, _reqUser) {
|
||||
builder.whereRaw('any(movie_ids) = ?', filters.movieId);
|
||||
}
|
||||
|
||||
if (filters.serieId) {
|
||||
builder.whereRaw('any(serie_ids) = ?', filters.serieId);
|
||||
}
|
||||
|
||||
if (typeof filters.isShowcased === 'boolean') {
|
||||
builder.where('scenes.is_showcased', filters.isShowcased);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user