예제 #1
0
        private async Task InvokeProfanityAddAsync(string profanity)
        {
            ProfanityFilterService profanityFilterService = new ProfanityFilterService();
            await profanityFilterService.AddWordToProfanityFilterAsync(profanity.Trim().ToLower(), Context.Guild.Id);

            await ReplyAndDeleteAsync("Settings updated");
        }
예제 #2
0
        private async Task InvokeWarningMessageSet(string warningMessage)
        {
            ProfanityFilterService profanityFilterService = new ProfanityFilterService();
            await profanityFilterService.SetWarningMessageAsync(warningMessage, Context.Guild.Id);

            await ReplyAndDeleteAsync("Settings updated");
        }
예제 #3
0
        private async Task InvokeProfanitySettingsAsync()
        {
            ProfanityFilterService profanityFilterService = new ProfanityFilterService();
            var settings = await profanityFilterService.GetProfanityFilterSettingsAsync(Context.Guild.Id);

            string bannedPhrases = "";

            foreach (string phrase in settings.ProfanityList)
            {
                bannedPhrases += $"{phrase}\n";
            }
            var embed = new EmbedBuilder
            {
                Title        = $"Profanity Filter Settings For Guild: {Context.Guild.Name}",
                Description  = $"Profanity Enabled: {settings.Enabled}",
                Color        = new Color(218, 112, 214),
                ThumbnailUrl = Context.Guild.IconUrl != null ? Context.Guild.IconUrl : "https://cdn.discordapp.com/avatars/680785022524981292/978d8e3a9bf9287a68f326d7f6b66d3b.png?size=256"
            };

            embed.AddField("Profanity List:", bannedPhrases != "" ? bannedPhrases : "You currently have nothing in your profanity list, use the command \"p.profanity add <word or phrase>\" to add to your list");
            embed.AddField("Warning Message: ", settings.WarningMessageEnabled ? "Enabled" : "Disabled");
            embed.AddField("Message: ", settings.WarningMessage == "" ? "No warning message set. Please use `p.profanity swarning message set` to set a new warning message" : settings.WarningMessage);
            embed.AddField("Warning Message Channel:", settings.WarningInDm ? "Direct Message" : "In Channel");
            await ReplyAsync("", false, embed.Build());
        }
예제 #4
0
 private Task InstantiateProfanityFilterServices()
 {
     Log.Information("Instatiating Profanity Filter Services");
     _profanityFilterService = new ProfanityFilterService();
     _ = Task.Factory.StartNew(() => { _discordClient.MessageReceived += _profanityFilterService.HandleMessage; });
     return(Task.CompletedTask);
 }
예제 #5
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            ValidateAddressService validateAddressService = new ValidateAddressService()
            {
                Url = $"https://api.address-validator.net/api/verify?StreetAddress={Employee.Address}&City={Employee.City}&PostalCode={Employee.PostalCode}&CountryCode={Employee.Country}&APIKey=av-9ac5150d3050177d0125f0f892cc18b8"
            };

            ValidatePhoneNumberService validatePhoneNumberService = new ValidatePhoneNumberService()
            {
                Url = $"http://apilayer.net/api/validate?access_key=544d232503a19a4942312ba30064b3a3&number={Employee.HomePhone}&country_code={Employee.Country}"
            };

            ProfanityFilterService profanityFilterService = new ProfanityFilterService()
            {
                Url = $"https://www.purgomalum.com/service/json?text={Employee.Notes}"
            };


            ValidateAddress = validateAddressService.ValidateAddress();

            ValidatePhoneNumber = validatePhoneNumberService.ValidatePhoneNumber();

            ProfanityFilter = profanityFilterService.ProfanityFilter();

            bool error = false;


            if (ValidateAddress.Status != "VALID")
            {
                error = true;

                ModelState.AddModelError($"{nameof(Employee)}.{nameof(Employee.Address)}",
                                         $"Addressen er ugyldig");
            }

            if (ValidatePhoneNumber.Valid != true)
            {
                error = true;

                ModelState.AddModelError($"{nameof(Employee)}.{nameof(Employee.HomePhone)}",
                                         $"Telefonnummer er ugyldig");
            }

            Employee.Notes = ProfanityFilter.Result;

            if (error == true)
            {
                return(Page());
            }

            _context.Employees.Add(Employee);
            await _context.SaveChangesAsync();

            return(RedirectToPage("./Index"));
        }
예제 #6
0
        private async Task InvokeProfanityToggleAsync()
        {
            ProfanityFilterService profanityFilterService = new ProfanityFilterService();
            var result = await profanityFilterService.ToggleProfanityFilterAsync(Context.Guild.Id);

            if (result)
            {
                await ReplyAsync("Profanity filter enabled");
            }
            else
            {
                await ReplyAsync("Profanity filter disabled");
            }
        }
예제 #7
0
        private async Task InvokeWarningToggleAsync()
        {
            ProfanityFilterService profanityFilterService = new ProfanityFilterService();
            var result = await profanityFilterService.ToggleProfanityWarningAsync(Context.Guild.Id);

            if (result)
            {
                await ReplyAsync("Warning message enabled");
            }
            else
            {
                await ReplyAsync("Warning message disabled");
            }
        }
예제 #8
0
        private async Task InvokePrivacyToggleAsync()
        {
            ProfanityFilterService profanityFilterService = new ProfanityFilterService();
            var result = await profanityFilterService.ToggleProfanityPrivacyAsync(Context.Guild.Id);

            if (result)
            {
                await ReplyAsync("Warning will be sent in DM");
            }
            else
            {
                await ReplyAsync("Warning will be sent in channel");
            }
        }
예제 #9
0
        public void Test_Filter_With_Empty_Input()
        {
            // Arrange
            var input    = " ";
            var expected = input;

            // Act
            var resultTask = ProfanityFilterService.Filter(input);

            resultTask.Wait();

            var result = resultTask.Result;

            // Assert
            Assert.AreEqual(expected, result);
        }
예제 #10
0
        public void Test_Filter_Without_Profanity()
        {
            // Arrange
            var input    = "This is awesome.";
            var expected = input;

            // Act
            var resultTask = ProfanityFilterService.Filter(input);

            resultTask.Wait();

            var result = resultTask.Result;

            // Assert
            Assert.AreEqual(expected, result);
        }
예제 #11
0
        public void Test_Filter_With_Profanity()
        {
            // Arrange
            var input    = "What the f**k is this?";
            var expected = "What the **** is this?";

            // Act
            var resultTask = ProfanityFilterService.Filter(input);

            resultTask.Wait();

            var result = resultTask.Result;

            // Assert
            Assert.AreEqual(expected, result);
        }