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