Glin Profanity
Scanned@thegdsks
npx machina-cli add skill @thegdsks/glin-profanity --openclawGlin Profanity - Content Moderation Library
Profanity detection library that catches evasion attempts like leetspeak (f4ck, sh1t), Unicode tricks (Cyrillic lookalikes), and obfuscated text.
Installation
# JavaScript/TypeScript
npm install glin-profanity
# Python
pip install glin-profanity
Quick Usage
JavaScript/TypeScript
import { checkProfanity, Filter } from 'glin-profanity';
// Simple check
const result = checkProfanity("Your text here", {
detectLeetspeak: true,
normalizeUnicode: true,
languages: ['english']
});
result.containsProfanity // boolean
result.profaneWords // array of detected words
result.processedText // censored version
// With Filter instance
const filter = new Filter({
replaceWith: '***',
detectLeetspeak: true,
normalizeUnicode: true
});
filter.isProfane("text") // boolean
filter.checkProfanity("text") // full result object
Python
from glin_profanity import Filter
filter = Filter({
"languages": ["english"],
"replace_with": "***",
"detect_leetspeak": True
})
filter.is_profane("text") # True/False
filter.check_profanity("text") # Full result dict
React Hook
import { useProfanityChecker } from 'glin-profanity';
function ChatInput() {
const { result, checkText } = useProfanityChecker({
detectLeetspeak: true
});
return (
<input onChange={(e) => checkText(e.target.value)} />
);
}
Key Features
| Feature | Description |
|---|---|
| Leetspeak detection | f4ck, sh1t, @$$ patterns |
| Unicode normalization | Cyrillic fսck → fuck |
| 24 languages | Including Arabic, Chinese, Russian, Hindi |
| Context whitelists | Medical, gaming, technical domains |
| ML integration | Optional TensorFlow.js toxicity detection |
| Result caching | LRU cache for performance |
Configuration Options
const filter = new Filter({
languages: ['english', 'spanish'], // Languages to check
detectLeetspeak: true, // Catch f4ck, sh1t
leetspeakLevel: 'moderate', // basic | moderate | aggressive
normalizeUnicode: true, // Catch Unicode tricks
replaceWith: '*', // Replacement character
preserveFirstLetter: false, // f*** vs ****
customWords: ['badword'], // Add custom words
ignoreWords: ['hell'], // Whitelist words
cacheSize: 1000 // LRU cache entries
});
Context-Aware Analysis
import { analyzeContext } from 'glin-profanity';
const result = analyzeContext("The patient has a breast tumor", {
domain: 'medical', // medical | gaming | technical | educational
contextWindow: 3, // Words around match to consider
confidenceThreshold: 0.7 // Minimum confidence to flag
});
Batch Processing
import { batchCheck } from 'glin-profanity';
const results = batchCheck([
"Comment 1",
"Comment 2",
"Comment 3"
], { returnOnlyFlagged: true });
ML-Powered Detection (Optional)
import { loadToxicityModel, checkToxicity } from 'glin-profanity/ml';
await loadToxicityModel({ threshold: 0.9 });
const result = await checkToxicity("You're the worst");
// { toxic: true, categories: { toxicity: 0.92, insult: 0.87 } }
Common Patterns
Chat/Comment Moderation
const filter = new Filter({
detectLeetspeak: true,
normalizeUnicode: true,
languages: ['english']
});
bot.on('message', (msg) => {
if (filter.isProfane(msg.text)) {
deleteMessage(msg);
warnUser(msg.author);
}
});
Content Validation Before Publish
const result = filter.checkProfanity(userContent);
if (result.containsProfanity) {
return {
valid: false,
issues: result.profaneWords,
suggestion: result.processedText // Censored version
};
}
Resources
Overview
Glin Profanity is a content moderation library that detects profanity even when users evade it with leetspeak, Unicode homoglyphs, or obfuscated text. It supports 24 languages and offers optional ML-powered toxicity checks to improve accuracy. Use it to filter user-generated content, moderate comments, or censor messages in applications.
How This Skill Works
The library normalizes text, detects leetspeak patterns, and applies language-aware profanity checks, with an option to leverage a ML-based toxicity model. Developers interact through simple APIs (checkProfanity, Filter, batchCheck, and ml modules) and can tune behavior with options like replaceWith, languages, detectLeetspeak, and cacheSize.
When to Use It
- Filtering user-generated content and comments in multilingual apps
- Moderating chats in real-time messaging or gaming platforms
- Censoring or flagging inappropriate posts in forums and reviews
- Building content moderation into applications with multilingual support
- Detecting obfuscated profanity in user input using leetspeak or Unicode tricks
Quick Start
- Step 1: Install glin-profanity (npm install glin-profanity or pip install glin-profanity)
- Step 2: Create a Filter with desired options (languages, detectLeetspeak, etc.)
- Step 3: Use filter.isProfane(text) or filter.checkProfanity(text) to get results and processedText
Best Practices
- Enable detectLeetspeak to catch leetspeak evasion patterns
- Configure languages to match your user base for higher accuracy
- Use normalizeUnicode to catch Unicode tricks like homoglyphs
- Leverage customWords and ignoreWords to tailor moderation to your domain
- Combine with ML toxicity detection for improved accuracy and performance with caching
Example Use Cases
- Moderate comments on a multilingual news site
- Filter chat messages in an online gaming app
- Censor user reviews in a marketplace platform
- Flag posts in a social discussion forum
- Detect obfuscated profanity in educational community tools