Пример #1
0
        public object Check(ProfanityFilterRequest request)
        {
            string url = string.Format(_webPurifySettings.Url,
                                       _webPurifySettings.ApiKey, request.Text);
            string xml = GetXml(url);

            return(xml);
        }
        public ProfanityFilterResponse ContainsProfanity(ProfanityFilterRequest request)
        {
            var response = new ProfanityFilterResponse {
                ContainsProfanity = false, Created = DateTime.Now
            };
            var badwords = new[]
            {
                "ass", "ass lick", "asses", "asshole", "assholes", "asskisser", "asswipe", "balls",
                "bastard", "beastial", "beastiality", "beastility", "beaver", "belly whacker",
                "bestial", "bestiality", "bitch", "bitcher", "bitchers", "bitches", "bitchin",
                "bitching", "blow job", "b*****b", "blowjobs", "bonehead", "boner", "brown eye",
                "browneye", "browntown", "bucket c**t", "bull shit", "bullshit", "bum", "bung hole",
                "butch", "butt", "butt breath", "butt f****r", "butt hair", "buttface", "buttfuck",
                "buttfucker", "butthead", "butthole", "buttpicker", "chink", "circle jerk", "clam",
                "c**t", "cobia", "c**k", "cocks", "cocksuck", "cocksucked", "c********r",
                "cocksucking", "cocksucks", "cooter", "crap", "cum", "cummer", "cumming", "cums",
                "cumshot", "cunilingus", "cunillingus", "cunnilingus", "c**t", "cuntlick",
                "cuntlicker", "cuntlicking", "cunts", "cyberfuc", "cyberfuck", "cyberfucked",
                "cyberfucker", "cyberfuckers", "cyberfucking", "damn", "dick", "dike", "d***o",
                "dildos", "dink", "dinks", "dipshit", "dong", "douche bag", "dumbass", "dyke",
                "e*******e", "ejaculated", "ejaculates", "ejaculating", "ejaculatings", "e*********n"
                , "f*g", "fagget", "fagging", "faggit", "f****t", "faggs", "fagot", "fagots", "fags",
                "fart", "farted", "farting", "fartings", "farts", "farty", "fatass", "fatso",
                "felatio", "f******o", "fingerfuck", "fingerfucked", "fingerfucker", "fingerfuckers",
                "fingerfucking", "fingerfucks", "fistfuck", "fistfucked", "fistfucker", "fistfuckers"
                , "fistfucking", "fistfuckings", "fistfucks", "f**k", "f****d", "f****r", "fuckers",
                "f****n", "f*****g", "f******s", "f****e", "f***s", "fuk", "fuks", "furburger",
                "g******g", "gangbanged", "gangbangs", "gaysex", "gazongers", "goddamn", "gonads",
                "gook", "guinne", "hard on", "hardcoresex", "h**o", "hooker", "horniest", "horny",
                "hotsex", "hussy", "jack off", "jackass", "jacking off", "jackoff", "jack-off", "jap"
                , "jerk", "jerk-off", "jism", "j*z", "jizm", "j**z", "kike", "kock", "kondum",
                "kondums", "kraut", "kum", "kummer", "kumming", "kums", "kunilingus", "lesbian",
                "lesbo", "merde", "mick", "mothafuck", "m********a", "mothafuckas", "mothafuckaz",
                "mothafucked", "mothafucker", "mothafuckers", "mothafuckin", "mothafucking",
                "mothafuckings", "mothafucks", "motherfuck", "motherfucked", "m**********r",
                "motherfuckers", "motherfuckin", "motherfucking", "motherfuckings", "motherfucks",
                "muff", "nigger", "niggers", "orgasim", "orgasims", "o****m", "o*****s", "pecker",
                "penis", "phonesex", "phuk", "phuked", "phuking", "phukked", "phukking", "phuks",
                "phuq", "pimp", "piss", "pissed", "pissrr", "pissers", "pisses", "pissin", "pissing",
                "pissoff", "prick", "pricks", "pussies", "pussy", "pussys", "queer", "retard",
                "schlong", "screw", "sheister", "shit", "shited", "shitfull", "shiting", "shitings",
                "shits", "s*****d", "shitter", "shitters", "s******g", "s*******s", "shitty", "slag",
                "sleaze", "s**t", "s***s", "smut", "snatch", "spunk", "twat", "wetback", "w***e",
                "wop"
            };

            if (request.Text.Split(' ').Intersect(badwords).Count() > 0)
            {
                response.ContainsProfanity = true;
            }
            return(response);
        }
Пример #3
0
        public ProfanityFilterResponse ContainsProfanity(ProfanityFilterRequest request)
        {
            ProfanityFilterResponse response;

            try
            {
                var x =
                    _profanityFilterService.Check(request)
                    as string;
                response = CreateProfanityFilterResponseFromXml(x);
            }
            catch (System.Exception e)
            {
                response = new ProfanityFilterResponse {
                    Success = false, Error = e.ToString()
                };
                response.Success = false;
            }
            return(response);
        }
        public void TestFilterContainsProfanity()
        {
            //Arrange
            var mockWebPurifyProfanityFilterService = new Mock <IProfanityFilterService>();
            var expectedCount      = 3;
            var expectedExpletives = new[] { "banana", "apple", "chicken" };
            var xmlresponse        = string.Format(
                @"<?xml version=""1.0"" encoding=""utf-8"" ?>
                            <rsp stat=""ok"">
                              <method>webpurify.live.return</method>
                              <format>rest</format>
                              <found>{0}</found>
                              <expletive>{1}</expletive>
                              <expletive>{2}</expletive>
                              <expletive>{3}</expletive>
                              <api_key>api_key</api_key>
                            </rsp>",
                expectedCount, expectedExpletives[0], expectedExpletives[1], expectedExpletives[2]);
            var request = new ProfanityFilterRequest
            {
                Language = "en",
                Text     = "We are just testing the XML Parsing here, so this is ignored"
            };

            mockWebPurifyProfanityFilterService
            .Setup(m => m.Check(request))
            .Returns(xmlresponse);

            //Act
            var profanityFilter = new WebPurifyProfanityFilter(mockWebPurifyProfanityFilterService.Object);
            var resultResponse  =
                profanityFilter.ContainsProfanity(request);


            //Assert
            Assert.AreEqual(expectedCount, resultResponse.Count);
            Assert.AreEqual(expectedCount, resultResponse.Expletives.Length);
            Assert.AreEqual(expectedExpletives[0], resultResponse.Expletives[0]);
            Assert.AreEqual(expectedExpletives[1], resultResponse.Expletives[1]);
        }