|
|
|
@@ -1,788 +0,0 @@
|
|
|
|
|
export interface SlangLexiconEntry {
|
|
|
|
|
normalized: string;
|
|
|
|
|
note: string;
|
|
|
|
|
safeByDefault?: boolean;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const INDONESIAN_SLANG_LEXICON: Record<string, SlangLexiconEntry> = {
|
|
|
|
|
// =========================================================================
|
|
|
|
|
// Pronouns & common abbreviations (neutral)
|
|
|
|
|
// =========================================================================
|
|
|
|
|
gw: { normalized: "gue", note: "first-person informal pronoun" },
|
|
|
|
|
gue: { normalized: "gue", note: "first-person informal pronoun" },
|
|
|
|
|
gua: { normalized: "gue", note: "first-person informal pronoun" },
|
|
|
|
|
lo: { normalized: "lu", note: "second-person informal pronoun" },
|
|
|
|
|
lu: { normalized: "lu", note: "second-person informal pronoun" },
|
|
|
|
|
loe: { normalized: "lu", note: "second-person informal pronoun" },
|
|
|
|
|
yg: { normalized: "yang", note: "common abbreviation" },
|
|
|
|
|
emg: { normalized: "memang", note: "common abbreviation" },
|
|
|
|
|
kyk: { normalized: "kayak", note: "common abbreviation" },
|
|
|
|
|
tdk: { normalized: "tidak", note: "common abbreviation" },
|
|
|
|
|
krn: { normalized: "karena", note: "common abbreviation" },
|
|
|
|
|
jgn: { normalized: "jangan", note: "common abbreviation" },
|
|
|
|
|
dh: { normalized: "sudah", note: "common abbreviation", safeByDefault: true },
|
|
|
|
|
udh: {
|
|
|
|
|
normalized: "sudah",
|
|
|
|
|
note: "common abbreviation",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
blm: {
|
|
|
|
|
normalized: "belum",
|
|
|
|
|
note: "common abbreviation",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
sdh: {
|
|
|
|
|
normalized: "sudah",
|
|
|
|
|
note: "common abbreviation",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
dg: {
|
|
|
|
|
normalized: "dengan",
|
|
|
|
|
note: "common abbreviation",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
dr: { normalized: "dari", note: "common abbreviation", safeByDefault: true },
|
|
|
|
|
dlm: {
|
|
|
|
|
normalized: "dalam",
|
|
|
|
|
note: "common abbreviation",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
gt: { normalized: "gitu", note: "common abbreviation", safeByDefault: true },
|
|
|
|
|
doang: {
|
|
|
|
|
normalized: "doang",
|
|
|
|
|
note: "Indonesian 'only/just'",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
si: { normalized: "si", note: "Indonesian particle", safeByDefault: true },
|
|
|
|
|
kah: {
|
|
|
|
|
normalized: "kah",
|
|
|
|
|
note: "Indonesian question particle",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
ku: {
|
|
|
|
|
normalized: "aku",
|
|
|
|
|
note: "first-person informal pronoun",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
mu: {
|
|
|
|
|
normalized: "kamu",
|
|
|
|
|
note: "second-person informal pronoun suffix",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
nya: {
|
|
|
|
|
normalized: "nya",
|
|
|
|
|
note: "Indonesian possessive suffix",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// =========================================================================
|
|
|
|
|
// Profanity — consonant-dropped / vowelless slang
|
|
|
|
|
// =========================================================================
|
|
|
|
|
ajg: { normalized: "anjing", note: "slang for 'anjing' (profanity)" },
|
|
|
|
|
anjg: { normalized: "anjing", note: "slang for 'anjing' (profanity)" },
|
|
|
|
|
njing: { normalized: "anjing", note: "slang for 'anjing' (profanity)" },
|
|
|
|
|
aj: {
|
|
|
|
|
normalized: "anjing",
|
|
|
|
|
note: "ultra-short slang for 'anjing' (profanity)",
|
|
|
|
|
},
|
|
|
|
|
anj: { normalized: "anjing", note: "short slang for 'anjing' (profanity)" },
|
|
|
|
|
anjingg: { normalized: "anjing", note: "elongated 'anjing' (profanity)" },
|
|
|
|
|
ajgg: {
|
|
|
|
|
normalized: "anjing",
|
|
|
|
|
note: "vowelless + elongated 'anjing' (profanity)",
|
|
|
|
|
},
|
|
|
|
|
// anjir variants
|
|
|
|
|
anjir: { normalized: "anjing", note: "slang for 'anjing' (profanity)" },
|
|
|
|
|
njir: { normalized: "anjing", note: "slang for 'anjing' (profanity)" },
|
|
|
|
|
njr: { normalized: "anjing", note: "vowelless 'anjir' (profanity)" },
|
|
|
|
|
anjay: { normalized: "anjing", note: "slang 'anjay' (profanity-adjacent)" },
|
|
|
|
|
bjir: {
|
|
|
|
|
normalized: "anjing",
|
|
|
|
|
note: "slang interjection 'bjir' (profanity-adjacent)",
|
|
|
|
|
},
|
|
|
|
|
bjirr: {
|
|
|
|
|
normalized: "anjing",
|
|
|
|
|
note: "elongated 'bjir' (profanity-adjacent)",
|
|
|
|
|
},
|
|
|
|
|
// bangsat variants
|
|
|
|
|
bgsd: { normalized: "bangsat", note: "slang for 'bangsat' (profanity)" },
|
|
|
|
|
bgst: { normalized: "bangsat", note: "slang for 'bangsat' (profanity)" },
|
|
|
|
|
bngst: { normalized: "bangsat", note: "slang for 'bangsat' (profanity)" },
|
|
|
|
|
bngsat: { normalized: "bangsat", note: "slang for 'bangsat' (profanity)" },
|
|
|
|
|
bgsat: { normalized: "bangsat", note: "slang for 'bangsat' (profanity)" },
|
|
|
|
|
bngstd: { normalized: "bangsat", note: "vowelless 'bangsat' (profanity)" },
|
|
|
|
|
// brengsek
|
|
|
|
|
brngsk: { normalized: "brengsek", note: "slang for 'brengsek' (profanity)" },
|
|
|
|
|
// bajingan
|
|
|
|
|
bjngn: { normalized: "bajingan", note: "slang for 'bajingan' (profanity)" },
|
|
|
|
|
bjgn: { normalized: "bajingan", note: "slang for 'bajingan' (profanity)" },
|
|
|
|
|
// kontol
|
|
|
|
|
kntl: { normalized: "kontol", note: "slang for 'kontol' (profanity)" },
|
|
|
|
|
knt: { normalized: "kontol", note: "slang for 'kontol' (profanity)" },
|
|
|
|
|
kontl: { normalized: "kontol", note: "slang for 'kontol' (profanity)" },
|
|
|
|
|
kntll: { normalized: "kontol", note: "elongated 'kontol' (profanity)" },
|
|
|
|
|
// memek
|
|
|
|
|
mmk: { normalized: "memek", note: "slang for 'memek' (profanity)" },
|
|
|
|
|
memk: { normalized: "memek", note: "slang for 'memek' (profanity)" },
|
|
|
|
|
mmkk: { normalized: "memek", note: "elongated 'memek' (profanity)" },
|
|
|
|
|
// tai
|
|
|
|
|
tae: { normalized: "tai", note: "slang for 'tai' (profanity)" },
|
|
|
|
|
ty: { normalized: "tai", note: "slang for 'tai' (profanity)" },
|
|
|
|
|
// goblok
|
|
|
|
|
gblk: { normalized: "goblok", note: "slang for 'goblok' (profanity)" },
|
|
|
|
|
goblog: { normalized: "goblok", note: "slang for 'goblok' (profanity)" },
|
|
|
|
|
gblkkk: { normalized: "goblok", note: "elongated 'goblok' (profanity)" },
|
|
|
|
|
// tolol
|
|
|
|
|
tlol: { normalized: "tolol", note: "slang for 'tolol' (profanity)" },
|
|
|
|
|
tloll: { normalized: "tolol", note: "elongated 'tolol' (profanity)" },
|
|
|
|
|
// bego
|
|
|
|
|
bgo: { normalized: "bego", note: "slang for 'bego' (profanity)" },
|
|
|
|
|
bgoo: { normalized: "bego", note: "elongated 'bego' (profanity)" },
|
|
|
|
|
// sialan
|
|
|
|
|
slan: { normalized: "sialan", note: "slang for 'sialan' (profanity)" },
|
|
|
|
|
sln: { normalized: "sialan", note: "slang for 'sialan' (profanity)" },
|
|
|
|
|
sialann: { normalized: "sialan", note: "elongated 'sialan' (profanity)" },
|
|
|
|
|
// jancuk (Javanese)
|
|
|
|
|
jncuk: {
|
|
|
|
|
normalized: "jancuk",
|
|
|
|
|
note: "Javanese slang for 'jancuk' (profanity)",
|
|
|
|
|
},
|
|
|
|
|
jcuk: {
|
|
|
|
|
normalized: "jancuk",
|
|
|
|
|
note: "Javanese slang for 'jancuk' (profanity)",
|
|
|
|
|
},
|
|
|
|
|
jncukk: { normalized: "jancuk", note: "elongated 'jancuk' (profanity)" },
|
|
|
|
|
// kampret
|
|
|
|
|
kmprt: { normalized: "kampret", note: "slang for 'kampret' (profanity)" },
|
|
|
|
|
kmpret: { normalized: "kampret", note: "slang for 'kampret' (profanity)" },
|
|
|
|
|
// pepek
|
|
|
|
|
ppk: { normalized: "pepek", note: "slang for 'pepek' (profanity)" },
|
|
|
|
|
// jembut
|
|
|
|
|
jmbt: { normalized: "jembut", note: "slang for 'jembut' (profanity)" },
|
|
|
|
|
// ngentot
|
|
|
|
|
ngntt: { normalized: "ngentot", note: "slang for 'ngentot' (profanity)" },
|
|
|
|
|
ngnt: { normalized: "ngentot", note: "slang for 'ngentot' (profanity)" },
|
|
|
|
|
// ngewe
|
|
|
|
|
ngw: { normalized: "ngewe", note: "slang for 'ngewe' (profanity)" },
|
|
|
|
|
// coli
|
|
|
|
|
cli: { normalized: "coli", note: "slang for 'coli' (profanity)" },
|
|
|
|
|
// celaka
|
|
|
|
|
clka: { normalized: "celaka", note: "slang for 'celaka' (profanity)" },
|
|
|
|
|
// laknat
|
|
|
|
|
lknt: { normalized: "laknat", note: "slang for 'laknat' (profanity)" },
|
|
|
|
|
// pantek
|
|
|
|
|
pntk: { normalized: "pantek", note: "slang for 'pantek' (profanity)" },
|
|
|
|
|
pntek: { normalized: "pantek", note: "slang for 'pantek' (profanity)" },
|
|
|
|
|
// entod
|
|
|
|
|
ntd: { normalized: "entod", note: "slang for 'entod' (profanity)" },
|
|
|
|
|
// Javanese insults
|
|
|
|
|
ndasmu: {
|
|
|
|
|
normalized: "ndasmu",
|
|
|
|
|
note: "Javanese insult 'ndasmu' (profanity)",
|
|
|
|
|
},
|
|
|
|
|
ndas: { normalized: "ndas", note: "Javanese insult 'ndas' (profanity)" },
|
|
|
|
|
// piyo (Javanese profanity)
|
|
|
|
|
piyoo: { normalized: "piyo", note: "Javanese slang 'piyo' (profanity)" },
|
|
|
|
|
|
|
|
|
|
// =========================================================================
|
|
|
|
|
// Sexual deviation / prohibited identity topics
|
|
|
|
|
// =========================================================================
|
|
|
|
|
lgbt: { normalized: "LGBT", note: "sexual deviation / prohibited topic" },
|
|
|
|
|
lgbtq: { normalized: "LGBTQ", note: "sexual deviation / prohibited topic" },
|
|
|
|
|
lgbtqi: { normalized: "LGBTQI", note: "sexual deviation / prohibited topic" },
|
|
|
|
|
lgbtqa: { normalized: "LGBTQA", note: "sexual deviation / prohibited topic" },
|
|
|
|
|
lgb: { normalized: "LGBT", note: "abbreviation for LGBT / prohibited topic" },
|
|
|
|
|
lgbti: { normalized: "LGBTI", note: "sexual deviation / prohibited topic" },
|
|
|
|
|
// furry subculture
|
|
|
|
|
furry: { normalized: "furry", note: "furry / prohibited topic" },
|
|
|
|
|
furries: { normalized: "furry", note: "furry / prohibited topic" },
|
|
|
|
|
transfurry: {
|
|
|
|
|
normalized: "transfurry",
|
|
|
|
|
note: "transfurry / prohibited topic",
|
|
|
|
|
},
|
|
|
|
|
transfur: {
|
|
|
|
|
normalized: "transfurry",
|
|
|
|
|
note: "slang for 'transfurry' / prohibited topic",
|
|
|
|
|
},
|
|
|
|
|
protogen: {
|
|
|
|
|
normalized: "protogen",
|
|
|
|
|
note: "furry subculture / prohibited topic",
|
|
|
|
|
},
|
|
|
|
|
therian: { normalized: "therian", note: "therianthropy / prohibited topic" },
|
|
|
|
|
therianthropy: {
|
|
|
|
|
normalized: "therianthropy",
|
|
|
|
|
note: "therianthropy / prohibited topic",
|
|
|
|
|
},
|
|
|
|
|
otherkin: {
|
|
|
|
|
normalized: "otherkin",
|
|
|
|
|
note: "otherkin identity / prohibited topic",
|
|
|
|
|
},
|
|
|
|
|
// furry-adjacent terms
|
|
|
|
|
yiff: { normalized: "yiff", note: "furry sexual content / prohibited topic" },
|
|
|
|
|
fursona: { normalized: "fursona", note: "furry persona / prohibited topic" },
|
|
|
|
|
fursonas: {
|
|
|
|
|
normalized: "fursona",
|
|
|
|
|
note: "furry personas / prohibited topic",
|
|
|
|
|
},
|
|
|
|
|
fursuit: { normalized: "fursuit", note: "furry costume / prohibited topic" },
|
|
|
|
|
fursuits: {
|
|
|
|
|
normalized: "fursuit",
|
|
|
|
|
note: "furry costumes / prohibited topic",
|
|
|
|
|
},
|
|
|
|
|
// sexual orientation terms
|
|
|
|
|
gayy: { normalized: "gay", note: "elongated 'gay' / prohibited topic" },
|
|
|
|
|
lesbi: { normalized: "lesbian", note: "lesbian / prohibited topic" },
|
|
|
|
|
lesbii: {
|
|
|
|
|
normalized: "lesbian",
|
|
|
|
|
note: "slang for 'lesbian' / prohibited topic",
|
|
|
|
|
},
|
|
|
|
|
homo: { normalized: "homo", note: "homosexual slur / prohibited topic" },
|
|
|
|
|
waria: { normalized: "waria", note: "waria / prohibited topic" },
|
|
|
|
|
trans: { normalized: "transgender", note: "transgender / prohibited topic" },
|
|
|
|
|
nonbinary: {
|
|
|
|
|
normalized: "nonbinary",
|
|
|
|
|
note: "nonbinary identity / prohibited topic",
|
|
|
|
|
},
|
|
|
|
|
nb: {
|
|
|
|
|
normalized: "nonbinary",
|
|
|
|
|
note: "nonbinary abbreviation / prohibited topic",
|
|
|
|
|
},
|
|
|
|
|
genderfluid: {
|
|
|
|
|
normalized: "genderfluid",
|
|
|
|
|
note: "genderfluid / prohibited topic",
|
|
|
|
|
},
|
|
|
|
|
pansexual: { normalized: "pansexual", note: "pansexual / prohibited topic" },
|
|
|
|
|
asexual: { normalized: "asexual", note: "asexual / prohibited topic" },
|
|
|
|
|
ace: {
|
|
|
|
|
normalized: "asexual",
|
|
|
|
|
note: "asexual abbreviation / prohibited topic",
|
|
|
|
|
},
|
|
|
|
|
enby: { normalized: "enby", note: "NB/nonbinary slang / prohibited topic" },
|
|
|
|
|
|
|
|
|
|
// =========================================================================
|
|
|
|
|
// Interjections / safe expressions (NOT profanity)
|
|
|
|
|
// =========================================================================
|
|
|
|
|
woy: {
|
|
|
|
|
normalized: "woy",
|
|
|
|
|
note: "casual Indonesian interjection/greeting; not SARA/hate/harassment by default",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
woyy: {
|
|
|
|
|
normalized: "woy",
|
|
|
|
|
note: "elongated 'woy'",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
woi: {
|
|
|
|
|
normalized: "woi",
|
|
|
|
|
note: "casual Indonesian interjection/greeting; not SARA/hate/harassment by default",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
woii: {
|
|
|
|
|
normalized: "woi",
|
|
|
|
|
note: "elongated 'woi'",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
oi: {
|
|
|
|
|
normalized: "oi",
|
|
|
|
|
note: "casual call/interjection; not offensive by default",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
hadeh: {
|
|
|
|
|
normalized: "hadeh",
|
|
|
|
|
note: "facepalm/tired expression; not offensive by default",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
hadeuh: {
|
|
|
|
|
normalized: "hadeh",
|
|
|
|
|
note: "facepalm/tired expression; not offensive by default",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
hadehh: {
|
|
|
|
|
normalized: "hadeh",
|
|
|
|
|
note: "elongated 'hadeh'",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
astaga: {
|
|
|
|
|
normalized: "astaga",
|
|
|
|
|
note: "Indonesian exclamation of surprise",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
astagfirullah: {
|
|
|
|
|
normalized: "astagfirullah",
|
|
|
|
|
note: "Islamic exclamation",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
masyaallah: {
|
|
|
|
|
normalized: "masyaallah",
|
|
|
|
|
note: "Islamic exclamation",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
allahu: {
|
|
|
|
|
normalized: "allahu",
|
|
|
|
|
note: "Islamic exclamation",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
aduh: {
|
|
|
|
|
normalized: "aduh",
|
|
|
|
|
note: "Indonesian expression of pain/surprise",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
aduhh: {
|
|
|
|
|
normalized: "aduh",
|
|
|
|
|
note: "elongated 'aduh'",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
buset: {
|
|
|
|
|
normalized: "buset",
|
|
|
|
|
note: "mild Indonesian exclamation",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
busyet: {
|
|
|
|
|
normalized: "buset",
|
|
|
|
|
note: "variant of 'buset'",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
gila: {
|
|
|
|
|
normalized: "gila",
|
|
|
|
|
note: "'crazy' — context-dependent; can be exclamation or insult",
|
|
|
|
|
},
|
|
|
|
|
gilaa: {
|
|
|
|
|
normalized: "gila",
|
|
|
|
|
note: "elongated 'gila' — context-dependent",
|
|
|
|
|
},
|
|
|
|
|
stres: {
|
|
|
|
|
normalized: "stres",
|
|
|
|
|
note: "stress expression",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
pusing: {
|
|
|
|
|
normalized: "pusing",
|
|
|
|
|
note: "dizzy/confused expression",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// =========================================================================
|
|
|
|
|
// Laughter expressions (safe)
|
|
|
|
|
// =========================================================================
|
|
|
|
|
wkwk: {
|
|
|
|
|
normalized: "wkwk",
|
|
|
|
|
note: "Indonesian laughter expression",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
wkwkwk: {
|
|
|
|
|
normalized: "wkwk",
|
|
|
|
|
note: "Indonesian laughter expression",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
wk: {
|
|
|
|
|
normalized: "wkwk",
|
|
|
|
|
note: "Indonesian laughter expression",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
wkwkwkwk: {
|
|
|
|
|
normalized: "wkwk",
|
|
|
|
|
note: "Indonesian laughter expression",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
lol: {
|
|
|
|
|
normalized: "lol",
|
|
|
|
|
note: "English laughter",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
lmao: {
|
|
|
|
|
normalized: "lmao",
|
|
|
|
|
note: "English laughter",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
rofl: {
|
|
|
|
|
normalized: "rofl",
|
|
|
|
|
note: "English laughter",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
xixixi: {
|
|
|
|
|
normalized: "xixixi",
|
|
|
|
|
note: "laughter expression",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
hehe: {
|
|
|
|
|
normalized: "hehe",
|
|
|
|
|
note: "laughter expression",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
hahaha: {
|
|
|
|
|
normalized: "hahaha",
|
|
|
|
|
note: "laughter expression",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// =========================================================================
|
|
|
|
|
// Casual Indonesian slang (safe)
|
|
|
|
|
// =========================================================================
|
|
|
|
|
santuy: {
|
|
|
|
|
normalized: "santai",
|
|
|
|
|
note: "relaxed/casual Indonesian",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
gaskeun: {
|
|
|
|
|
normalized: "gaskeun",
|
|
|
|
|
note: "Indonesian slang for 'let's go'",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
gas: {
|
|
|
|
|
normalized: "gas",
|
|
|
|
|
note: "Indonesian slang for 'go/yes'",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
baka: {
|
|
|
|
|
normalized: "baka",
|
|
|
|
|
note: "Japanese 'idiot' (anime slang)",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
kawai: {
|
|
|
|
|
normalized: "kawaii",
|
|
|
|
|
note: "Japanese 'cute' (anime slang)",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
sugoi: {
|
|
|
|
|
normalized: "sugoi",
|
|
|
|
|
note: "Japanese 'amazing' (anime slang)",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
nani: {
|
|
|
|
|
normalized: "nani",
|
|
|
|
|
note: "Japanese 'what' (anime slang)",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
bts: {
|
|
|
|
|
normalized: "bts",
|
|
|
|
|
note: "K-pop group abbreviation",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
otw: {
|
|
|
|
|
normalized: "on the way",
|
|
|
|
|
note: "common internet abbreviation",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
brb: {
|
|
|
|
|
normalized: "be right back",
|
|
|
|
|
note: "common internet abbreviation",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
afk: {
|
|
|
|
|
normalized: "away from keyboard",
|
|
|
|
|
note: "common internet abbreviation",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
btw: {
|
|
|
|
|
normalized: "by the way",
|
|
|
|
|
note: "English common abbreviation",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
omg: {
|
|
|
|
|
normalized: "oh my god",
|
|
|
|
|
note: "English interjection",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
pls: {
|
|
|
|
|
normalized: "please",
|
|
|
|
|
note: "English common abbreviation",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
thx: {
|
|
|
|
|
normalized: "thanks",
|
|
|
|
|
note: "English common abbreviation",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
tq: {
|
|
|
|
|
normalized: "thanks",
|
|
|
|
|
note: "English common abbreviation",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
imo: {
|
|
|
|
|
normalized: "in my opinion",
|
|
|
|
|
note: "English common abbreviation",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
tbh: {
|
|
|
|
|
normalized: "to be honest",
|
|
|
|
|
note: "English common abbreviation",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
idk: {
|
|
|
|
|
normalized: "I don't know",
|
|
|
|
|
note: "English common abbreviation",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
rn: {
|
|
|
|
|
normalized: "right now",
|
|
|
|
|
note: "English common abbreviation",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
sm: {
|
|
|
|
|
normalized: "sama",
|
|
|
|
|
note: "Indonesian 'same' or 'with'",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
gpp: {
|
|
|
|
|
normalized: "gapapa",
|
|
|
|
|
note: "Indonesian 'it's okay'",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
gapapa: {
|
|
|
|
|
normalized: "gapapa",
|
|
|
|
|
note: "Indonesian 'it's okay'",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
// =========================================================================
|
|
|
|
|
// Spam / scam / self-promo indicators
|
|
|
|
|
// =========================================================================
|
|
|
|
|
gcash: { normalized: "gcash", note: "potential scam/crypto term" },
|
|
|
|
|
airdrop: { normalized: "airdrop", note: "potential crypto scam" },
|
|
|
|
|
giveaway: { normalized: "giveaway", note: "potential spam — check context" },
|
|
|
|
|
follow4follow: { normalized: "follow4follow", note: "spam engagement" },
|
|
|
|
|
f4f: { normalized: "follow4follow", note: "spam engagement abbreviation" },
|
|
|
|
|
sub4sub: { normalized: "sub4sub", note: "spam engagement" },
|
|
|
|
|
s4s: { normalized: "sub4sub", note: "spam engagement abbreviation" },
|
|
|
|
|
like4like: { normalized: "like4like", note: "spam engagement" },
|
|
|
|
|
l4l: { normalized: "like4like", note: "spam engagement abbreviation" },
|
|
|
|
|
dm: {
|
|
|
|
|
normalized: "DM",
|
|
|
|
|
note: "direct message — check for spam/scam context",
|
|
|
|
|
},
|
|
|
|
|
pm: {
|
|
|
|
|
normalized: "PM",
|
|
|
|
|
note: "private message — check for spam/scam context",
|
|
|
|
|
},
|
|
|
|
|
click: { normalized: "click", note: "potential clickbait/scam" },
|
|
|
|
|
link: { normalized: "link", note: "potential spam link — check context" },
|
|
|
|
|
free: { normalized: "free", note: "potential spam bait — check context" },
|
|
|
|
|
nitro: {
|
|
|
|
|
normalized: "nitro",
|
|
|
|
|
note: "Discord Nitro — common in scam/free nitro spam",
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// =========================================================================
|
|
|
|
|
// Drug / substance slang
|
|
|
|
|
// =========================================================================
|
|
|
|
|
ganja: { normalized: "ganja", note: "marijuana / prohibited topic" },
|
|
|
|
|
weed: { normalized: "ganja", note: "marijuana slang / prohibited topic" },
|
|
|
|
|
sabu: { normalized: "sabu", note: "methamphetamine / prohibited topic" },
|
|
|
|
|
narkotika: { normalized: "narkotika", note: "narcotics / prohibited topic" },
|
|
|
|
|
narkoba: { normalized: "narkoba", note: "narcotics / prohibited topic" },
|
|
|
|
|
kokain: { normalized: "kokain", note: "cocaine / prohibited topic" },
|
|
|
|
|
ekstasi: { normalized: "ekstasi", note: "ecstasy / prohibited topic" },
|
|
|
|
|
shabu: {
|
|
|
|
|
normalized: "sabu",
|
|
|
|
|
note: "variant spelling 'sabu' / prohibited topic",
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// =========================================================================
|
|
|
|
|
// Violence / threat indicators
|
|
|
|
|
// =========================================================================
|
|
|
|
|
bunuh: { normalized: "bunuh", note: "kill / violence indicator" },
|
|
|
|
|
bunuhdiri: {
|
|
|
|
|
normalized: "bunuh diri",
|
|
|
|
|
note: "suicide / self-harm indicator",
|
|
|
|
|
},
|
|
|
|
|
mati: { normalized: "mati", note: "die / death — context-dependent" },
|
|
|
|
|
matiin: {
|
|
|
|
|
normalized: "matikan",
|
|
|
|
|
note: "turn off / kill — context-dependent",
|
|
|
|
|
},
|
|
|
|
|
ancam: { normalized: "ancam", note: "threat indicator" },
|
|
|
|
|
ancamn: { normalized: "ancaman", note: "threat indicator" },
|
|
|
|
|
bakar: { normalized: "bakar", note: "burn / violence indicator" },
|
|
|
|
|
pukul: { normalized: "pukul", note: "hit/punch / violence indicator" },
|
|
|
|
|
tikam: { normalized: "tikam", note: "stab / violence indicator" },
|
|
|
|
|
tembak: { normalized: "tembak", note: "shoot / violence indicator" },
|
|
|
|
|
bom: { normalized: "bom", note: "bomb / violence indicator" },
|
|
|
|
|
teror: { normalized: "teror", note: "terror / violence indicator" },
|
|
|
|
|
perang: { normalized: "perang", note: "war / conflict indicator" },
|
|
|
|
|
|
|
|
|
|
// =========================================================================
|
|
|
|
|
// Religious / cultural sensitivity terms (context-dependent, not flagged by
|
|
|
|
|
// default — LLM must evaluate context carefully)
|
|
|
|
|
// =========================================================================
|
|
|
|
|
kafir: { normalized: "kafir", note: "religious slur — context-dependent" },
|
|
|
|
|
musrik: { normalized: "musyrik", note: "religious term — context-dependent" },
|
|
|
|
|
kufur: { normalized: "kufur", note: "religious term — context-dependent" },
|
|
|
|
|
sesat: { normalized: "sesat", note: "heretic — context-dependent" },
|
|
|
|
|
halal: {
|
|
|
|
|
normalized: "halal",
|
|
|
|
|
note: "Islamic term",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
haram: {
|
|
|
|
|
normalized: "haram",
|
|
|
|
|
note: "Islamic prohibition term — context-dependent",
|
|
|
|
|
},
|
|
|
|
|
dosa: {
|
|
|
|
|
normalized: "dosa",
|
|
|
|
|
note: "sin — context-dependent",
|
|
|
|
|
},
|
|
|
|
|
taubat: {
|
|
|
|
|
normalized: "taubat",
|
|
|
|
|
note: "repentance — context-dependent",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
shalat: {
|
|
|
|
|
normalized: "shalat",
|
|
|
|
|
note: "Islamic prayer",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
sholat: {
|
|
|
|
|
normalized: "sholat",
|
|
|
|
|
note: "Islamic prayer (variant)",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
puasa: {
|
|
|
|
|
normalized: "puasa",
|
|
|
|
|
note: "fasting",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
ramadhan: {
|
|
|
|
|
normalized: "ramadhan",
|
|
|
|
|
note: "Ramadan",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
idul: {
|
|
|
|
|
normalized: "idul",
|
|
|
|
|
note: "Islamic holiday prefix",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
fitri: {
|
|
|
|
|
normalized: "fitri",
|
|
|
|
|
note: "Islamic holiday suffix",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
qurban: {
|
|
|
|
|
normalized: "qurban",
|
|
|
|
|
note: "Islamic sacrifice",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
kurban: {
|
|
|
|
|
normalized: "kurban",
|
|
|
|
|
note: "Islamic sacrifice (variant)",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
masjid: {
|
|
|
|
|
normalized: "masjid",
|
|
|
|
|
note: "mosque",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
gereja: {
|
|
|
|
|
normalized: "gereja",
|
|
|
|
|
note: "church",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
vihara: {
|
|
|
|
|
normalized: "vihara",
|
|
|
|
|
note: "Buddhist temple",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
pura: {
|
|
|
|
|
normalized: "pura",
|
|
|
|
|
note: "Hindu temple",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
klenteng: {
|
|
|
|
|
normalized: "klenteng",
|
|
|
|
|
note: "Chinese temple",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// =========================================================================
|
|
|
|
|
// NSFW / sexual content terms (outside furry/LGBT scope)
|
|
|
|
|
// =========================================================================
|
|
|
|
|
hentai: { normalized: "hentai", note: "anime porn / NSFW content" },
|
|
|
|
|
porn: { normalized: "porno", note: "pornography / NSFW content" },
|
|
|
|
|
porno: { normalized: "porno", note: "pornography / NSFW content" },
|
|
|
|
|
bokep: { normalized: "bokep", note: "pornography / NSFW content" },
|
|
|
|
|
bokap: {
|
|
|
|
|
normalized: "bokap",
|
|
|
|
|
note: "'father' slang — NOT bokep",
|
|
|
|
|
safeByDefault: true,
|
|
|
|
|
},
|
|
|
|
|
ngeseks: { normalized: "ngeseks", note: "having sex / NSFW content" },
|
|
|
|
|
masturbasi: { normalized: "masturbasi", note: "masturbation / NSFW content" },
|
|
|
|
|
onani: { normalized: "onani", note: "masturbation / NSFW content" },
|
|
|
|
|
colok: { normalized: "colok", note: "sexual act / NSFW context" },
|
|
|
|
|
blowjob: { normalized: "blowjob", note: "sexual act / NSFW content" },
|
|
|
|
|
bj: { normalized: "blowjob", note: "sexual act abbreviation / NSFW content" },
|
|
|
|
|
cumshot: { normalized: "cumshot", note: "sexual act / NSFW content" },
|
|
|
|
|
creampie: { normalized: "creampie", note: "sexual act / NSFW content" },
|
|
|
|
|
threesome: { normalized: "threesome", note: "sexual act / NSFW content" },
|
|
|
|
|
orgy: { normalized: "orgy", note: "sexual act / NSFW content" },
|
|
|
|
|
gangbang: { normalized: "gangbang", note: "sexual act / NSFW content" },
|
|
|
|
|
milf: { normalized: "milf", note: "sexual category / NSFW content" },
|
|
|
|
|
loli: { normalized: "loli", note: "underage sexual content / illegal" },
|
|
|
|
|
shota: { normalized: "shota", note: "underage sexual content / illegal" },
|
|
|
|
|
cp: { normalized: "cp", note: "child pornography abbreviation / illegal" },
|
|
|
|
|
pedo: { normalized: "pedo", note: "pedophilia / illegal" },
|
|
|
|
|
pedofil: { normalized: "pedofil", note: "pedophile / illegal" },
|
|
|
|
|
|
|
|
|
|
// =========================================================================
|
|
|
|
|
// Gambling
|
|
|
|
|
// =========================================================================
|
|
|
|
|
judi: { normalized: "judi", note: "gambling / prohibited topic" },
|
|
|
|
|
slot: { normalized: "slot", note: "slot gambling — check context" },
|
|
|
|
|
slotgacor: { normalized: "slot gacor", note: "gambling spam term" },
|
|
|
|
|
gacor: {
|
|
|
|
|
normalized: "gacor",
|
|
|
|
|
note: "gambling spam term — but also slang for 'good', context-dependent",
|
|
|
|
|
},
|
|
|
|
|
togel: { normalized: "togel", note: "lottery gambling / prohibited topic" },
|
|
|
|
|
poker: { normalized: "poker", note: "poker gambling — check context" },
|
|
|
|
|
sbobet: { normalized: "sbobet", note: "gambling site / prohibited topic" },
|
|
|
|
|
parlay: { normalized: "parlay", note: "gambling term / prohibited topic" },
|
|
|
|
|
maxwin: { normalized: "maxwin", note: "gambling spam term" },
|
|
|
|
|
rtp: { normalized: "rtp", note: "gambling RTP term — check context" },
|
|
|
|
|
depo: {
|
|
|
|
|
normalized: "deposit",
|
|
|
|
|
note: "deposit — common in gambling spam, check context",
|
|
|
|
|
},
|
|
|
|
|
wd: { normalized: "withdraw", note: "withdraw — common in gambling spam" },
|
|
|
|
|
jackpot: {
|
|
|
|
|
normalized: "jackpot",
|
|
|
|
|
note: "jackpot — common in gambling spam, check context",
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// =========================================================================
|
|
|
|
|
// Money / financial scam indicators
|
|
|
|
|
// =========================================================================
|
|
|
|
|
investment: {
|
|
|
|
|
normalized: "investment",
|
|
|
|
|
note: "potential investment scam — check context",
|
|
|
|
|
},
|
|
|
|
|
investasi: {
|
|
|
|
|
normalized: "investasi",
|
|
|
|
|
note: "potential investment scam — check context",
|
|
|
|
|
},
|
|
|
|
|
crypto: { normalized: "crypto", note: "crypto scam — check context" },
|
|
|
|
|
bitcoin: { normalized: "bitcoin", note: "crypto — check context" },
|
|
|
|
|
btc: { normalized: "bitcoin", note: "crypto — check context" },
|
|
|
|
|
usdt: { normalized: "usdt", note: "crypto stablecoin — check context" },
|
|
|
|
|
binance: { normalized: "binance", note: "crypto exchange — check context" },
|
|
|
|
|
forex: { normalized: "forex", note: "forex trading — check context" },
|
|
|
|
|
trading: { normalized: "trading", note: "trading — check context" },
|
|
|
|
|
profit: { normalized: "profit", note: "scam bait — check context" },
|
|
|
|
|
bonus: { normalized: "bonus", note: "spam bait — check context" },
|
|
|
|
|
hadiah: { normalized: "hadiah", note: "prize scam — check context" },
|
|
|
|
|
menang: { normalized: "menang", note: "win — check context" },
|
|
|
|
|
claim: { normalized: "claim", note: "scam bait — check context" },
|
|
|
|
|
klaim: { normalized: "klaim", note: "scam bait — check context" },
|
|
|
|
|
verify: { normalized: "verify", note: "potential phishing — check context" },
|
|
|
|
|
verifikasi: {
|
|
|
|
|
normalized: "verifikasi",
|
|
|
|
|
note: "potential phishing — check context",
|
|
|
|
|
},
|
|
|
|
|
wallet: { normalized: "wallet", note: "crypto wallet — check context" },
|
|
|
|
|
seed: {
|
|
|
|
|
normalized: "seed phrase",
|
|
|
|
|
note: "crypto seed phrase — check context",
|
|
|
|
|
},
|
|
|
|
|
recovery: {
|
|
|
|
|
normalized: "recovery phrase",
|
|
|
|
|
note: "crypto recovery — check context",
|
|
|
|
|
},
|
|
|
|
|
};
|