fix: disambiguate tmdb ids by media type across lookups (#2577)

This commit is contained in:
fallenbagel
2026-03-14 23:47:21 +05:00
committed by GitHub
parent d25d0ca570
commit 0be18968b4
22 changed files with 479 additions and 70 deletions

View File

@@ -30,22 +30,17 @@ import Season from './Season';
class Media {
public static async getRelatedMedia(
user: User | undefined,
tmdbIds: number | number[]
items: { tmdbId: number; mediaType: string }[]
): Promise<Media[]> {
const mediaRepository = getRepository(Media);
try {
let finalIds: number[];
if (!Array.isArray(tmdbIds)) {
finalIds = [tmdbIds];
} else {
finalIds = tmdbIds;
}
if (finalIds.length === 0) {
if (items.length === 0) {
return [];
}
const finalIds = [...new Set(items.map((i) => i.tmdbId))];
const media = await mediaRepository
.createQueryBuilder('media')
.leftJoinAndSelect(
@@ -57,7 +52,9 @@ class Media {
.where(' media.tmdbId in (:...finalIds)', { finalIds })
.getMany();
return media;
return media.filter((m) =>
items.some((i) => i.tmdbId === m.tmdbId && i.mediaType === m.mediaType)
);
} catch (e) {
logger.error(e.message);
return [];