Optimize anime identity
This commit is contained in:
parent
5f7ce25b5a
commit
9af8599fad
|
@ -190,6 +190,11 @@ namespace Jellyfin.Plugin.MetaShark.Test
|
||||||
Assert.AreEqual(parseResult.ParentIndexNumber, null);
|
Assert.AreEqual(parseResult.ParentIndexNumber, null);
|
||||||
Assert.AreEqual(parseResult.IndexNumber, 1);
|
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特典
|
// anime特典
|
||||||
fileName = "[KissSub][Steins;Gate][SP][GB_BIG5_JP][BDrip][1080P][HEVC] 边界曲面的缺失之环";
|
fileName = "[KissSub][Steins;Gate][SP][GB_BIG5_JP][BDrip][1080P][HEVC] 边界曲面的缺失之环";
|
||||||
|
|
|
@ -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 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)
|
public static ParseNameResult Parse(string fileName, bool isTvSeries = false)
|
||||||
{
|
{
|
||||||
var parseResult = new ParseNameResult();
|
var parseResult = new ParseNameResult();
|
||||||
|
@ -35,7 +37,7 @@ namespace Jellyfin.Plugin.MetaShark.Core
|
||||||
{
|
{
|
||||||
var firstString = item.Value.Substring(0, firstSpaceIndex);
|
var firstString = item.Value.Substring(0, firstSpaceIndex);
|
||||||
var lastString = item.Value.Substring(firstSpaceIndex + 1);
|
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.ChineseName = CleanName(firstString);
|
||||||
parseResult.Name = CleanName(lastString);
|
parseResult.Name = CleanName(lastString);
|
||||||
|
|
|
@ -139,7 +139,7 @@ namespace Jellyfin.Plugin.MetaShark.Providers
|
||||||
var fileName = Path.GetFileNameWithoutExtension(info.Path) ?? info.Name;
|
var fileName = Path.GetFileNameWithoutExtension(info.Path) ?? info.Name;
|
||||||
var parseResult = NameParser.Parse(fileName);
|
var parseResult = NameParser.Parse(fileName);
|
||||||
info.Year = parseResult.Year;
|
info.Year = parseResult.Year;
|
||||||
info.Name = parseResult.Name;
|
info.Name = parseResult.ChineseName ?? parseResult.Name;
|
||||||
|
|
||||||
// 没有season级目录或文件命名不规范时,ParentIndexNumber会为null
|
// 没有season级目录或文件命名不规范时,ParentIndexNumber会为null
|
||||||
if (info.ParentIndexNumber is null)
|
if (info.ParentIndexNumber is null)
|
||||||
|
|
Loading…
Reference in New Issue