@@ -2,12 +2,14 @@ import moment from "moment";
22import {
33 RegExpMatcher ,
44 TextCensor ,
5+ collapseDuplicatesTransformer ,
56 createSimpleTransformer ,
67 englishDataset ,
78 englishRecommendedTransformers ,
89 fixedPhraseCensorStrategy ,
910 pattern ,
10- remapCharactersTransformer ,
11+ resolveConfusablesTransformer ,
12+ toAsciiLowerCaseTransformer ,
1113} from "obscenity" ;
1214
1315import amber from "@material-ui/core/colors/amber" ;
@@ -78,10 +80,7 @@ const invisibleChars = new Set([
7880const fixedDataset = englishDataset
7981 . removePhrasesIf ( ( phrase ) => phrase . metadata . originalWord === "prick" )
8082 . addPhrase ( ( phrase ) =>
81- phrase
82- . setMetadata ( { originalWord : "ass" } )
83- . addWhitelistedTerm ( "45s" )
84- . addWhitelistedTerm ( "assess" )
83+ phrase . setMetadata ( { originalWord : "ass" } ) . addWhitelistedTerm ( "assess" )
8584 )
8685 . addPhrase ( ( phrase ) =>
8786 phrase
@@ -108,14 +107,26 @@ const fixedDataset = englishDataset
108107 ) ;
109108// Work-around for:
110109// https://github.com/jo3-l/obscenity/issues/100
110+ const blacklistMatcherTransformers = [
111+ createSimpleTransformer ( ( c ) => ( ! invisibleChars . has ( c ) ? c : undefined ) ) ,
112+ resolveConfusablesTransformer ( ) ,
113+ toAsciiLowerCaseTransformer ( ) ,
114+ collapseDuplicatesTransformer ( {
115+ defaultThreshold : 1 ,
116+ customThresholds : new Map ( [
117+ [ "b" , 2 ] , // a_bb_o
118+ [ "e" , 2 ] , // ab_ee_d
119+ [ "o" , 2 ] , // b_oo_nga
120+ [ "l" , 2 ] , // fe_ll_atio
121+ [ "s" , 2 ] , // a_ss_
122+ [ "g" , 2 ] , // ni_gg_er
123+ ] ) ,
124+ } ) ,
125+ ] ;
111126export const badWords = new RegExpMatcher ( {
112127 ...fixedDataset . build ( ) ,
113128 ...englishRecommendedTransformers ,
114- blacklistMatcherTransformers : [
115- createSimpleTransformer ( ( c ) => ( ! invisibleChars . has ( c ) ? c : undefined ) ) ,
116- remapCharactersTransformer ( { l : "/" } ) ,
117- ...englishRecommendedTransformers . blacklistMatcherTransformers ,
118- ] ,
129+ blacklistMatcherTransformers,
119130} ) ;
120131const censor = new TextCensor ( ) . setStrategy ( fixedPhraseCensorStrategy ( "🤬" ) ) ;
121132
0 commit comments