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;
}
// 豆瓣的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;
}
/// <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)
{

View File

@ -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);

View File

@ -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