Optimize anime identity

This commit is contained in:
cxfksword 2023-02-21 22:36:22 +08:00
parent 5f7ce25b5a
commit 9af8599fad
3 changed files with 9 additions and 2 deletions

View File

@ -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] 边界曲面的缺失之环";

View File

@ -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);

View File

@ -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)