Optimize code
This commit is contained in:
parent
367dcf882c
commit
a49dcc71dc
|
@ -229,6 +229,28 @@ namespace Jellyfin.Plugin.MetaShark.Providers
|
|||
return null;
|
||||
}
|
||||
|
||||
// 通过imdb获取tmdbId
|
||||
protected async Task<string?> GetTmdbIdByImdbAsync(string imdb, string language, CancellationToken cancellationToken)
|
||||
{
|
||||
if (string.IsNullOrEmpty(imdb))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
// 通过imdb获取TMDB id (豆瓣的imdb id可能是旧的,需要先从omdb接口获取最新的imdb id
|
||||
var omdbItem = await this._omdbApi.GetByImdbID(imdb, cancellationToken).ConfigureAwait(false);
|
||||
if (omdbItem != null)
|
||||
{
|
||||
var findResult = await this._tmdbApi.FindByExternalIdAsync(omdbItem.ImdbID, TMDbLib.Objects.Find.FindExternalSource.Imdb, language, cancellationToken).ConfigureAwait(false);
|
||||
if (findResult?.TvResults != null && findResult.TvResults.Count > 0)
|
||||
{
|
||||
this.Log($"GetSeriesMetadata found tmdb [id]: {findResult.TvResults[0].Id} by imdb id: {imdb}");
|
||||
return $"{findResult.TvResults[0].Id}";
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@ namespace Jellyfin.Plugin.MetaShark.Providers
|
|||
}
|
||||
var seriesName = series.Name;
|
||||
|
||||
// 存在tmdbid,尝试从tmdb获取对应季的年份信息,用于从豆瓣搜索对应季数据
|
||||
// 没有季id,但存在tmdbid,尝试从tmdb获取对应季的年份信息,用于从豆瓣搜索对应季数据
|
||||
if (string.IsNullOrEmpty(seasonSid))
|
||||
{
|
||||
var seasonYear = 0;
|
||||
|
@ -131,7 +131,7 @@ namespace Jellyfin.Plugin.MetaShark.Providers
|
|||
}
|
||||
|
||||
|
||||
// 从豆瓣获取不到季信息,直接使用series信息
|
||||
// 从豆瓣获取不到季信息,直接使用series信息(还是不替换旧有信息好??)
|
||||
result.Item = new Season
|
||||
{
|
||||
ProviderIds = new Dictionary<string, string> { { DoubanProviderId, sid } },
|
||||
|
|
|
@ -126,17 +126,10 @@ namespace Jellyfin.Plugin.MetaShark.Providers
|
|||
item.SetProviderId(MetadataProvider.Imdb, subject.Imdb);
|
||||
if (string.IsNullOrEmpty(tmdbId))
|
||||
{
|
||||
// 通过imdb获取TMDB id (豆瓣的imdb id可能是旧的,需要先从omdb接口获取最新的imdb id
|
||||
var omdbItem = await this._omdbApi.GetByImdbID(subject.Imdb, cancellationToken).ConfigureAwait(false);
|
||||
if (omdbItem != null)
|
||||
tmdbId = await this.GetTmdbIdByImdbAsync(subject.Imdb, info.MetadataLanguage, cancellationToken).ConfigureAwait(false);
|
||||
if (!string.IsNullOrEmpty(tmdbId))
|
||||
{
|
||||
var findResult = await this._tmdbApi.FindByExternalIdAsync(omdbItem.ImdbID, FindExternalSource.Imdb, info.MetadataLanguage, cancellationToken).ConfigureAwait(false);
|
||||
if (findResult?.TvResults != null && findResult.TvResults.Count > 0)
|
||||
{
|
||||
tmdbId = $"{findResult.TvResults[0].Id}";
|
||||
this.Log($"GetSeriesMetadata found tmdb [id]: {tmdbId} by imdb id: {subject.Imdb}");
|
||||
item.SetProviderId(MetadataProvider.Tmdb, tmdbId);
|
||||
}
|
||||
item.SetProviderId(MetadataProvider.Tmdb, tmdbId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue