From 4e82b81c364f23ac5f862ea06d4bf009ad1e8b8f Mon Sep 17 00:00:00 2001 From: igennova Date: Thu, 27 Mar 2025 01:59:01 +0530 Subject: [PATCH 1/6] done --- pyproject.toml | 3 ++- website/views/issue.py | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 10e299f8cf..68889e4669 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -67,6 +67,7 @@ async-timeout = "^4.0.3" python-dateutil = "^2.9.0.post0" pyzipper = "^0.3.6" tweepy = "^4.15.0" +better-profanity = "^0.7.0" [tool.poetry.group.dev.dependencies] @@ -101,4 +102,4 @@ select = ["E4", "E7", "E9", "F", "T"] [build-system] requires = ["poetry-core>=1.0.0"] -build-backend = "poetry.core.masonry.api" \ No newline at end of file +build-backend = "poetry.core.masonry.api" diff --git a/website/views/issue.py b/website/views/issue.py index 8413ff3e9c..83a7fdbe91 100644 --- a/website/views/issue.py +++ b/website/views/issue.py @@ -13,6 +13,7 @@ from allauth.account.models import EmailAddress from allauth.account.signals import user_logged_in from allauth.socialaccount.models import SocialToken +from better_profanity import profanity from django.conf import settings from django.contrib import messages from django.contrib.auth.decorators import login_required @@ -59,6 +60,7 @@ IP, Activity, Bid, + Blocked, DailyStats, Domain, GitHubIssue, @@ -905,6 +907,27 @@ def form_valid(self, form): reporter_ip = get_client_ip(self.request) form.instance.reporter_ip_address = reporter_ip + description = form.cleaned_data.get("description", "") + markdown_description = form.cleaned_data.get("markdown_description", "") + + # Combine fields to check + text_to_check = f"{description} {markdown_description}" + + # Check for profanity + if profanity.contains_profanity(text_to_check): + Blocked.objects.create( + address=reporter_ip, + reason_for_block="Inappropriate language in bug report", + user_agent_string=self.request.META.get("HTTP_USER_AGENT", ""), + count=1, + ) + + # Prevent the form submission + messages.error(self.request, "Your report was blocked due to inappropriate language.") + return HttpResponseRedirect("/") + + # Pr + limit = 50 if self.request.user.is_authenticated else 30 today = timezone.now().date() recent_issues_count = Issue.objects.filter(reporter_ip_address=reporter_ip, created__date=today).count() From 79176b2efd1c87d0bbbd349be8965b65efe0a441 Mon Sep 17 00:00:00 2001 From: igennova Date: Thu, 27 Mar 2025 02:10:14 +0530 Subject: [PATCH 2/6] done --- poetry.lock | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/poetry.lock b/poetry.lock index dcacf49272..0a1b00abc9 100644 --- a/poetry.lock +++ b/poetry.lock @@ -268,6 +268,18 @@ charset-normalizer = ["charset-normalizer"] html5lib = ["html5lib"] lxml = ["lxml"] +[[package]] +name = "better-profanity" +version = "0.7.0" +description = "Blazingly fast cleaning swear words (and their leetspeak) in strings" +optional = false +python-versions = "==3.*" +groups = ["main"] +files = [ + {file = "better_profanity-0.7.0-py3-none-any.whl", hash = "sha256:bd4c529ea6aa2db1aaa50524be1ed14d0fe5c664f1fd88c8bc388c7e9f9f00e8"}, + {file = "better_profanity-0.7.0.tar.gz", hash = "sha256:8a6fdc8606d7471e7b5f6801917eca98ec211098262e82f62da4f5de3a73145b"}, +] + [[package]] name = "bitcash" version = "1.0.2" @@ -4021,4 +4033,4 @@ propcache = ">=0.2.0" [metadata] lock-version = "2.1" python-versions = ">=3.11.2,<3.14" -content-hash = "53c0a82fd9a996155012e4ea97aa69e9f385ab0adf5f08331b029ee3c8eeab94" +content-hash = "c577add455d3359199c8ebe992459175ca983026e7808704792b92773eaf91bc" From 7a7824b0392ec71c9a7725f28a7d991d84349143 Mon Sep 17 00:00:00 2001 From: DonnieBLT <128622481+DonnieBLT@users.noreply.github.com> Date: Wed, 26 Mar 2025 19:57:15 -0400 Subject: [PATCH 3/6] Update website/views/issue.py --- website/views/issue.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/views/issue.py b/website/views/issue.py index 83a7fdbe91..0369ed2260 100644 --- a/website/views/issue.py +++ b/website/views/issue.py @@ -923,7 +923,7 @@ def form_valid(self, form): ) # Prevent the form submission - messages.error(self.request, "Your report was blocked due to inappropriate language.") + messages.error(self.request, "Have a nice day.") return HttpResponseRedirect("/") # Pr From 47b650bde3b48d9b2a035ab78d4faeb0bb36bc53 Mon Sep 17 00:00:00 2001 From: DonnieBLT <128622481+DonnieBLT@users.noreply.github.com> Date: Wed, 26 Mar 2025 19:57:39 -0400 Subject: [PATCH 4/6] Update website/views/issue.py --- website/views/issue.py | 1 - 1 file changed, 1 deletion(-) diff --git a/website/views/issue.py b/website/views/issue.py index 0369ed2260..99aa4eb35f 100644 --- a/website/views/issue.py +++ b/website/views/issue.py @@ -926,7 +926,6 @@ def form_valid(self, form): messages.error(self.request, "Have a nice day.") return HttpResponseRedirect("/") - # Pr limit = 50 if self.request.user.is_authenticated else 30 today = timezone.now().date() From 0820c0d9014219d5a4db8c86176e09edc0a6343a Mon Sep 17 00:00:00 2001 From: igennova Date: Thu, 27 Mar 2025 11:23:56 +0530 Subject: [PATCH 5/6] done --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index 0a1b00abc9..7335873bd2 100644 --- a/poetry.lock +++ b/poetry.lock @@ -270,14 +270,14 @@ lxml = ["lxml"] [[package]] name = "better-profanity" -version = "0.7.0" +version = "0.6.1" description = "Blazingly fast cleaning swear words (and their leetspeak) in strings" optional = false python-versions = "==3.*" groups = ["main"] files = [ - {file = "better_profanity-0.7.0-py3-none-any.whl", hash = "sha256:bd4c529ea6aa2db1aaa50524be1ed14d0fe5c664f1fd88c8bc388c7e9f9f00e8"}, - {file = "better_profanity-0.7.0.tar.gz", hash = "sha256:8a6fdc8606d7471e7b5f6801917eca98ec211098262e82f62da4f5de3a73145b"}, + {file = "better_profanity-0.6.1-py3-none-any.whl", hash = "sha256:a20902b17f846aff9f9030e61ca75e2142824c2af287c078808e76a6e3292ecc"}, + {file = "better_profanity-0.6.1.tar.gz", hash = "sha256:c8f1a05dfabc5e8bbe3c6f51e25cea9d1df3e2a38e433b7b88e6579d46df296b"}, ] [[package]] @@ -4033,4 +4033,4 @@ propcache = ">=0.2.0" [metadata] lock-version = "2.1" python-versions = ">=3.11.2,<3.14" -content-hash = "c577add455d3359199c8ebe992459175ca983026e7808704792b92773eaf91bc" +content-hash = "999078f5724b3af6a2ec90ea3992d671ccdaac0942af46af951643053ffec138" diff --git a/pyproject.toml b/pyproject.toml index b02353fa6e..16764b82a9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -67,7 +67,7 @@ async-timeout = "^4.0.3" python-dateutil = "^2.9.0.post0" pyzipper = "^0.3.6" tweepy = "^4.15.0" -better-profanity = "^0.7.0" +better-profanity = "^0.6.1" [tool.poetry.group.dev.dependencies] From f60e4a480edb62894b65f4afcbbcea9aa7c477d2 Mon Sep 17 00:00:00 2001 From: igennova Date: Thu, 27 Mar 2025 11:28:20 +0530 Subject: [PATCH 6/6] done --- website/views/issue.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/website/views/issue.py b/website/views/issue.py index 99aa4eb35f..a81c2f3206 100644 --- a/website/views/issue.py +++ b/website/views/issue.py @@ -922,11 +922,10 @@ def form_valid(self, form): count=1, ) - # Prevent the form submission + # Prevent form submission messages.error(self.request, "Have a nice day.") return HttpResponseRedirect("/") - limit = 50 if self.request.user.is_authenticated else 30 today = timezone.now().date() recent_issues_count = Issue.objects.filter(reporter_ip_address=reporter_ip, created__date=today).count()