From 25a2d2a5dbbdbcbcb6f0852de132de62e46b3349 Mon Sep 17 00:00:00 2001 From: Fretux Date: Tue, 20 Jan 2026 11:21:30 +0100 Subject: [PATCH] Add leetspeak normalization for prohibited words --- app.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/app.py b/app.py index 6cf7423..9ad1943 100644 --- a/app.py +++ b/app.py @@ -35,6 +35,24 @@ PROHIBITED_WORDS = { 'git', 'shag', 'minge', 'nonce', 'plonker', 'pillock' } +LEET_MAP = str.maketrans({ + "@": "a", + "4": "a", + "8": "b", + "3": "e", + "6": "g", + "9": "g", + "1": "i", + "!": "i", + "|": "l", + "0": "o", + "$": "s", + "5": "s", + "7": "t", + "+": "t", + "2": "z", +}) + api = Blueprint("api", __name__, url_prefix="/api") @@ -45,7 +63,8 @@ def _get_client_ip() -> str: def _contains_prohibited_word(text: str) -> bool: lower = text.lower() - return any(w in lower for w in PROHIBITED_WORDS) + normalized = lower.translate(LEET_MAP) + return any(w in lower or w in normalized for w in PROHIBITED_WORDS) def _get_discord_session() -> requests.Session: