Fix wrong imdb id

This commit is contained in:
cxfksword 2023-05-13 11:17:48 +08:00
parent e32e897559
commit bf97db9fb4
3 changed files with 25 additions and 10 deletions

View File

@ -317,13 +317,6 @@ namespace Jellyfin.Plugin.MetaShark.Providers
return null; 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 // 通过imdb获取tmdbId
var findResult = await this._tmdbApi.FindByExternalIdAsync(imdb, TMDbLib.Objects.Find.FindExternalSource.Imdb, language, cancellationToken).ConfigureAwait(false); var findResult = await this._tmdbApi.FindByExternalIdAsync(imdb, TMDbLib.Objects.Find.FindExternalSource.Imdb, language, cancellationToken).ConfigureAwait(false);
if (findResult?.MovieResults != null && findResult.MovieResults.Count > 0) if (findResult?.MovieResults != null && findResult.MovieResults.Count > 0)
@ -343,6 +336,25 @@ namespace Jellyfin.Plugin.MetaShark.Providers
return null; return null;
} }
/// <summary>
/// 豆瓣的imdb id可能是旧的需要先从omdb接口获取最新的imdb id
/// </summary>
protected async Task<string> 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) public int? GuessSeasonNumberByDirectoryName(string path)
{ {

View File

@ -131,7 +131,9 @@ namespace Jellyfin.Plugin.MetaShark.Providers
}; };
if (!string.IsNullOrEmpty(subject.Imdb)) 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 // 通过imdb获取TMDB id
var newTmdbId = await this.GetTmdbIdByImdbAsync(subject.Imdb, info.MetadataLanguage, cancellationToken).ConfigureAwait(false); var newTmdbId = await this.GetTmdbIdByImdbAsync(subject.Imdb, info.MetadataLanguage, cancellationToken).ConfigureAwait(false);

View File

@ -117,7 +117,6 @@ namespace Jellyfin.Plugin.MetaShark.Providers
ProductionYear = subject.Year, ProductionYear = subject.Year,
HomePageUrl = "https://www.douban.com", HomePageUrl = "https://www.douban.com",
Genres = subject.Genres, Genres = subject.Genres,
// ProductionLocations = [x?.Country],
PremiereDate = subject.ScreenTime, PremiereDate = subject.ScreenTime,
Tagline = string.Empty, Tagline = string.Empty,
}; };
@ -125,7 +124,9 @@ namespace Jellyfin.Plugin.MetaShark.Providers
// 设置imdb元数据 // 设置imdb元数据
if (!string.IsNullOrEmpty(subject.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 // 搜索匹配tmdbId