From e982ea123310ed338d91d0dd63aefee5df4aab9f Mon Sep 17 00:00:00 2001 From: cxfksword <718792+cxfksword@users.noreply.github.com> Date: Fri, 17 Feb 2023 14:44:35 +0800 Subject: [PATCH] Support movie collections --- .../Providers/MovieProvider.cs | 39 +++++++++---------- .../Providers/SeriesProvider.cs | 12 +++--- 2 files changed, 24 insertions(+), 27 deletions(-) diff --git a/Jellyfin.Plugin.MetaShark/Providers/MovieProvider.cs b/Jellyfin.Plugin.MetaShark/Providers/MovieProvider.cs index 42ec160..40f5230 100644 --- a/Jellyfin.Plugin.MetaShark/Providers/MovieProvider.cs +++ b/Jellyfin.Plugin.MetaShark/Providers/MovieProvider.cs @@ -134,27 +134,26 @@ namespace Jellyfin.Plugin.MetaShark.Providers movie.SetProviderId(MetadataProvider.Imdb, subject.Imdb); // 通过imdb获取TMDB id - if (string.IsNullOrEmpty(tmdbId)) + tmdbId = await this.GetTmdbIdByImdbAsync(subject.Imdb, info.MetadataLanguage, cancellationToken).ConfigureAwait(false); + if (!string.IsNullOrEmpty(tmdbId)) { - tmdbId = await this.GetTmdbIdByImdbAsync(subject.Imdb, info.MetadataLanguage, cancellationToken).ConfigureAwait(false); - if (!string.IsNullOrEmpty(tmdbId)) - { - movie.SetProviderId(MetadataProvider.Tmdb, tmdbId); - - // 获取电影系列信息 - if (this.config.EnableTmdbCollection) - { - var movieResult = await _tmdbApi - .GetMovieAsync(Convert.ToInt32(tmdbId, CultureInfo.InvariantCulture), info.MetadataLanguage, info.MetadataLanguage, cancellationToken) - .ConfigureAwait(false); - if (movieResult != null && movieResult.BelongsToCollection != null) - { - movie.CollectionName = movieResult.BelongsToCollection.Name; - } - } - } + movie.SetProviderId(MetadataProvider.Tmdb, tmdbId); } } + + // 通过imdb获取电影系列信息 + if (this.config.EnableTmdbCollection && !string.IsNullOrEmpty(tmdbId)) + { + var movieResult = await _tmdbApi + .GetMovieAsync(Convert.ToInt32(tmdbId, CultureInfo.InvariantCulture), info.MetadataLanguage, info.MetadataLanguage, cancellationToken) + .ConfigureAwait(false); + if (movieResult != null && movieResult.BelongsToCollection != null) + { + movie.CollectionName = movieResult.BelongsToCollection.Name; + } + } + + result.Item = movie; result.QueriedById = true; result.HasMetadata = true; @@ -175,8 +174,8 @@ namespace Jellyfin.Plugin.MetaShark.Providers { this.Log($"GetMovieMetadata of tmdb [id]: \"{tmdbId}\""); var movieResult = await _tmdbApi - .GetMovieAsync(Convert.ToInt32(tmdbId, CultureInfo.InvariantCulture), info.MetadataLanguage, info.MetadataLanguage, cancellationToken) - .ConfigureAwait(false); + .GetMovieAsync(Convert.ToInt32(tmdbId, CultureInfo.InvariantCulture), info.MetadataLanguage, info.MetadataLanguage, cancellationToken) + .ConfigureAwait(false); if (movieResult == null) { diff --git a/Jellyfin.Plugin.MetaShark/Providers/SeriesProvider.cs b/Jellyfin.Plugin.MetaShark/Providers/SeriesProvider.cs index a41737b..28b0b10 100644 --- a/Jellyfin.Plugin.MetaShark/Providers/SeriesProvider.cs +++ b/Jellyfin.Plugin.MetaShark/Providers/SeriesProvider.cs @@ -121,17 +121,15 @@ namespace Jellyfin.Plugin.MetaShark.Providers PremiereDate = subject.ScreenTime, }; - // 通过imdb获取tmdbId if (!string.IsNullOrEmpty(subject.Imdb)) { item.SetProviderId(MetadataProvider.Imdb, subject.Imdb); - if (string.IsNullOrEmpty(tmdbId)) + + // 通过imdb获取TMDB id + tmdbId = await this.GetTmdbIdByImdbAsync(subject.Imdb, info.MetadataLanguage, cancellationToken).ConfigureAwait(false); + if (!string.IsNullOrEmpty(tmdbId)) { - tmdbId = await this.GetTmdbIdByImdbAsync(subject.Imdb, info.MetadataLanguage, cancellationToken).ConfigureAwait(false); - if (!string.IsNullOrEmpty(tmdbId)) - { - item.SetProviderId(MetadataProvider.Tmdb, tmdbId); - } + item.SetProviderId(MetadataProvider.Tmdb, tmdbId); } }