Skip to content

Commit

Permalink
fix(plex): find TV series in addition to movies from IMDb IDs (#1830)
Browse files Browse the repository at this point in the history
  • Loading branch information
TheCatLady committed Mar 14, 2022
1 parent 4c50727 commit 30644f6
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 12 deletions.
19 changes: 13 additions & 6 deletions server/api/themoviedb/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -561,13 +561,13 @@ class TheMovieDb extends ExternalAPI {
}
}

public async getMovieByImdbId({
public async getMediaByImdbId({
imdbId,
language = 'en',
}: {
imdbId: string;
language?: string;
}): Promise<TmdbMovieDetails> {
}): Promise<TmdbMovieDetails | TmdbTvDetails> {
try {
const extResponse = await this.getByExternalId({
externalId: imdbId,
Expand All @@ -583,12 +583,19 @@ class TheMovieDb extends ExternalAPI {
return movie;
}

throw new Error(
'[TMDb] Failed to find a title with the provided IMDB id'
);
if (extResponse.tv_results[0]) {
const tvshow = await this.getTvShow({
tvId: extResponse.tv_results[0].id,
language,
});

return tvshow;
}

throw new Error(`No movie or show returned from API for ID ${imdbId}`);
} catch (e) {
throw new Error(
`[TMDb] Failed to get movie by external imdb ID: ${e.message}`
`[TMDb] Failed to find media using external IMDb ID: ${e.message}`
);
}
}
Expand Down
12 changes: 6 additions & 6 deletions server/lib/scanners/plex/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -371,10 +371,10 @@ class PlexScanner

// If we got an IMDb ID, but no TMDb ID, lookup the TMDb ID with the IMDb ID
if (mediaIds.imdbId && !mediaIds.tmdbId) {
const tmdbMovie = await this.tmdb.getMovieByImdbId({
const tmdbMedia = await this.tmdb.getMediaByImdbId({
imdbId: mediaIds.imdbId,
});
mediaIds.tmdbId = tmdbMovie.id;
mediaIds.tmdbId = tmdbMedia.id;
}

// Cache GUIDs
Expand All @@ -385,10 +385,10 @@ class PlexScanner
const imdbMatch = plexitem.guid.match(imdbRegex);
if (imdbMatch) {
mediaIds.imdbId = imdbMatch[1];
const tmdbMovie = await this.tmdb.getMovieByImdbId({
const tmdbMedia = await this.tmdb.getMediaByImdbId({
imdbId: mediaIds.imdbId,
});
mediaIds.tmdbId = tmdbMovie.id;
mediaIds.tmdbId = tmdbMedia.id;
}
// Check if the agent is TMDb
} else if (plexitem.guid.match(tmdbRegex)) {
Expand Down Expand Up @@ -473,7 +473,7 @@ class PlexScanner
mediaIds.tmdbId = result.tmdbId;
mediaIds.imdbId = result?.imdbId;
} else if (result?.imdbId) {
const tmdbMovie = await this.tmdb.getMovieByImdbId({
const tmdbMovie = await this.tmdb.getMediaByImdbId({
imdbId: result.imdbId,
});
mediaIds.tmdbId = tmdbMovie.id;
Expand Down Expand Up @@ -522,7 +522,7 @@ class PlexScanner
if (special.tmdbId) {
await this.processPlexMovieByTmdbId(episode, special.tmdbId);
} else if (special.imdbId) {
const tmdbMovie = await this.tmdb.getMovieByImdbId({
const tmdbMovie = await this.tmdb.getMediaByImdbId({
imdbId: special.imdbId,
});
await this.processPlexMovieByTmdbId(episode, tmdbMovie.id);
Expand Down

0 comments on commit 30644f6

Please sign in to comment.