fix: correctly deal with tmdb id duplicates between movies/series
fixes #526
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { TmdbCollection } from '../api/themoviedb';
|
||||
import { MediaType } from '../constants/media';
|
||||
import Media from '../entity/Media';
|
||||
import { mapMovieResult, MovieResult } from './Search';
|
||||
|
||||
@@ -23,7 +24,9 @@ export const mapCollection = (
|
||||
parts: collection.parts.map((part) =>
|
||||
mapMovieResult(
|
||||
part,
|
||||
media?.find((req) => req.tmdbId === part.id)
|
||||
media?.find(
|
||||
(req) => req.tmdbId === part.id && req.mediaType === MediaType.MOVIE
|
||||
)
|
||||
)
|
||||
),
|
||||
});
|
||||
|
||||
@@ -3,6 +3,7 @@ import type {
|
||||
TmdbPersonResult,
|
||||
TmdbTvResult,
|
||||
} from '../api/themoviedb';
|
||||
import { MediaType as MainMediaType } from '../constants/media';
|
||||
import Media from '../entity/Media';
|
||||
|
||||
export type MediaType = 'tv' | 'movie' | 'person';
|
||||
@@ -122,12 +123,18 @@ export const mapSearchResults = (
|
||||
case 'movie':
|
||||
return mapMovieResult(
|
||||
result,
|
||||
media?.find((req) => req.tmdbId === result.id)
|
||||
media?.find(
|
||||
(req) =>
|
||||
req.tmdbId === result.id && req.mediaType === MainMediaType.MOVIE
|
||||
)
|
||||
);
|
||||
case 'tv':
|
||||
return mapTvResult(
|
||||
result,
|
||||
media?.find((req) => req.tmdbId === result.id)
|
||||
media?.find(
|
||||
(req) =>
|
||||
req.tmdbId === result.id && req.mediaType === MainMediaType.TV
|
||||
)
|
||||
);
|
||||
default:
|
||||
return mapPersonResult(result);
|
||||
|
||||
Reference in New Issue
Block a user