|
|
|
@ -127,7 +127,8 @@ discoverRoutes.get('/movies', async (req, res, next) => {
|
|
|
|
|
totalPages: data.total_pages,
|
|
|
|
|
totalResults: data.total_results,
|
|
|
|
|
keywords: keywordData,
|
|
|
|
|
results: data.results.map((result) =>
|
|
|
|
|
results: await Promise.all(
|
|
|
|
|
data.results.map((result) =>
|
|
|
|
|
mapMovieResult(
|
|
|
|
|
result,
|
|
|
|
|
media.find(
|
|
|
|
@ -135,6 +136,7 @@ discoverRoutes.get('/movies', async (req, res, next) => {
|
|
|
|
|
req.tmdbId === result.id && req.mediaType === MediaType.MOVIE
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
),
|
|
|
|
|
});
|
|
|
|
|
} catch (e) {
|
|
|
|
@ -180,7 +182,8 @@ discoverRoutes.get<{ language: string }>(
|
|
|
|
|
totalPages: data.total_pages,
|
|
|
|
|
totalResults: data.total_results,
|
|
|
|
|
language,
|
|
|
|
|
results: data.results.map((result) =>
|
|
|
|
|
results: await Promise.all(
|
|
|
|
|
data.results.map((result) =>
|
|
|
|
|
mapMovieResult(
|
|
|
|
|
result,
|
|
|
|
|
media.find(
|
|
|
|
@ -188,6 +191,7 @@ discoverRoutes.get<{ language: string }>(
|
|
|
|
|
req.tmdbId === result.id && req.mediaType === MediaType.MOVIE
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
),
|
|
|
|
|
});
|
|
|
|
|
} catch (e) {
|
|
|
|
@ -237,7 +241,8 @@ discoverRoutes.get<{ genreId: string }>(
|
|
|
|
|
totalPages: data.total_pages,
|
|
|
|
|
totalResults: data.total_results,
|
|
|
|
|
genre,
|
|
|
|
|
results: data.results.map((result) =>
|
|
|
|
|
results: await Promise.all(
|
|
|
|
|
data.results.map((result) =>
|
|
|
|
|
mapMovieResult(
|
|
|
|
|
result,
|
|
|
|
|
media.find(
|
|
|
|
@ -245,6 +250,7 @@ discoverRoutes.get<{ genreId: string }>(
|
|
|
|
|
req.tmdbId === result.id && req.mediaType === MediaType.MOVIE
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
),
|
|
|
|
|
});
|
|
|
|
|
} catch (e) {
|
|
|
|
@ -284,7 +290,8 @@ discoverRoutes.get<{ studioId: string }>(
|
|
|
|
|
totalPages: data.total_pages,
|
|
|
|
|
totalResults: data.total_results,
|
|
|
|
|
studio: mapProductionCompany(studio),
|
|
|
|
|
results: data.results.map((result) =>
|
|
|
|
|
results: await Promise.all(
|
|
|
|
|
data.results.map((result) =>
|
|
|
|
|
mapMovieResult(
|
|
|
|
|
result,
|
|
|
|
|
media.find(
|
|
|
|
@ -292,6 +299,7 @@ discoverRoutes.get<{ studioId: string }>(
|
|
|
|
|
med.tmdbId === result.id && med.mediaType === MediaType.MOVIE
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
),
|
|
|
|
|
});
|
|
|
|
|
} catch (e) {
|
|
|
|
@ -332,7 +340,8 @@ discoverRoutes.get('/movies/upcoming', async (req, res, next) => {
|
|
|
|
|
page: data.page,
|
|
|
|
|
totalPages: data.total_pages,
|
|
|
|
|
totalResults: data.total_results,
|
|
|
|
|
results: data.results.map((result) =>
|
|
|
|
|
results: await Promise.all(
|
|
|
|
|
data.results.map((result) =>
|
|
|
|
|
mapMovieResult(
|
|
|
|
|
result,
|
|
|
|
|
media.find(
|
|
|
|
@ -340,6 +349,7 @@ discoverRoutes.get('/movies/upcoming', async (req, res, next) => {
|
|
|
|
|
med.tmdbId === result.id && med.mediaType === MediaType.MOVIE
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
),
|
|
|
|
|
});
|
|
|
|
|
} catch (e) {
|
|
|
|
@ -404,11 +414,14 @@ discoverRoutes.get('/tv', async (req, res, next) => {
|
|
|
|
|
totalPages: data.total_pages,
|
|
|
|
|
totalResults: data.total_results,
|
|
|
|
|
keywords: keywordData,
|
|
|
|
|
results: data.results.map((result) =>
|
|
|
|
|
results: await Promise.all(
|
|
|
|
|
data.results.map((result) =>
|
|
|
|
|
mapTvResult(
|
|
|
|
|
result,
|
|
|
|
|
media.find(
|
|
|
|
|
(med) => med.tmdbId === result.id && med.mediaType === MediaType.TV
|
|
|
|
|
(med) =>
|
|
|
|
|
med.tmdbId === result.id && med.mediaType === MediaType.TV
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
),
|
|
|
|
@ -456,7 +469,8 @@ discoverRoutes.get<{ language: string }>(
|
|
|
|
|
totalPages: data.total_pages,
|
|
|
|
|
totalResults: data.total_results,
|
|
|
|
|
language,
|
|
|
|
|
results: data.results.map((result) =>
|
|
|
|
|
results: await Promise.all(
|
|
|
|
|
data.results.map((result) =>
|
|
|
|
|
mapTvResult(
|
|
|
|
|
result,
|
|
|
|
|
media.find(
|
|
|
|
@ -464,6 +478,7 @@ discoverRoutes.get<{ language: string }>(
|
|
|
|
|
med.tmdbId === result.id && med.mediaType === MediaType.TV
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
),
|
|
|
|
|
});
|
|
|
|
|
} catch (e) {
|
|
|
|
@ -513,7 +528,8 @@ discoverRoutes.get<{ genreId: string }>(
|
|
|
|
|
totalPages: data.total_pages,
|
|
|
|
|
totalResults: data.total_results,
|
|
|
|
|
genre,
|
|
|
|
|
results: data.results.map((result) =>
|
|
|
|
|
results: await Promise.all(
|
|
|
|
|
data.results.map((result) =>
|
|
|
|
|
mapTvResult(
|
|
|
|
|
result,
|
|
|
|
|
media.find(
|
|
|
|
@ -521,6 +537,7 @@ discoverRoutes.get<{ genreId: string }>(
|
|
|
|
|
med.tmdbId === result.id && med.mediaType === MediaType.TV
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
),
|
|
|
|
|
});
|
|
|
|
|
} catch (e) {
|
|
|
|
@ -560,7 +577,8 @@ discoverRoutes.get<{ networkId: string }>(
|
|
|
|
|
totalPages: data.total_pages,
|
|
|
|
|
totalResults: data.total_results,
|
|
|
|
|
network: mapNetwork(network),
|
|
|
|
|
results: data.results.map((result) =>
|
|
|
|
|
results: await Promise.all(
|
|
|
|
|
data.results.map((result) =>
|
|
|
|
|
mapTvResult(
|
|
|
|
|
result,
|
|
|
|
|
media.find(
|
|
|
|
@ -568,6 +586,7 @@ discoverRoutes.get<{ networkId: string }>(
|
|
|
|
|
med.tmdbId === result.id && med.mediaType === MediaType.TV
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
),
|
|
|
|
|
});
|
|
|
|
|
} catch (e) {
|
|
|
|
@ -608,11 +627,14 @@ discoverRoutes.get('/tv/upcoming', async (req, res, next) => {
|
|
|
|
|
page: data.page,
|
|
|
|
|
totalPages: data.total_pages,
|
|
|
|
|
totalResults: data.total_results,
|
|
|
|
|
results: data.results.map((result) =>
|
|
|
|
|
results: await Promise.all(
|
|
|
|
|
data.results.map((result) =>
|
|
|
|
|
mapTvResult(
|
|
|
|
|
result,
|
|
|
|
|
media.find(
|
|
|
|
|
(med) => med.tmdbId === result.id && med.mediaType === MediaType.TV
|
|
|
|
|
(med) =>
|
|
|
|
|
med.tmdbId === result.id && med.mediaType === MediaType.TV
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
),
|
|
|
|
@ -637,22 +659,22 @@ discoverRoutes.get('/trending', async (req, res, next) => {
|
|
|
|
|
page: Number(req.query.page),
|
|
|
|
|
language: (req.query.language as string) ?? req.locale,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const media = await Media.getRelatedMedia(
|
|
|
|
|
data.results.map((result) => result.id)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
return res.status(200).json({
|
|
|
|
|
page: data.page,
|
|
|
|
|
totalPages: data.total_pages,
|
|
|
|
|
totalResults: data.total_results,
|
|
|
|
|
results: data.results.map((result) =>
|
|
|
|
|
isMovie(result)
|
|
|
|
|
results: await Promise.all(
|
|
|
|
|
data.results.map((result) => {
|
|
|
|
|
return isMovie(result)
|
|
|
|
|
? mapMovieResult(
|
|
|
|
|
result,
|
|
|
|
|
media.find(
|
|
|
|
|
(med) =>
|
|
|
|
|
med.tmdbId === result.id && med.mediaType === MediaType.MOVIE
|
|
|
|
|
med.tmdbId === result.id &&
|
|
|
|
|
med.mediaType === MediaType.MOVIE
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
: isPerson(result)
|
|
|
|
@ -665,7 +687,8 @@ discoverRoutes.get('/trending', async (req, res, next) => {
|
|
|
|
|
(med) =>
|
|
|
|
|
med.tmdbId === result.id && med.mediaType === MediaType.TV
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
);
|
|
|
|
|
})
|
|
|
|
|
),
|
|
|
|
|
});
|
|
|
|
|
} catch (e) {
|
|
|
|
@ -700,7 +723,8 @@ discoverRoutes.get<{ keywordId: string }>(
|
|
|
|
|
page: data.page,
|
|
|
|
|
totalPages: data.total_pages,
|
|
|
|
|
totalResults: data.total_results,
|
|
|
|
|
results: data.results.map((result) =>
|
|
|
|
|
results: await Promise.all(
|
|
|
|
|
data.results.map((result) =>
|
|
|
|
|
mapMovieResult(
|
|
|
|
|
result,
|
|
|
|
|
media.find(
|
|
|
|
@ -708,6 +732,7 @@ discoverRoutes.get<{ keywordId: string }>(
|
|
|
|
|
med.tmdbId === result.id && med.mediaType === MediaType.MOVIE
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
),
|
|
|
|
|
});
|
|
|
|
|
} catch (e) {
|
|
|
|
|