From 2eca5c9a22b6c7d646233e26dad5489393818b34 Mon Sep 17 00:00:00 2001
From: cxfksword <718792+cxfksword@users.noreply.github.com>
Date: Sat, 13 Apr 2024 15:25:54 +0800
Subject: [PATCH] fix: fix find tmdb id by season imdb
---
Jellyfin.Plugin.MetaShark.Test/TmdbApiTest.cs | 23 +++++++++++++++++++
.../Jellyfin.Plugin.MetaShark.csproj | 2 +-
.../Providers/BaseProvider.cs | 13 +++++++++++
3 files changed, 37 insertions(+), 1 deletion(-)
diff --git a/Jellyfin.Plugin.MetaShark.Test/TmdbApiTest.cs b/Jellyfin.Plugin.MetaShark.Test/TmdbApiTest.cs
index 1e0563d..ee1891e 100644
--- a/Jellyfin.Plugin.MetaShark.Test/TmdbApiTest.cs
+++ b/Jellyfin.Plugin.MetaShark.Test/TmdbApiTest.cs
@@ -8,6 +8,7 @@ using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
+using TMDbLib.Objects.Find;
using TMDbLib.Objects.Languages;
namespace Jellyfin.Plugin.MetaShark.Test
@@ -124,5 +125,27 @@ namespace Jellyfin.Plugin.MetaShark.Test
}).GetAwaiter().GetResult();
}
+
+ [TestMethod]
+ public void TestFindByExternalId()
+ {
+ var api = new TmdbApi(loggerFactory);
+
+ Task.Run(async () =>
+ {
+ try
+ {
+ var result = await api.FindByExternalIdAsync("tt5924366", FindExternalSource.Imdb, "zh", CancellationToken.None)
+ .ConfigureAwait(false);
+ Assert.IsNotNull(result);
+ TestContext.WriteLine(result.ToJson());
+ }
+ catch (Exception ex)
+ {
+ TestContext.WriteLine(ex.Message);
+ }
+ }).GetAwaiter().GetResult();
+ }
+
}
}
diff --git a/Jellyfin.Plugin.MetaShark/Jellyfin.Plugin.MetaShark.csproj b/Jellyfin.Plugin.MetaShark/Jellyfin.Plugin.MetaShark.csproj
index 93372bc..cbc3b63 100644
--- a/Jellyfin.Plugin.MetaShark/Jellyfin.Plugin.MetaShark.csproj
+++ b/Jellyfin.Plugin.MetaShark/Jellyfin.Plugin.MetaShark.csproj
@@ -25,7 +25,7 @@
-
+
diff --git a/Jellyfin.Plugin.MetaShark/Providers/BaseProvider.cs b/Jellyfin.Plugin.MetaShark/Providers/BaseProvider.cs
index bf08d91..adce066 100644
--- a/Jellyfin.Plugin.MetaShark/Providers/BaseProvider.cs
+++ b/Jellyfin.Plugin.MetaShark/Providers/BaseProvider.cs
@@ -351,6 +351,18 @@ namespace Jellyfin.Plugin.MetaShark.Providers
this.Log($"Found tmdb [id]: {tmdbId} by imdb id: {imdb}");
return $"{tmdbId}";
}
+ if (findResult?.TvEpisode != null && findResult.TvEpisode.Count > 0)
+ {
+ var tmdbId = findResult.TvEpisode[0].ShowId;
+ this.Log($"Found tmdb [id]: {tmdbId} by imdb id: {imdb}");
+ return $"{tmdbId}";
+ }
+ if (findResult?.TvSeason != null && findResult.TvSeason.Count > 0)
+ {
+ var tmdbId = findResult.TvSeason[0].ShowId;
+ this.Log($"Found tmdb [id]: {tmdbId} by imdb id: {imdb}");
+ return $"{tmdbId}";
+ }
break;
default:
break;
@@ -386,6 +398,7 @@ namespace Jellyfin.Plugin.MetaShark.Providers
// 当没有season级目录时,path为空,直接返回
if (string.IsNullOrEmpty(path))
{
+ this.Log($"Season path is empty!");
return null;
}