diff --git a/Jellyfin.Plugin.MetaShark.Test/ParseNameTest.cs b/Jellyfin.Plugin.MetaShark.Test/ParseNameTest.cs index b48461a..32b9a08 100644 --- a/Jellyfin.Plugin.MetaShark.Test/ParseNameTest.cs +++ b/Jellyfin.Plugin.MetaShark.Test/ParseNameTest.cs @@ -190,6 +190,11 @@ namespace Jellyfin.Plugin.MetaShark.Test Assert.AreEqual(parseResult.ParentIndexNumber, null); Assert.AreEqual(parseResult.IndexNumber, 1); + fileName = "[異域字幕組][她和她的貓 - Everything Flows -][She and Her Cat - Everything Flows -][01][720p][繁體]"; + parseResult = NameParser.Parse(fileName); + Assert.AreEqual(parseResult.Name, "她和她的貓 - Everything Flows"); + Assert.AreEqual(parseResult.ParentIndexNumber, null); + Assert.AreEqual(parseResult.IndexNumber, 1); // anime特典 fileName = "[KissSub][Steins;Gate][SP][GB_BIG5_JP][BDrip][1080P][HEVC] 边界曲面的缺失之环"; diff --git a/Jellyfin.Plugin.MetaShark/Core/NameParser.cs b/Jellyfin.Plugin.MetaShark/Core/NameParser.cs index 385f5aa..4d71c8a 100644 --- a/Jellyfin.Plugin.MetaShark/Core/NameParser.cs +++ b/Jellyfin.Plugin.MetaShark/Core/NameParser.cs @@ -18,6 +18,8 @@ namespace Jellyfin.Plugin.MetaShark.Core private static readonly Regex fixSeasonNumberReg = new Regex(@"(\[|\.)S(\d{1,2})(\]|\.)", RegexOptions.Compiled | RegexOptions.IgnoreCase); + private static readonly Regex startWithHyphenCharReg = new Regex(@"^[-~~]", RegexOptions.Compiled); + public static ParseNameResult Parse(string fileName, bool isTvSeries = false) { var parseResult = new ParseNameResult(); @@ -35,7 +37,7 @@ namespace Jellyfin.Plugin.MetaShark.Core { var firstString = item.Value.Substring(0, firstSpaceIndex); var lastString = item.Value.Substring(firstSpaceIndex + 1); - if (firstString.HasChinese() && !lastString.HasChinese()) + if (firstString.HasChinese() && !lastString.HasChinese() && !startWithHyphenCharReg.IsMatch(lastString)) { parseResult.ChineseName = CleanName(firstString); parseResult.Name = CleanName(lastString); diff --git a/Jellyfin.Plugin.MetaShark/Providers/EpisodeProvider.cs b/Jellyfin.Plugin.MetaShark/Providers/EpisodeProvider.cs index 3e7b2f7..9df9242 100644 --- a/Jellyfin.Plugin.MetaShark/Providers/EpisodeProvider.cs +++ b/Jellyfin.Plugin.MetaShark/Providers/EpisodeProvider.cs @@ -139,7 +139,7 @@ namespace Jellyfin.Plugin.MetaShark.Providers var fileName = Path.GetFileNameWithoutExtension(info.Path) ?? info.Name; var parseResult = NameParser.Parse(fileName); info.Year = parseResult.Year; - info.Name = parseResult.Name; + info.Name = parseResult.ChineseName ?? parseResult.Name; // 没有season级目录或文件命名不规范时,ParentIndexNumber会为null if (info.ParentIndexNumber is null)