diff --git a/Jellyfin.Plugin.MetaShark/Providers/BaseProvider.cs b/Jellyfin.Plugin.MetaShark/Providers/BaseProvider.cs index 7f05a16..b56ae2a 100644 --- a/Jellyfin.Plugin.MetaShark/Providers/BaseProvider.cs +++ b/Jellyfin.Plugin.MetaShark/Providers/BaseProvider.cs @@ -317,13 +317,6 @@ namespace Jellyfin.Plugin.MetaShark.Providers return null; } - // 豆瓣的imdb id可能是旧的,需要先从omdb接口获取最新的imdb id - var omdbItem = await this._omdbApi.GetByImdbID(imdb, cancellationToken).ConfigureAwait(false); - if (!string.IsNullOrEmpty(omdbItem?.ImdbID)) - { - imdb = omdbItem.ImdbID; - } - // 通过imdb获取tmdbId var findResult = await this._tmdbApi.FindByExternalIdAsync(imdb, TMDbLib.Objects.Find.FindExternalSource.Imdb, language, cancellationToken).ConfigureAwait(false); if (findResult?.MovieResults != null && findResult.MovieResults.Count > 0) @@ -343,6 +336,25 @@ namespace Jellyfin.Plugin.MetaShark.Providers return null; } + /// + /// 豆瓣的imdb id可能是旧的,需要先从omdb接口获取最新的imdb id + /// + protected async Task CheckNewImdbID(string imdb, CancellationToken cancellationToken) + { + if (string.IsNullOrEmpty(imdb)) + { + return imdb; + } + + var omdbItem = await this._omdbApi.GetByImdbID(imdb, cancellationToken).ConfigureAwait(false); + if (!string.IsNullOrEmpty(omdbItem?.ImdbID)) + { + imdb = omdbItem.ImdbID; + } + + return imdb; + } + public int? GuessSeasonNumberByDirectoryName(string path) { diff --git a/Jellyfin.Plugin.MetaShark/Providers/MovieProvider.cs b/Jellyfin.Plugin.MetaShark/Providers/MovieProvider.cs index 07d9d20..5e4c9cb 100644 --- a/Jellyfin.Plugin.MetaShark/Providers/MovieProvider.cs +++ b/Jellyfin.Plugin.MetaShark/Providers/MovieProvider.cs @@ -131,7 +131,9 @@ namespace Jellyfin.Plugin.MetaShark.Providers }; if (!string.IsNullOrEmpty(subject.Imdb)) { - movie.SetProviderId(MetadataProvider.Imdb, subject.Imdb); + var newImdbId = await this.CheckNewImdbID(subject.Imdb, cancellationToken).ConfigureAwait(false); + subject.Imdb = newImdbId; + movie.SetProviderId(MetadataProvider.Imdb, newImdbId); // 通过imdb获取TMDB id var newTmdbId = await this.GetTmdbIdByImdbAsync(subject.Imdb, info.MetadataLanguage, cancellationToken).ConfigureAwait(false); diff --git a/Jellyfin.Plugin.MetaShark/Providers/SeriesProvider.cs b/Jellyfin.Plugin.MetaShark/Providers/SeriesProvider.cs index 81b59bb..7860dec 100644 --- a/Jellyfin.Plugin.MetaShark/Providers/SeriesProvider.cs +++ b/Jellyfin.Plugin.MetaShark/Providers/SeriesProvider.cs @@ -117,7 +117,6 @@ namespace Jellyfin.Plugin.MetaShark.Providers ProductionYear = subject.Year, HomePageUrl = "https://www.douban.com", Genres = subject.Genres, - // ProductionLocations = [x?.Country], PremiereDate = subject.ScreenTime, Tagline = string.Empty, }; @@ -125,7 +124,9 @@ namespace Jellyfin.Plugin.MetaShark.Providers // 设置imdb元数据 if (!string.IsNullOrEmpty(subject.Imdb)) { - item.SetProviderId(MetadataProvider.Imdb, subject.Imdb); + var newImdbId = await this.CheckNewImdbID(subject.Imdb, cancellationToken).ConfigureAwait(false); + subject.Imdb = newImdbId; + item.SetProviderId(MetadataProvider.Imdb, newImdbId); } // 搜索匹配tmdbId