Refine pedophilia ban logic

This commit is contained in:
Codex 2025-06-07 03:14:21 +00:00 committed by Slipstream
parent 826890d916
commit 3229a54270
Signed by: slipstream
GPG Key ID: 13E498CE010AC6FD

View File

@ -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). - Second minor offense / First moderate offense: "TIMEOUT_SHORT" (e.g., 10 minutes).
- Repeated moderate offenses: "TIMEOUT_MEDIUM" (e.g., 1 hour). - Repeated moderate offenses: "TIMEOUT_MEDIUM" (e.g., 1 hour).
- Multiple/severe offenses: "TIMEOUT_LONG" (e.g., 1 day), "KICK", or "BAN". - 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: 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. - 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): 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) user_history_list = get_user_infraction_history(guild_id, user_id)
if action == "BAN" and not user_history_list: if action == "BAN" and not user_history_list:
combined_text = f"{rule_violated} {reasoning}".lower() combined_text = f"{rule_violated} {reasoning}".lower()
severe_keywords = [ severe = False
"gore", if "gore" in combined_text:
"csam", severe = True
"pedophilia", elif "csam" in combined_text:
"child", severe = True
"5a", elif (
"5", "pedophilia" in combined_text
] or "child" in combined_text
if not any(keyword in combined_text for keyword in severe_keywords): 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( print(
"Downgrading BAN to TIMEOUT_LONG due to first offense and lack of severe content." "Downgrading BAN to TIMEOUT_LONG due to first offense and lack of severe content."
) )