feat(metadata): fetch from imdb suggestion data

This commit is contained in:
Viren070
2025-11-16 19:20:47 +00:00
parent 97f61ea322
commit 98c398ba46
2 changed files with 30 additions and 13 deletions
+1 -1
View File
@@ -83,7 +83,7 @@ export class IMDBMetadata {
}
}
private async getImdbSuggestionData(
public async getImdbSuggestionData(
id: string,
type: string
): Promise<Metadata> {
+29 -12
View File
@@ -130,23 +130,27 @@ export class MetadataService {
// IMDb metadata
if (imdbId) {
promises.push(new IMDBMetadata().getCinemetaData(imdbId, type));
const imdbMetadata = new IMDBMetadata();
promises.push(imdbMetadata.getCinemetaData(imdbId, type));
promises.push(imdbMetadata.getImdbSuggestionData(imdbId, type));
} else {
promises.push(Promise.resolve(undefined));
}
// Execute all promises in parallel
const [tmdbResult, tvdbResult, traktResult, imdbResult] =
(await Promise.allSettled(promises)) as [
PromiseSettledResult<
(Metadata & { tmdbId: string }) | undefined
>,
PromiseSettledResult<
(Metadata & { tvdbId: number }) | undefined
>,
PromiseSettledResult<string[] | undefined>,
PromiseSettledResult<Meta | undefined>,
];
const [
tmdbResult,
tvdbResult,
traktResult,
imdbResult,
imdbSuggestionResult,
] = (await Promise.allSettled(promises)) as [
PromiseSettledResult<(Metadata & { tmdbId: string }) | undefined>,
PromiseSettledResult<(Metadata & { tvdbId: number }) | undefined>,
PromiseSettledResult<string[] | undefined>,
PromiseSettledResult<Meta | undefined>,
PromiseSettledResult<Metadata | undefined>,
];
// Process TMDB results
if (tmdbResult.status === 'fulfilled' && tmdbResult.value) {
@@ -262,6 +266,19 @@ export class MetadataService {
);
}
if (
imdbSuggestionResult.status === 'fulfilled' &&
imdbSuggestionResult.value
) {
const imdbSuggestionData = imdbSuggestionResult.value;
if (imdbSuggestionData.title)
titles.unshift(imdbSuggestionData.title);
if (imdbSuggestionData.year && !year)
year = imdbSuggestionData.year;
if (imdbSuggestionData.yearEnd && !yearEnd)
yearEnd = imdbSuggestionData.yearEnd;
}
// Deduplicate titles, lowercase all before deduplication
const uniqueTitles = [
...new Set(titles.map((title) => title.toLowerCase())),