Skip to content

البداية

انتي تطياح فلتر محتوى للدردشة المختلطة: العربية، الفرانكو-عرب بالأرقام، الفرنسية، الإنجليزية، والأمازيغية. يعمل دون اتصال في Node 18+ وفي المتصفح.

تنبيه. الحزمة تتضمن ألفاظاً مسيئة عمداً — هذا عملها. الأدلة تخفي الألفاظ الحقيقية (9*ba) احتراماً للقارئ. للاختبار استخدم التجربة المباشرة.

التثبيت

bash
npm i anti-ttyah

بلا اعتماديات تشغيل.

المكتبة

ts
import { contains, mask, inspect, explain, blockedError, createFilter } from "anti-ttyah";

contains("9*ba");               // true  — فرانكو-عرب
contains("ق*بة");               // true  — رسم عربي
mask("hello z*bi");             // "hello ****"
inspect("ولد الق*بة");
// { blocked: true, hits: [{ start, end, raw, lang, category }] }

explain("hello z*bi");
blockedError(title, body);      // { error: "PROFANITY_BLOCKED" } | null

لم نذكر الكلمات الحقيقية هنا احتراماً للقارئ.

فلتر مخصّص

وسّع القائمة أو خفّفها دون تفريع المشروع:

ts
const filter = createFilter({
  extraTerms: ["customslur"],
  extraPhrases: ["not allowed"],
  allowlist: ["h*ar"],
  maskChar: "#",
  maskStyle: "token",
  categories: ["sexual", "slur"],
  matchSeparators: true,
});

أسماء بديلة للتوافق: containsProfanity، maskProfanity، profanityError.

سطر الأوامر

bash
npx anti-ttyah "bonjour"
# clean   (رمز خروج 0)

npx anti-ttyah --mask "hello z*bi"
npx anti-ttyah --json "hello z*bi"
npx anti-ttyah --explain "hello z*bi"
npx anti-ttyah --categories sexual,insult "hello"
npx anti-ttyah --file comments.txt

رمز الخروج 1 إذا حُظر النص (مفيد في CI)، و2 عند خطأ استخدام.

المزيد في الواجهة البرمجية والأمثلة العملية.

رخصة MIT · يعمل محلياً في Node والمتصفح · بلا اعتماديات