Ejemplo n.º 1
0
        //[TestCase("【漫貓&愛戀字幕組】[五等分的新娘/五等分的花嫁/五等分の花嫁][Go-Toubun_no_Hanayome][01_03][BIG5][720P][HEVC]", "Go-Toubun no Hanayome", "漫貓&愛戀字幕組", new[] { 1, 2, 3 })]
        public void should_parse_chinese_multiepisode_releases(string postTitle, string title, string subgroup, int[] absoluteEpisodeNumbers)
        {
            postTitle = XmlCleaner.ReplaceUnicode(postTitle);

            var result = Parser.Parser.ParseTitle(postTitle);

            result.Should().NotBeNull();
            result.ReleaseGroup.Should().Be(subgroup);
            result.AbsoluteEpisodeNumbers.Should().BeEquivalentTo(absoluteEpisodeNumbers);
            result.SeriesTitle.Should().Be(title);
            result.FullSeason.Should().BeFalse();
        }
Ejemplo n.º 2
0
        public void should_parse_false_positive_chinese_anime_releases(string postTitle, string title, string subgroup, int absoluteEpisodeNumber)
        {
            postTitle = XmlCleaner.ReplaceUnicode(postTitle);

            var result = Parser.Parser.ParseTitle(postTitle);

            result.Should().NotBeNull();
            result.ReleaseGroup.Should().Be(subgroup);
            result.AbsoluteEpisodeNumbers.Single().Should().Be(absoluteEpisodeNumber);
            result.SeriesTitle.Should().Be(title);
            result.FullSeason.Should().BeFalse();
        }
        public void XmlCleaner_CleanSecureData_ClearOneSecureKeyInXmlElementValue_OneSecureKeyInXmlElementValueCleared()
        {
            // Arrange
            var xml        = "<auth><user>max</user><pass>123456</pass></auth>";
            var secureKey  = "pass";
            var xmlCleaner = new XmlCleaner();

            var expectedResult = "<auth><user>max</user><pass>XXXXXX</pass></auth>";

            // Act
            var cleanedXml = xmlCleaner.CleanSecureData(xml, secureKey, SecureDataLocation.XmlElementValue);

            // Assert
            Assert.Equal(expectedResult, cleanedXml);
        }
        public void XmlCleaner_CleanSecureData_ClearOneSecureKeyInXmlAttribute_OneSecureKeyInXmlAttributeCleared()
        {
            // Arrange
            var xml        = @"<auth user=""max"" pass=""123456""/>";
            var secureKey  = "user";
            var xmlCleaner = new XmlCleaner();

            var expectedResult = @"<auth user=""XXX"" pass=""123456"" />";

            // Act
            var resultXml = xmlCleaner.CleanSecureData(xml, secureKey, SecureDataLocation.XmlAttribute);

            // Assert
            Assert.Equal(expectedResult, resultXml);
        }
        public void XmlCleaner_CleanSecureData_DoNotCleanSecureKeyIfWrongSecureDataLocationIsSpecified_SecureKeyNotCleared()
        {
            // Arrange
            var xml = @"<user login=""max"" pass=""123456"">Maxim</user>";
            var secureKeyInXmlAttribute = "pass";
            var xmlCleaner = new XmlCleaner();

            var expectedResult = @"<user login=""max"" pass=""123456"">Maxim</user>";

            // Act
            var resultXml = xmlCleaner.CleanSecureData(xml, secureKeyInXmlAttribute, SecureDataLocation.JsonAttribute);

            // Assert
            Assert.Equal(expectedResult, resultXml);
        }
        public void XmlCleaner_CleanSecureData_ClearOneSecureKeyInXmlAttributeAndOneSecureKeyInXmlElementValue_OneSecureKeyInXmlAttributeAndOneSecureKeyInXmlElementValueCleared()
        {
            // Arrange
            var xml = @"<user login=""max"" pass=""123456"">Maxim</user>";
            var secureKeyInXmlElement   = "user";
            var secureKeyInXmlAttribute = "pass";
            var xmlCleaner = new XmlCleaner();

            var expectedResult = @"<user login=""max"" pass=""XXXXXX"">XXXXX</user>";

            // Act
            var resultXml = xmlCleaner.CleanSecureData(xml, secureKeyInXmlElement, SecureDataLocation.XmlElementValue);

            resultXml = xmlCleaner.CleanSecureData(resultXml, secureKeyInXmlAttribute, SecureDataLocation.XmlAttribute);

            // Assert
            Assert.Equal(expectedResult, resultXml);
        }
        public void XmlCleaner_CleanSecureData_ClearTwoSecureKeysInXmlElementValue_TwoSecureKeysInXmlElementValueCleared()
        {
            // Arrange
            var xml        = "<auth><user>max</user><pass>123456</pass></auth>";
            var secureKey1 = "pass";
            var secureKey2 = "user";
            var xmlCleaner = new XmlCleaner();

            var expectedResult = "<auth><user>XXX</user><pass>XXXXXX</pass></auth>";

            // Act
            var resultXml = xmlCleaner.CleanSecureData(xml, secureKey1, SecureDataLocation.XmlElementValue);

            resultXml = xmlCleaner.CleanSecureData(resultXml, secureKey2, SecureDataLocation.XmlElementValue);

            // Assert
            Assert.Equal(expectedResult, resultXml);
        }
Ejemplo n.º 8
0
        private bool IsEZTVFeed(IndexerResponse response)
        {
            var content = XmlCleaner.ReplaceEntities(response.Content);

            content = XmlCleaner.ReplaceUnicode(content);

            using (var xmlTextReader = XmlReader.Create(new StringReader(content), new XmlReaderSettings {
                DtdProcessing = DtdProcessing.Parse, ValidationType = ValidationType.None, IgnoreComments = true, XmlResolver = null
            }))
            {
                var document = XDocument.Load(xmlTextReader);

                // Check Namespace
                if (document.Root == null)
                {
                    throw new InvalidDataException("Could not parse IndexerResponse into XML.");
                }

                var ns = document.Root.GetNamespaceOfPrefix("torrent");
                if (ns == "http://xmlns.ezrss.it/0.1/")
                {
                    _logger.Trace("Identified feed as EZTV compatible by EZTV Namespace");
                    return(true);
                }

                // Check DTD in DocType
                if (document.DocumentType != null && document.DocumentType.SystemId == "http://xmlns.ezrss.it/0.1/dtd/")
                {
                    _logger.Trace("Identified feed as EZTV compatible by EZTV DTD");
                    return(true);
                }

                // Check namespaces
                if (document.Descendants().Any(v => v.GetDefaultNamespace().NamespaceName == "http://xmlns.ezrss.it/0.1/"))
                {
                    _logger.Trace("Identified feed as EZTV compatible by EZTV Namespace");
                    return(true);
                }

                return(false);
            }
        }