Get the FREE Ultimate OpenClaw Setup Guide →
t

Glin Profanity

Scanned

@thegdsks

npx machina-cli add skill @thegdsks/glin-profanity --openclaw
Files (1)
SKILL.md
4.5 KB

Glin 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

FeatureDescription
Leetspeak detectionf4ck, sh1t, @$$ patterns
Unicode normalizationCyrillic fսckfuck
24 languagesIncluding Arabic, Chinese, Russian, Hindi
Context whitelistsMedical, gaming, technical domains
ML integrationOptional TensorFlow.js toxicity detection
Result cachingLRU 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

Source

git clone https://clawhub.ai/thegdsks/glin-profanityView on GitHub

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

  1. Step 1: Install glin-profanity (npm install glin-profanity or pip install glin-profanity)
  2. Step 2: Create a Filter with desired options (languages, detectLeetspeak, etc.)
  3. 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

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers