البداية
انتي تطياح فلتر محتوى للدردشة المختلطة: العربية، الفرانكو-عرب بالأرقام، الفرنسية، الإنجليزية، والأمازيغية. يعمل دون اتصال في 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 عند خطأ استخدام.
المزيد في الواجهة البرمجية والأمثلة العملية.