From 10c3414920a1f1652a6102ccadccea587a87b78b Mon Sep 17 00:00:00 2001 From: cxfksword <718792+cxfksword@users.noreply.github.com> Date: Wed, 7 Feb 2024 11:54:39 +0800 Subject: [PATCH] fix: can't parse name with number. close #64 --- AnitomySharp/ParserHelper.cs | 3 +++ Jellyfin.Plugin.MetaShark.Test/ParseNameTest.cs | 7 ++++++- Jellyfin.Plugin.MetaShark/ILRepack.targets | 2 +- README.md | 4 ++-- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/AnitomySharp/ParserHelper.cs b/AnitomySharp/ParserHelper.cs index fc9d2c7..904666e 100644 --- a/AnitomySharp/ParserHelper.cs +++ b/AnitomySharp/ParserHelper.cs @@ -273,6 +273,7 @@ namespace AnitomySharp var prevToken = Token.FindPrevToken(_parser.Tokens, pos, Token.TokenFlag.FlagNotDelimiter); if (!IsTokenCategory(prevToken, Token.TokenCategory.Bracket)) return false; var nextToken = Token.FindNextToken(_parser.Tokens, pos, Token.TokenFlag.FlagNotDelimiter); + if (nextToken < 0) return false; return KeywordManager.Contains(Element.ElementCategory.ElementAnimeType, _parser.Tokens[nextToken].Content); } /// @@ -285,6 +286,7 @@ namespace AnitomySharp var prevToken = Token.FindPrevToken(_parser.Tokens, pos, Token.TokenFlag.FlagNotDelimiter); var nextToken = Token.FindNextToken(_parser.Tokens, pos, Token.TokenFlag.FlagNotDelimiter); if (!IsTokenCategory(nextToken, Token.TokenCategory.Bracket)) return false; + if (prevToken < 0) return false; return KeywordManager.Contains(Element.ElementCategory.ElementAnimeType, _parser.Tokens[prevToken].Content); } /// @@ -297,6 +299,7 @@ namespace AnitomySharp var prevToken = Token.FindPrevToken(_parser.Tokens, pos, Token.TokenFlag.FlagNotDelimiter); var nextToken = Token.FindNextToken(_parser.Tokens, pos, Token.TokenFlag.FlagNotDelimiter); if (!IsTokenCategory(nextToken, Token.TokenCategory.Bracket)) return false; + if (prevToken < 0) return false; return KeywordManager.ContainsInPeekEntries(Element.ElementCategory.ElementAnimeType, _parser.Tokens[prevToken].Content); } diff --git a/Jellyfin.Plugin.MetaShark.Test/ParseNameTest.cs b/Jellyfin.Plugin.MetaShark.Test/ParseNameTest.cs index 5411c92..4c5fc8f 100644 --- a/Jellyfin.Plugin.MetaShark.Test/ParseNameTest.cs +++ b/Jellyfin.Plugin.MetaShark.Test/ParseNameTest.cs @@ -86,7 +86,6 @@ namespace Jellyfin.Plugin.MetaShark.Test Assert.AreEqual(parseResult.Name, "秒速5厘米"); Assert.AreEqual(parseResult.Year, null); - // 标题加年份 fileName = "V字仇杀队 (2006)"; parseResult = NameParser.Parse(fileName); @@ -94,6 +93,12 @@ namespace Jellyfin.Plugin.MetaShark.Test Assert.AreEqual(parseResult.Name, "V字仇杀队"); Assert.AreEqual(parseResult.Year, 2006); + fileName = "逃学威龙2 (1992)"; + parseResult = NameParser.Parse(fileName); + Assert.AreEqual(parseResult.ChineseName, null); + Assert.AreEqual(parseResult.Name, "逃学威龙2"); + Assert.AreEqual(parseResult.Year, 1992); + // anime fileName = "[SAIO-Raws] もののけ姫 Mononoke Hime [BD 1920x1036 HEVC-10bit OPUSx2 AC3].mp4"; diff --git a/Jellyfin.Plugin.MetaShark/ILRepack.targets b/Jellyfin.Plugin.MetaShark/ILRepack.targets index 43e4dcf..c5aacf1 100644 --- a/Jellyfin.Plugin.MetaShark/ILRepack.targets +++ b/Jellyfin.Plugin.MetaShark/ILRepack.targets @@ -1,6 +1,6 @@ - + false diff --git a/README.md b/README.md index a3f0e8b..cfdac1c 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ jellyfin电影元数据插件,影片信息只要从豆瓣获取,并由TheMov ```sh dotnet restore -dotnet publish Jellyfin.Plugin.MetaShark/Jellyfin.Plugin.MetaShark.csproj +dotnet publish --configuration=Release Jellyfin.Plugin.MetaShark/Jellyfin.Plugin.MetaShark.csproj ``` @@ -56,7 +56,7 @@ dotnet publish Jellyfin.Plugin.MetaShark/Jellyfin.Plugin.MetaShark.csproj 1. Build the plugin -2. Create a folder, like `metashark` and copy `./Jellyfin.Plugin.MetaShark/bin/Debug/net6.0/Jellyfin.Plugin.MetaShark.dll` into it +2. Create a folder, like `metashark` and copy `./Jellyfin.Plugin.MetaShark/bin/Release/net6.0/Jellyfin.Plugin.MetaShark.dll` into it 3. Move folder `metashark` to jellyfin `data/plugins` folder