Пример #1
0
        public CRCRule()
        {
            var rb = new ReBulk(name: "crc32").Options(RegexOptions.IgnoreCase);

            rb = rb.Regex("(?:[a-fA-F]|[0-9]){8}");
            RB = rb;
        }
Пример #2
0
        public SizeRule()
        {
            var rb = new ReBulk(name: "size")
                     .Regex(@"\d+\.?[mgt]b", @"\d+\.\d+[mgt]b")
                     .Format((x) => Regex.Replace(x, @"[mgt]b", y => y.ToString().ToUpper()));

            RB = rb;
        }
Пример #3
0
        public CDSRule()
        {
            var rb = new ReBulk(name: "cds").Options(RegexOptions.IgnoreCase);

            rb = rb.Regex(@"cd-?(?<cd>\d+)(?:-?of-?(?<cd_count>\d+))?");
            rb = rb.Regex(@"(?<cd_count>\d+)-?cds?");
            RB = rb;
        }
Пример #4
0
        public PartRule()
        {
            var prefixes = new[]  {
                "pt",
                "part"
            };

            RB = new ReBulk(name: "part").Options(RegexOptions.IgnoreCase)
                 .Regex(RegexUtils.BuildOrPattern(prefixes, "prefixes") + @"-?(?<part>" + RegexUtils.BuildOrPattern(new[] { Regexes.digital_numeral, Regexes.roman_numeral }, "partnumber") + @")")
                 .Then(x => IsNumeric(x));
        }
Пример #5
0
 public ScreenSizeRule()
 {
     RB = new ReBulk(name: "screen_size").Options(RegexOptions.IgnoreCase)
          .Regex(Replace: true, regex: @"(?:\d{3,}(?:x|\*))?360(?:i|p?x?)", value: "360p")
          .Regex(Replace: true, regex: @"(?:\d{3,}(?:x|\*))?368(?:i|p?x?)", value: "368p")
          .Regex(Replace: true, regex: @"(?:\d{3,}(?:x|\*))?480(?:i|p?x?)", value: "480p")
          .Regex(Replace: true, regex: @"(?:\d{3,}(?:x|\*))?576(?:i|p?x?)", value: "576p")
          .Regex(Replace: true, regex: @"(?:\d{3,}(?:x|\*))?720(?:i|p?(?:50|60)?x?)", value: "720p")
          .Regex(Replace: true, regex: @"(?:\d{3,}(?:x|\*))?720(?:p(?:50|60)?x?)", value: "720p")
          .Regex(Replace: true, regex: @"(?:\d{3,}(?:x|\*))?720p?hd", value: "720p")
          .Regex(Replace: true, regex: @"(?:\d{3,}(?:x|\*))?900(?:i|p?x?)", value: "900p")
          .Regex(Replace: true, regex: @"(?:\d{3,}(?:x|\*))?1080i", value: "1080i")
          .Regex(Replace: true, regex: @"(?:\d{3,}(?:x|\*))?1080p?x?", value: "1080p")
          .Regex(Replace: true, regex: @"(?:\d{3,}(?:x|\*))?1080(?:p(?:50|60)?x?)", value: "1080p")
          .Regex(Replace: true, regex: @"(?:\d{3,}(?:x|\*))?1080p?hd", value: "1080p")
          .Regex(Replace: true, regex: @"(?:\d{3,}(?:x|\*))?2160(?:i|p?x?)", value: "4K")
          .String("4k", true, "4K");
 }
Пример #6
0
        public VideoCodecRule()
        {
            RB = new ReBulk(name: "video_codec").Options(RegexOptions.IgnoreCase);

            RB = RB.Regex("Real", true, @"Rv\d{2}");
            RB = RB.Regex("Mpeg2", true, "Mpeg2");
            RB = RB.Regex("DivX", true, "DVDivX", "DivX");
            RB = RB.Regex("XviD", true, "XviD");
            RB = RB.Regex("h264", true, "[hx]-?264(?:-?AVC(HD)?)?", "MPEG-?4(?:-?AVC(HD)?)", "AVC(?:HD)?");
            RB = RB.Regex("h265", true, "[hx]-?265(?:-?HEVC)?", "HEVC");
            RB = RB.Regex("h26510bit", true, "(?<video_codec>hevc)(?<video_profile>10)");

            RB = RB.Regex("10bit", true, "10.?bits?", "Hi10P?", "YUV420P10");
            RB = RB.Regex("8bit", true, "8.?bits?");
            RB = RB.String("BP", true, "BP");
            RB = RB.String("XP", true, "EP", "XP");
            RB = RB.String("MP", true, "MP");
            RB = RB.String("HP", true, "HiP", "HP");
            RB = RB.Regex("Hi422P", true, "Hi422P");
            RB = RB.Regex("Hi444PP", true, "Hi444PP");
            RB = RB.String("DXVA", true, "DXVA");
        }
Пример #7
0
        public EditionRule()
        {
            var rb = new ReBulk(name: "edition").Options(RegexOptions.IgnoreCase);

            rb = rb.Regex("Collector Edition", true, "collector", "collector-edition", "edition-collector")
                 .Regex("Special Edition", true, "special-edition", "edition-special")
                 .Regex("Criterion Edition", true, "criterion-edition", "edition-criterion")
                 .Regex("Deluxe Edition", true, "deluxe", "deluxe-edition", "edition-deluxe")
                 .Regex("Limited Edition", true, "limited", "limited-edition")
                 .Regex("Theatrical Edition", true, @"theatrical-cut", @"theatrical-edition", @"theatrical")
                 .Regex("Director's Cut", true, @"director'?s?-cut", @"director'?s?-cut-edition", @"edition-director'?s?-cut")
                 .Regex("Extended", true, "extended", "extended-?cut", "extended-?version")
                 .Regex("Alternative Cut", true, "alternat(e|ive)(?:-?Cut)?")
                 .String("Director's Cut", true, "DC")
                 .String("Special Edition", true, "se")
                 .String("Festival", true, "Festival");

            foreach (var item in new[] { "Remastered", "Uncensored", "Uncut", "Unrated" })
            {
                rb = rb.String(item, true, item);
            }
            RB = rb;
        }
Пример #8
0
 public DateRule()
 {
     RB = new ReBulk(name: "year").Options(RegexOptions.IgnoreCase)
          .Regex(@"\d{4}").Then(x => Regex.Match(x, "19|20([0-9]{2})").Success);
 }