agentic-comic-generator / services /content_moderator.py
ramsi-k's picture
initial move
bce4c09
import re
from typing import Tuple, List
class ContentModerator:
"""Handles content moderation and profanity filtering"""
def __init__(self):
# Basic profanity patterns - in production, use a proper filter
self.profanity_patterns = [
r"\b(explicit|inappropriate|offensive)\b",
r"\b(violence|gore|blood)\b",
r"\b(hate|discrimination|bias)\b",
r"\b(nsfw|adult|sexual)\b",
]
# Content safety keywords
self.safety_keywords = [
"safe",
"family-friendly",
"appropriate",
"wholesome",
]
def check_content(self, text: str) -> Tuple[bool, List[str]]:
"""
Check content for appropriateness
Returns:
Tuple of (is_safe, list_of_issues)
"""
issues = []
text_lower = text.lower()
# Check for profanity patterns
issues.extend(
[
f"Content may contain inappropriate material: {pattern}"
for pattern in self.profanity_patterns
if re.search(pattern, text_lower)
]
)
# Check length
if len(text.strip()) < 5:
issues.append("Content too short to evaluate properly")
return len(issues) == 0, issues