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