Optimize tmdb find

This commit is contained in:
cxfksword 2023-05-28 14:44:05 +08:00
parent 92215507b8
commit 71335df943
1 changed files with 15 additions and 4 deletions

View File

@ -303,12 +303,23 @@ namespace Jellyfin.Plugin.MetaShark.Providers
break;
case SeriesInfo:
var seriesResults = await this._tmdbApi.SearchSeriesAsync(name, info.MetadataLanguage, cancellationToken).ConfigureAwait(false);
if (year > 0)
// 年份在豆瓣可能匹配到第三季但tmdb年份都是第一季的可能匹配不上例如脱口秀大会
// 优先年份和名称同时匹配
var seriesItem = seriesResults.Where(x => (x.Name == name || x.OriginalName == name) && x.FirstAirDate?.Year == year).FirstOrDefault();
if (seriesItem != null)
{
seriesResults = seriesResults.Where(x => x.FirstAirDate?.Year == year).ToList();
this.Log($"Found tmdb [id]: -> {seriesItem.Name}({seriesItem.Id})");
return seriesItem.Id.ToString(CultureInfo.InvariantCulture);
}
// 结果可能多个,优先取名称完全相同的,可能综艺会有纯享版等非标准版本
var seriesItem = seriesResults.Where(x => x.Name == name || x.OriginalName == name).FirstOrDefault();
// 年份匹配
seriesItem = seriesResults.Where(x => x.FirstAirDate?.Year == year).FirstOrDefault();
if (seriesItem != null)
{
this.Log($"Found tmdb [id]: -> {seriesItem.Name}({seriesItem.Id})");
return seriesItem.Id.ToString(CultureInfo.InvariantCulture);
}
// 取名称完全相同的,可能综艺会有纯享版等非标准版本(例如:一年一度喜剧大赛)
seriesItem = seriesResults.Where(x => x.Name == name || x.OriginalName == name).FirstOrDefault();
if (seriesItem != null)
{
this.Log($"Found tmdb [id]: -> {seriesItem.Name}({seriesItem.Id})");