This commit is contained in:
21
packages/shared/src/moderation.ts
Normal file
21
packages/shared/src/moderation.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
export interface ModerationResult {
|
||||
allowed: boolean
|
||||
categories: string[]
|
||||
}
|
||||
|
||||
const explicitPatterns = [
|
||||
/\b(?:explicit sex|porn(?:ography)?|rape|sexual assault)\b/i,
|
||||
/\b(?:nude|naked)\s+(?:child|minor|teen)\b/i,
|
||||
/\b(?:child|minor|underage)\s+(?:sex|sexual|erotic)\b/i,
|
||||
]
|
||||
|
||||
const extremeGorePatterns = [
|
||||
/\b(?:graphic dismemberment|torture porn|extreme gore)\b/i,
|
||||
]
|
||||
|
||||
export function moderate13Plus(text: string): ModerationResult {
|
||||
const categories: string[] = []
|
||||
if (explicitPatterns.some(pattern => pattern.test(text))) categories.push('sexual_explicit')
|
||||
if (extremeGorePatterns.some(pattern => pattern.test(text))) categories.push('extreme_graphic_violence')
|
||||
return { allowed: categories.length === 0, categories }
|
||||
}
|
||||
Reference in New Issue
Block a user