From be91a0af8a50191baf312e7f65272bd0e5acfcc8 Mon Sep 17 00:00:00 2001 From: cxfksword Date: Sun, 30 Oct 2022 17:24:43 +0800 Subject: [PATCH] Optimize season meta fetch --- .../Providers/EpisodeImageProvider.cs | 2 +- .../Providers/MovieImageProvider.cs | 2 +- .../Providers/MovieProvider.cs | 2 +- .../Providers/SeasonImageProvider.cs | 2 +- .../Providers/SeriesImageProvider.cs | 2 +- .../Providers/SeriesProvider.cs | 17 +++++++++++++++-- 6 files changed, 20 insertions(+), 7 deletions(-) diff --git a/Jellyfin.Plugin.MetaShark/Providers/EpisodeImageProvider.cs b/Jellyfin.Plugin.MetaShark/Providers/EpisodeImageProvider.cs index 33d2d35..0502970 100644 --- a/Jellyfin.Plugin.MetaShark/Providers/EpisodeImageProvider.cs +++ b/Jellyfin.Plugin.MetaShark/Providers/EpisodeImageProvider.cs @@ -34,7 +34,7 @@ namespace Jellyfin.Plugin.MetaShark.Providers /// Instance of the interface. /// Instance of . public EpisodeImageProvider(IHttpClientFactory httpClientFactory, ILoggerFactory loggerFactory, ILibraryManager libraryManager, DoubanApi doubanApi, TmdbApi tmdbApi, OmdbApi omdbApi) - : base(httpClientFactory, loggerFactory.CreateLogger(), libraryManager, doubanApi, tmdbApi, omdbApi) + : base(httpClientFactory, loggerFactory.CreateLogger(), libraryManager, doubanApi, tmdbApi, omdbApi) { } diff --git a/Jellyfin.Plugin.MetaShark/Providers/MovieImageProvider.cs b/Jellyfin.Plugin.MetaShark/Providers/MovieImageProvider.cs index 03412c5..7ef84bb 100644 --- a/Jellyfin.Plugin.MetaShark/Providers/MovieImageProvider.cs +++ b/Jellyfin.Plugin.MetaShark/Providers/MovieImageProvider.cs @@ -31,7 +31,7 @@ namespace Jellyfin.Plugin.MetaShark.Providers /// Instance of the interface. /// Instance of . public MovieImageProvider(IHttpClientFactory httpClientFactory, ILoggerFactory loggerFactory, ILibraryManager libraryManager, DoubanApi doubanApi, TmdbApi tmdbApi, OmdbApi omdbApi) - : base(httpClientFactory, loggerFactory.CreateLogger(), libraryManager, doubanApi, tmdbApi, omdbApi) + : base(httpClientFactory, loggerFactory.CreateLogger(), libraryManager, doubanApi, tmdbApi, omdbApi) { } diff --git a/Jellyfin.Plugin.MetaShark/Providers/MovieProvider.cs b/Jellyfin.Plugin.MetaShark/Providers/MovieProvider.cs index 783de92..22103f3 100644 --- a/Jellyfin.Plugin.MetaShark/Providers/MovieProvider.cs +++ b/Jellyfin.Plugin.MetaShark/Providers/MovieProvider.cs @@ -32,7 +32,7 @@ namespace Jellyfin.Plugin.MetaShark.Providers public class MovieProvider : BaseProvider, IRemoteMetadataProvider { public MovieProvider(IHttpClientFactory httpClientFactory, ILoggerFactory loggerFactory, ILibraryManager libraryManager, DoubanApi doubanApi, TmdbApi tmdbApi, OmdbApi omdbApi) - : base(httpClientFactory, loggerFactory.CreateLogger(), libraryManager, doubanApi, tmdbApi, omdbApi) + : base(httpClientFactory, loggerFactory.CreateLogger(), libraryManager, doubanApi, tmdbApi, omdbApi) { } diff --git a/Jellyfin.Plugin.MetaShark/Providers/SeasonImageProvider.cs b/Jellyfin.Plugin.MetaShark/Providers/SeasonImageProvider.cs index 847381c..382b34e 100644 --- a/Jellyfin.Plugin.MetaShark/Providers/SeasonImageProvider.cs +++ b/Jellyfin.Plugin.MetaShark/Providers/SeasonImageProvider.cs @@ -32,7 +32,7 @@ namespace Jellyfin.Plugin.MetaShark.Providers /// Instance of the interface. /// Instance of . public SeasonImageProvider(IHttpClientFactory httpClientFactory, ILoggerFactory loggerFactory, ILibraryManager libraryManager, DoubanApi doubanApi, TmdbApi tmdbApi, OmdbApi omdbApi) - : base(httpClientFactory, loggerFactory.CreateLogger(), libraryManager, doubanApi, tmdbApi, omdbApi) + : base(httpClientFactory, loggerFactory.CreateLogger(), libraryManager, doubanApi, tmdbApi, omdbApi) { } diff --git a/Jellyfin.Plugin.MetaShark/Providers/SeriesImageProvider.cs b/Jellyfin.Plugin.MetaShark/Providers/SeriesImageProvider.cs index a098e6f..12ecaa2 100644 --- a/Jellyfin.Plugin.MetaShark/Providers/SeriesImageProvider.cs +++ b/Jellyfin.Plugin.MetaShark/Providers/SeriesImageProvider.cs @@ -31,7 +31,7 @@ namespace Jellyfin.Plugin.MetaShark.Providers /// Instance of the interface. /// Instance of . public SeriesImageProvider(IHttpClientFactory httpClientFactory, ILoggerFactory loggerFactory, ILibraryManager libraryManager, DoubanApi doubanApi, TmdbApi tmdbApi, OmdbApi omdbApi) - : base(httpClientFactory, loggerFactory.CreateLogger(), libraryManager, doubanApi, tmdbApi, omdbApi) + : base(httpClientFactory, loggerFactory.CreateLogger(), libraryManager, doubanApi, tmdbApi, omdbApi) { } diff --git a/Jellyfin.Plugin.MetaShark/Providers/SeriesProvider.cs b/Jellyfin.Plugin.MetaShark/Providers/SeriesProvider.cs index 6177b7f..c4fb435 100644 --- a/Jellyfin.Plugin.MetaShark/Providers/SeriesProvider.cs +++ b/Jellyfin.Plugin.MetaShark/Providers/SeriesProvider.cs @@ -119,6 +119,8 @@ namespace Jellyfin.Plugin.MetaShark.Providers // ProductionLocations = [x?.Country], PremiereDate = subject.ScreenTime, }; + + // 通过imdb获取tmdbId if (!string.IsNullOrEmpty(subject.Imdb)) { item.SetProviderId(MetadataProvider.Imdb, subject.Imdb); @@ -131,13 +133,24 @@ namespace Jellyfin.Plugin.MetaShark.Providers var findResult = await this._tmdbApi.FindByExternalIdAsync(omdbItem.ImdbID, FindExternalSource.Imdb, info.MetadataLanguage, cancellationToken).ConfigureAwait(false); if (findResult?.TvResults != null && findResult.TvResults.Count > 0) { - this.Log($"GetSeriesMetadata found tmdb [id]: {findResult.TvResults[0].Id} by imdb id: {subject.Imdb}"); - item.SetProviderId(MetadataProvider.Tmdb, $"{findResult.TvResults[0].Id}"); + tmdbId = $"{findResult.TvResults[0].Id}"; + this.Log($"GetSeriesMetadata found tmdb [id]: {tmdbId} by imdb id: {subject.Imdb}"); + item.SetProviderId(MetadataProvider.Tmdb, tmdbId); } } } } + // 尝试通过搜索匹配获取tmdbId + if (string.IsNullOrEmpty(tmdbId)) + { + tmdbId = await this.GuestByTmdbAsync(info, cancellationToken).ConfigureAwait(false); + if (!string.IsNullOrEmpty(tmdbId)) + { + item.SetProviderId(MetadataProvider.Tmdb, tmdbId); + } + } + result.Item = item; result.QueriedById = true;