using System.Collections.Generic; using Learn.Utils; namespace Learn.Config; public class MatchGroupsRules { public List Full { get; set; } = new(); public List Partial { get; set; } = new(); } public class MatchTypeExtra { public List IfDirNameIs { get; set; } = new(); public List IfFileExtensionIs { get; set; } = new(); } public class MatchTypeSubtitle { public List IfFileExtensionIs { get; set; } = new(); } public class MatchTypeEpisode { public List IfFileExtensionIs { get; set; } = new(); } public class MatchTypeRules { public MatchTypeExtra Extra { get; set; } public MatchTypeSubtitle Subtitle { get; set; } public MatchTypeEpisode Episode { get; set; } } public class MatchSeasonRules { public List Regexes { get; set; } = new(); } public class MatchEpisodeRules { public List Regexes { get; set; } = new(); } public class FilterTokenRules { public List Regexes { get; set; } = new(); } [ConfigItem("RawParser")] public class RawParserConfig : IConfigItem { public string SplitRegex { get; set; } = @"[^\[\]_【】《》]+"; public MatchTypeRules TypeMatchRules { get; set; } = new() { Extra = new () { IfDirNameIs = {"NCOP&NCED", "PV", "menu", "Fonts", "Scans", "特典映像", "CDs", "迷你动画", "SPs"}, IfFileExtensionIs = {".rar", ".zip", "png", "jpg", "jpeg"} }, Subtitle = new () { IfFileExtensionIs = {".srt", ".ass"} }, Episode = new () { IfFileExtensionIs = {".mp4", ".mkv"} } }; public MatchGroupsRules GroupsMatchRules { get; set; } = new() { Full = { "Rev", "Mukai", "WYQSub" }, Partial = { "-Studio", "-Raws", "LoliHouse", "字幕组", "VCB-Studio", "Nekomoe kissaten", "Kamigami", "ANi"} }; public MatchSeasonRules SeasonMatchRules { get; set; } = new() { Regexes = {@"第(.+)季", @"[Ss]eason *(\d+)", @"S(\d{2})E\d{2}"} }; public MatchEpisodeRules EpisodeRules { get; set; } = new() { Regexes = {@"(^\d{1,2}$)", @"S\d{2}E(\d{2})"} }; public FilterTokenRules TokenFilterRules { get; set; } = new() { Regexes = { @"\d+[Pp]$", @"\d{1,2}-\d{1,2}" } }; }