From 3229a542700dcd848083e459ca9e720a0268089e Mon Sep 17 00:00:00 2001 From: Codex Date: Sat, 7 Jun 2025 03:14:21 +0000 Subject: [PATCH] Refine pedophilia ban logic --- cogs/aimod_cog.py | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/cogs/aimod_cog.py b/cogs/aimod_cog.py index 2a2615d..d372a49 100644 --- a/cogs/aimod_cog.py +++ b/cogs/aimod_cog.py @@ -1137,7 +1137,7 @@ After considering the above, pay EXTREME attention to rule 5 (Pedophilia) – th - Second minor offense / First moderate offense: "TIMEOUT_SHORT" (e.g., 10 minutes). - Repeated moderate offenses: "TIMEOUT_MEDIUM" (e.g., 1 hour). - Multiple/severe offenses: "TIMEOUT_LONG" (e.g., 1 day), "KICK", or "BAN". - - Use "BAN" on a user's **first infraction only in extremely severe cases** such as posting gore or content involving real minors (e.g., CSAM or pedophilia). Slurs alone or other less serious content should **not** result in an immediate ban. + - Use "BAN" on a user's **first infraction only in extremely severe cases** such as posting gore or unmistakable real-life CSAM involving minors. If the content appears animated or ambiguous, do **not** immediately ban; a timeout or moderator review is more appropriate. Spamming: - If a user continuously sends very long messages that are off-topic, repetitive, or appear to be meaningless spam (e.g., character floods, nonsensical text), suggest "TIMEOUT_MEDIUM" or "TIMEOUT_LONG" depending on severity and history, even if the content itself doesn't violate other specific rules. This is to maintain chat readability. Rule Severity Guidelines (use your judgment): @@ -1698,15 +1698,29 @@ CRITICAL: Do NOT output anything other than the required JSON response. user_history_list = get_user_infraction_history(guild_id, user_id) if action == "BAN" and not user_history_list: combined_text = f"{rule_violated} {reasoning}".lower() - severe_keywords = [ - "gore", - "csam", - "pedophilia", - "child", - "5a", - "5", - ] - if not any(keyword in combined_text for keyword in severe_keywords): + severe = False + if "gore" in combined_text: + severe = True + elif "csam" in combined_text: + severe = True + elif ( + "pedophilia" in combined_text + or "child" in combined_text + or "5a" in combined_text + or "5" in combined_text + ): + real_indicators = [ + "real", + "real-life", + "real life", + "irl", + "photo", + "photograph", + "video", + ] + if any(indicator in combined_text for indicator in real_indicators): + severe = True + if not severe: print( "Downgrading BAN to TIMEOUT_LONG due to first offense and lack of severe content." )