diff --git a/Jellyfin.Plugin.MetaShark.Test/EpisodeProviderTest.cs b/Jellyfin.Plugin.MetaShark.Test/EpisodeProviderTest.cs
index 41ff6ff..4ddb907 100644
--- a/Jellyfin.Plugin.MetaShark.Test/EpisodeProviderTest.cs
+++ b/Jellyfin.Plugin.MetaShark.Test/EpisodeProviderTest.cs
@@ -42,6 +42,9 @@ namespace Jellyfin.Plugin.MetaShark.Test
indexNumber = provider.GuessEpisodeNumber("Fullmetal Alchemist Brotherhood.E05.1920X1080");
Assert.AreEqual(indexNumber, 5);
+
+ indexNumber = provider.GuessEpisodeNumber("[SAIO-Raws] Neon Genesis Evangelion 05 [BD 1440x1080 HEVC-10bit OPUSx2 ASSx2].mkv");
+ Assert.AreEqual(indexNumber, 5);
}
}
diff --git a/Jellyfin.Plugin.MetaShark.Test/Jellyfin.Plugin.MetaShark.Test.csproj b/Jellyfin.Plugin.MetaShark.Test/Jellyfin.Plugin.MetaShark.Test.csproj
index 7e473a4..f78e44e 100644
--- a/Jellyfin.Plugin.MetaShark.Test/Jellyfin.Plugin.MetaShark.Test.csproj
+++ b/Jellyfin.Plugin.MetaShark.Test/Jellyfin.Plugin.MetaShark.Test.csproj
@@ -14,6 +14,8 @@
+
+
diff --git a/Jellyfin.Plugin.MetaShark/Api/DoubanApi.cs b/Jellyfin.Plugin.MetaShark/Api/DoubanApi.cs
index 8455117..ed7dfb9 100644
--- a/Jellyfin.Plugin.MetaShark/Api/DoubanApi.cs
+++ b/Jellyfin.Plugin.MetaShark/Api/DoubanApi.cs
@@ -354,7 +354,7 @@ namespace Jellyfin.Plugin.MetaShark.Api
list.Add(celebrity);
}
- _memoryCache.Set>(cacheKey, list.Take(15).ToList(), expiredOption);
+ _memoryCache.Set>(cacheKey, list, expiredOption);
return list;
}
diff --git a/Jellyfin.Plugin.MetaShark/Core/StringExtension.cs b/Jellyfin.Plugin.MetaShark/Core/StringExtension.cs
index 36a42e1..6f42527 100644
--- a/Jellyfin.Plugin.MetaShark/Core/StringExtension.cs
+++ b/Jellyfin.Plugin.MetaShark/Core/StringExtension.cs
@@ -56,7 +56,7 @@ namespace Jellyfin.Plugin.MetaShark.Core
var match = reg.Match(text);
if (match.Success && match.Groups.Count > 1)
{
- return match.Groups[1].Value;
+ return match.Groups[1].Value.Trim();
}
return string.Empty;
diff --git a/Jellyfin.Plugin.MetaShark/Providers/EpisodeProvider.cs b/Jellyfin.Plugin.MetaShark/Providers/EpisodeProvider.cs
index 638333c..ac04833 100644
--- a/Jellyfin.Plugin.MetaShark/Providers/EpisodeProvider.cs
+++ b/Jellyfin.Plugin.MetaShark/Providers/EpisodeProvider.cs
@@ -78,6 +78,7 @@ namespace Jellyfin.Plugin.MetaShark.Providers
// 修正anime命名格式导致的episodeNumber错误
var fileName = Path.GetFileName(info.Path) ?? string.Empty;
var newEpisodeNumber = this.GuessEpisodeNumber(fileName);
+ this.Log("GuessEpisodeNumber: fileName: {0} episodeNumber: {1}", fileName, newEpisodeNumber);
if (newEpisodeNumber.HasValue && newEpisodeNumber != episodeNumber)
{
episodeNumber = newEpisodeNumber;
@@ -88,7 +89,6 @@ namespace Jellyfin.Plugin.MetaShark.Providers
ParentIndexNumber = seasonNumber,
IndexNumber = episodeNumber
};
- this.Log("GuessEpisodeNumber: fileName: {0} episodeNumber: {1}", fileName, newEpisodeNumber);
}
@@ -156,14 +156,17 @@ namespace Jellyfin.Plugin.MetaShark.Providers
episodeIndex = result.Value.ToInt();
}
- foreach (var regex in EpisodeFileNameRegex)
+ if (!episodeIndex.HasValue)
{
- if (!regex.IsMatch(fileName))
- continue;
- if (!int.TryParse(regex.Match(fileName).Groups[1].Value.Trim('.'), out var index))
- continue;
- episodeIndex = index;
- break;
+ foreach (var regex in EpisodeFileNameRegex)
+ {
+ if (!regex.IsMatch(fileName))
+ continue;
+ if (!int.TryParse(regex.Match(fileName).Groups[1].Value.Trim('.'), out var index))
+ continue;
+ episodeIndex = index;
+ break;
+ }
}
if (episodeIndex > 1000)
diff --git a/Jellyfin.Plugin.MetaShark/Providers/MovieProvider.cs b/Jellyfin.Plugin.MetaShark/Providers/MovieProvider.cs
index 2251bdd..ff7bf47 100644
--- a/Jellyfin.Plugin.MetaShark/Providers/MovieProvider.cs
+++ b/Jellyfin.Plugin.MetaShark/Providers/MovieProvider.cs
@@ -140,7 +140,7 @@ namespace Jellyfin.Plugin.MetaShark.Providers
result.Item = movie;
result.QueriedById = true;
result.HasMetadata = true;
- subject.Celebrities.ForEach(c => result.AddPerson(new PersonInfo
+ subject.Celebrities.Take(this._config.MaxCastMembers).ToList().ForEach(c => result.AddPerson(new PersonInfo
{
Name = c.Name,
Type = c.RoleType,
diff --git a/Jellyfin.Plugin.MetaShark/Providers/SeasonProvider.cs b/Jellyfin.Plugin.MetaShark/Providers/SeasonProvider.cs
index 62500c4..6b6daba 100644
--- a/Jellyfin.Plugin.MetaShark/Providers/SeasonProvider.cs
+++ b/Jellyfin.Plugin.MetaShark/Providers/SeasonProvider.cs
@@ -122,7 +122,7 @@ namespace Jellyfin.Plugin.MetaShark.Providers
result.Item = movie;
result.HasMetadata = true;
- subject.Celebrities.ForEach(c => result.AddPerson(new PersonInfo
+ subject.Celebrities.Take(this._config.MaxCastMembers).ToList().ForEach(c => result.AddPerson(new PersonInfo
{
Name = c.Name,
Type = c.RoleType,
diff --git a/Jellyfin.Plugin.MetaShark/Providers/SeriesProvider.cs b/Jellyfin.Plugin.MetaShark/Providers/SeriesProvider.cs
index 808b1b5..4ab02c7 100644
--- a/Jellyfin.Plugin.MetaShark/Providers/SeriesProvider.cs
+++ b/Jellyfin.Plugin.MetaShark/Providers/SeriesProvider.cs
@@ -139,7 +139,7 @@ namespace Jellyfin.Plugin.MetaShark.Providers
result.Item = item;
result.QueriedById = true;
result.HasMetadata = true;
- subject.Celebrities.ForEach(c => result.AddPerson(new PersonInfo
+ subject.Celebrities.Take(this._config.MaxCastMembers).ToList().ForEach(c => result.AddPerson(new PersonInfo
{
Name = c.Name,
Type = c.RoleType,