swear_jar 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,266 @@
1
+ # English word list. English entries never take prefixes. Short or ambiguous words are
2
+ # `exact: true` (whole word only) and/or `embeddable: false` (never inside a word).
3
+ # A comment after a flag lists innocent words that the flag keeps from being reported.
4
+ # The default detector loads the Polish list too, so Polish words count as well.
5
+ words:
6
+ # --- vulgar and sexual ---
7
+ - stem: fuck
8
+ variants: [fck, fvck, phuck]
9
+ severity: strong
10
+ categories: [vulgar, sexual]
11
+ - stem: motherfuck
12
+ severity: strong
13
+ categories: [vulgar, insult]
14
+ - stem: shit
15
+ severity: strong
16
+ categories: [vulgar]
17
+ - stem: bullshit
18
+ severity: strong
19
+ categories: [vulgar]
20
+ - stem: cunt
21
+ severity: strong
22
+ categories: [vulgar, sexual, insult]
23
+ - stem: dick
24
+ severity: strong
25
+ categories: [vulgar, sexual]
26
+ - stem: cock
27
+ severity: strong
28
+ categories: [vulgar, sexual]
29
+ - stem: pussy
30
+ variants: [pussies]
31
+ severity: strong
32
+ categories: [vulgar, sexual]
33
+ - stem: dildo
34
+ severity: strong
35
+ categories: [sexual]
36
+ - stem: jizz
37
+ severity: strong
38
+ categories: [sexual]
39
+ - stem: cum
40
+ variants: [cums, cumming]
41
+ severity: strong
42
+ categories: [sexual]
43
+ exact: true
44
+ - stem: blowjob
45
+ severity: strong
46
+ categories: [sexual]
47
+ - stem: handjob
48
+ severity: strong
49
+ categories: [sexual]
50
+ - stem: ballsack
51
+ severity: strong
52
+ categories: [vulgar, sexual]
53
+ - stem: milf
54
+ severity: strong
55
+ categories: [sexual]
56
+ - stem: ass
57
+ variants: [asses]
58
+ severity: mild
59
+ categories: [vulgar]
60
+ embeddable: false
61
+ exact: true
62
+ - stem: arse
63
+ variants: [arses]
64
+ severity: mild
65
+ categories: [vulgar]
66
+ embeddable: false # keeps clean: parse, sparse, coarse
67
+ exact: true # keeps clean: arsenal, arsenic
68
+ - stem: crap
69
+ severity: mild
70
+ categories: [vulgar]
71
+ embeddable: false # keeps clean: scrap, skyscraper
72
+ - stem: piss
73
+ severity: mild
74
+ categories: [vulgar]
75
+ - stem: turd
76
+ variants: [turds]
77
+ severity: mild
78
+ categories: [vulgar]
79
+ embeddable: false # keeps clean: Saturday
80
+ exact: true
81
+ - stem: bollock
82
+ severity: mild
83
+ categories: [vulgar]
84
+ - stem: bugger
85
+ severity: mild
86
+ categories: [vulgar]
87
+ embeddable: false # keeps clean: debugger
88
+ - stem: tit
89
+ variants: [tits, titty, titties]
90
+ severity: mild
91
+ categories: [sexual]
92
+ exact: true
93
+ - stem: boob
94
+ variants: [boobs, boobies]
95
+ severity: mild
96
+ categories: [sexual]
97
+ exact: true
98
+ - stem: fap
99
+ variants: [fapping]
100
+ severity: mild
101
+ categories: [sexual]
102
+ exact: true
103
+ - stem: wtf
104
+ severity: mild
105
+ categories: [vulgar]
106
+ exact: true
107
+ - stem: stfu
108
+ severity: mild
109
+ categories: [vulgar]
110
+ exact: true
111
+ # --- insults ---
112
+ - stem: bitch
113
+ severity: strong
114
+ categories: [insult]
115
+ - stem: asshol
116
+ variants: [arsehol]
117
+ severity: strong
118
+ categories: [insult]
119
+ - stem: dipshit
120
+ severity: strong
121
+ categories: [insult]
122
+ - stem: twat
123
+ severity: strong
124
+ categories: [insult, sexual]
125
+ - stem: wank
126
+ severity: strong
127
+ categories: [insult, sexual]
128
+ embeddable: false # keeps clean: Iwanka, swank
129
+ - stem: slut
130
+ severity: strong
131
+ categories: [insult, sexual]
132
+ - stem: whore
133
+ variants: [whoring]
134
+ severity: strong
135
+ categories: [insult, sexual]
136
+ - stem: skank
137
+ severity: strong
138
+ categories: [insult]
139
+ - stem: bastard
140
+ severity: mild
141
+ categories: [insult]
142
+ - stem: jackass
143
+ severity: mild
144
+ categories: [insult]
145
+ - stem: dumbass
146
+ severity: mild
147
+ categories: [insult]
148
+ - stem: douche
149
+ severity: mild
150
+ categories: [insult]
151
+ - stem: prick
152
+ variants: [pricks]
153
+ severity: mild
154
+ categories: [insult]
155
+ exact: true # keeps clean: prickly, prickle
156
+ - stem: bellend
157
+ severity: mild
158
+ categories: [insult]
159
+ - stem: idiot
160
+ severity: mild
161
+ categories: [insult]
162
+ - stem: cretin
163
+ severity: mild
164
+ categories: [insult]
165
+ # --- slurs ---
166
+ - stem: retard
167
+ severity: strong
168
+ categories: [insult, slur]
169
+ - stem: nigger
170
+ variants: [nigga, niggaz]
171
+ severity: severe
172
+ categories: [slur]
173
+ - stem: faggot
174
+ severity: severe
175
+ categories: [slur]
176
+ - stem: fag
177
+ variants: [fags]
178
+ severity: severe
179
+ categories: [slur]
180
+ embeddable: false
181
+ exact: true # keeps clean: Polish fagot (bassoon)
182
+ - stem: kike
183
+ variants: [kikes]
184
+ severity: severe
185
+ categories: [slur]
186
+ embeddable: false
187
+ exact: true
188
+ - stem: wetback
189
+ severity: severe
190
+ categories: [slur]
191
+ - stem: tranny
192
+ variants: [trannies]
193
+ severity: severe
194
+ categories: [slur]
195
+ exact: true
196
+ - stem: gook
197
+ variants: [gooks]
198
+ severity: severe
199
+ categories: [slur]
200
+ embeddable: false
201
+ exact: true
202
+ - stem: coon
203
+ variants: [coons]
204
+ severity: severe
205
+ categories: [slur]
206
+ embeddable: false # keeps clean: raccoon
207
+ exact: true
208
+ - stem: raghead
209
+ severity: severe
210
+ categories: [slur]
211
+ # --- religious ---
212
+ - stem: damn
213
+ variants: [damned, damnit, dammit, goddamn, goddamned, goddamnit]
214
+ severity: mild
215
+ categories: [religious]
216
+ exact: true
217
+ - stem: hell
218
+ variants: [hells]
219
+ severity: mild
220
+ categories: [religious]
221
+ exact: true # keeps clean: hello, shell, hellhound
222
+ allow:
223
+ # innocent words containing `ass`
224
+ - assassin
225
+ - class
226
+ - bassist
227
+ # innocent words containing `cock`
228
+ - cocktail
229
+ - cockpit
230
+ - peacock
231
+ - cockatoo
232
+ - cockatiel
233
+ - cockatrice
234
+ - cockroach
235
+ - cockerel
236
+ - cockney
237
+ - cockle
238
+ - cockade
239
+ - hitchcock
240
+ - shuttlecock
241
+ - woodcock
242
+ - weathercock
243
+ - gamecock
244
+ - hancock
245
+ - babcock
246
+ # innocent words containing other stems
247
+ - scunthorpe
248
+ - shiitake
249
+ - shitake
250
+ - matsushita
251
+ - cucumber
252
+ - dickens
253
+ - dickinson
254
+ - riddick
255
+ - hello
256
+ - shell
257
+ - titan
258
+ - pussycat
259
+ - pussyfoot
260
+ - swank
261
+ - wankel
262
+ - snigger
263
+ - niggard
264
+ - retardant
265
+ - retardation
266
+ - retardac # Polish retardacja (retardation)
@@ -0,0 +1,213 @@
1
+ # Polish word list. Stems are written with diacritics; they are folded like the input text.
2
+ # Non-exact entries also match after one of the prefixes below (wkurwić, spierdalać, zajebać).
3
+ # A comment after a flag lists innocent words that the flag keeps from being reported.
4
+ # The default detector loads the English list too, so English words count as well.
5
+ prefixes: [s, w, z, wy, za, od, po, na, prze, roz, wpie, ze, do, u, o, ob, pod, nad, przy]
6
+ words:
7
+ # --- vulgar and sexual ---
8
+ - stem: kurw
9
+ variants: [kurew, kurest]
10
+ severity: strong
11
+ categories: [vulgar]
12
+ - stem: chuj
13
+ variants: [huj]
14
+ severity: strong
15
+ categories: [vulgar, sexual]
16
+ - stem: pierdol
17
+ variants: [pierdal]
18
+ severity: strong
19
+ categories: [vulgar, sexual]
20
+ - stem: jeb
21
+ variants: [joban, jobn]
22
+ severity: strong
23
+ categories: [vulgar, sexual]
24
+ - stem: pizd
25
+ severity: strong
26
+ categories: [vulgar, sexual]
27
+ - stem: cip
28
+ severity: strong
29
+ categories: [vulgar, sexual]
30
+ embeddable: false # keeps clean: principle, recipe, municipal
31
+ - stem: kutas
32
+ severity: strong
33
+ categories: [vulgar, sexual]
34
+ - stem: fiut
35
+ variants: [fiuci]
36
+ severity: strong
37
+ categories: [vulgar, sexual]
38
+ - stem: rucha # not `ruch`, which would report ruch (movement)
39
+ severity: strong
40
+ categories: [vulgar, sexual]
41
+ - stem: lachociąg
42
+ severity: strong
43
+ categories: [insult, sexual]
44
+ - stem: chędoż
45
+ severity: mild
46
+ categories: [sexual]
47
+ - stem: gówno # not `gówn`: without diacritics it is `gown`, which would report gown
48
+ variants: [gówna, gówni, gównu, gównem, gówien]
49
+ severity: mild
50
+ categories: [vulgar]
51
+ - stem: dup
52
+ severity: mild
53
+ categories: [vulgar]
54
+ embeddable: false # keeps clean: standup, roundup, holdup
55
+ - stem: sra
56
+ severity: mild
57
+ categories: [vulgar]
58
+ embeddable: false # keeps clean: Israel, Basra
59
+ - stem: pierdz
60
+ variants: [pierdn, pierdek, pierdk]
61
+ severity: mild
62
+ categories: [vulgar]
63
+ # --- insults ---
64
+ - stem: suk
65
+ variants: [suce] # the allow word `succe` keeps succeed and success clean
66
+ severity: strong
67
+ categories: [insult]
68
+ embeddable: false # keeps clean: Asuka, Tsukuyomi
69
+ - stem: dziwk
70
+ variants: [dziwek]
71
+ severity: strong
72
+ categories: [insult, sexual]
73
+ - stem: zdzir
74
+ severity: strong
75
+ categories: [insult, sexual]
76
+ - stem: szmat
77
+ variants: [szmacie] # not `szmaci`, which would report szmaciany (made of rags)
78
+ severity: mild
79
+ categories: [insult]
80
+ - stem: lafirynd
81
+ severity: mild
82
+ categories: [insult]
83
+ - stem: ladacznic
84
+ severity: mild
85
+ categories: [insult, sexual]
86
+ - stem: debil
87
+ severity: mild
88
+ categories: [insult]
89
+ - stem: idiot
90
+ variants: [idioci]
91
+ severity: mild
92
+ categories: [insult]
93
+ - stem: kretyn
94
+ severity: mild
95
+ categories: [insult]
96
+ - stem: imbecyl
97
+ severity: mild
98
+ categories: [insult]
99
+ - stem: matoł
100
+ severity: mild
101
+ categories: [insult]
102
+ embeddable: false # keeps clean: dermatolog, stomatolog, hematology
103
+ - stem: palant
104
+ severity: mild
105
+ categories: [insult]
106
+ - stem: kmiot
107
+ severity: mild
108
+ categories: [insult]
109
+ - stem: jełop
110
+ severity: mild
111
+ categories: [insult]
112
+ - stem: ćwok
113
+ severity: mild
114
+ categories: [insult]
115
+ - stem: gamoń
116
+ severity: mild
117
+ categories: [insult]
118
+ - stem: pacan
119
+ severity: mild
120
+ categories: [insult]
121
+ - stem: frajer
122
+ severity: mild
123
+ categories: [insult]
124
+ # --- slurs ---
125
+ - stem: cwel
126
+ severity: strong
127
+ categories: [insult, slur]
128
+ - stem: pedał # also reports pedał (bicycle pedal); pedałować is allowed below
129
+ variants: [pedzio, pedziu]
130
+ severity: severe
131
+ categories: [slur]
132
+ - stem: pederast
133
+ severity: severe
134
+ categories: [slur]
135
+ - stem: ciot
136
+ severity: severe
137
+ categories: [slur]
138
+ - stem: lesba # exact, so the neutral lesbijka stays clean
139
+ variants: [lesby, lesbę, lesbo, lesbie]
140
+ severity: severe
141
+ categories: [slur]
142
+ exact: true
143
+ - stem: czarnuch
144
+ severity: severe
145
+ categories: [slur]
146
+ - stem: ciapat # reports ciapaty, not the innocent ciapa (clumsy person)
147
+ variants: [ciapak]
148
+ severity: severe
149
+ categories: [slur]
150
+ - stem: kacap
151
+ severity: severe
152
+ categories: [slur]
153
+ # --- religious ---
154
+ - stem: choler
155
+ severity: mild
156
+ categories: [religious]
157
+ - stem: do diabła
158
+ severity: mild
159
+ categories: [religious]
160
+ allow:
161
+ # innocent words containing `dup`
162
+ - duplikat
163
+ - duplik # covers duplikacja, duplikować
164
+ - duplex
165
+ - dupleks
166
+ - duplic # covers duplicate, duplication
167
+ - duplo
168
+ - podupad # covers podupadać, podupadły (to decline)
169
+ # innocent words close to `kurw` (it does not match them; kept as a guard)
170
+ - skurcz
171
+ # innocent words close to `chuj`/`huj` (it does not match them; kept as a guard)
172
+ - hulajnoga
173
+ # innocent words containing `ciot` (ciotka: aunt)
174
+ - ciotka
175
+ - ciotk
176
+ - ciotce
177
+ - ciotek
178
+ - ciotecz
179
+ - ciotuch
180
+ - ciotun
181
+ - ciotuś
182
+ # innocent words containing `suk`
183
+ - sukces
184
+ - sukce # covers sukcesja, sukcesor (succession, successor)
185
+ - sukienka
186
+ - sukien
187
+ - suknia
188
+ - sukn # covers sukni, sukno (dress, cloth)
189
+ - sukul # covers sukulent (succulent)
190
+ - sukman
191
+ - sukurs
192
+ - sukiyaki
193
+ - succe # covers succeed, success (they contain the variant `suce`)
194
+ # innocent words containing `pedał`
195
+ - pedałow # covers pedałować, pedałowanie (to pedal)
196
+ - pedałuj
197
+ - pedaling
198
+ - pedalling
199
+ - pedaled
200
+ - pedalled
201
+ # innocent words containing other stems
202
+ - szmatk # covers szmatka (cloth)
203
+ - cipher
204
+ - debilit # covers debilitate, debilitating
205
+ - palantir
206
+ - gammon
207
+ - pacanów
208
+ - choleric
209
+ - choleryk
210
+ - cholerycz
211
+ - osram # Osram, which contains `o` + `sra`
212
+ - ruchami # ruch (movement), contains `rucha`
213
+ - ruchach # ruch (movement), contains `rucha`
metadata ADDED
@@ -0,0 +1,67 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: swear_jar
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Konrad Jurkowski
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies: []
12
+ description: Detects profanity in Polish and English text, including inflection and
13
+ obfuscation, and returns exact matches with their positions in the original text
14
+ email:
15
+ - konrad@jurkowski.me
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - CHANGELOG.md
21
+ - LICENSE.txt
22
+ - README.md
23
+ - config/locales/en.yml
24
+ - config/locales/pl.yml
25
+ - lib/swear_jar.rb
26
+ - lib/swear_jar/configuration.rb
27
+ - lib/swear_jar/detector.rb
28
+ - lib/swear_jar/entry.rb
29
+ - lib/swear_jar/errors.rb
30
+ - lib/swear_jar/fold_table.rb
31
+ - lib/swear_jar/match.rb
32
+ - lib/swear_jar/matcher.rb
33
+ - lib/swear_jar/normalizer.rb
34
+ - lib/swear_jar/pattern_builder.rb
35
+ - lib/swear_jar/railtie.rb
36
+ - lib/swear_jar/skeleton.rb
37
+ - lib/swear_jar/slicer.rb
38
+ - lib/swear_jar/swear_jar_validator.rb
39
+ - lib/swear_jar/version.rb
40
+ - lib/swear_jar/word_list.rb
41
+ - locales/en/words.yml
42
+ - locales/pl/words.yml
43
+ homepage: https://github.com/msx2/swear_jar
44
+ licenses:
45
+ - MIT
46
+ metadata:
47
+ source_code_uri: https://github.com/msx2/swear_jar
48
+ changelog_uri: https://github.com/msx2/swear_jar/blob/master/CHANGELOG.md
49
+ rubygems_mfa_required: 'true'
50
+ rdoc_options: []
51
+ require_paths:
52
+ - lib
53
+ required_ruby_version: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: '3.0'
58
+ required_rubygems_version: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ requirements: []
64
+ rubygems_version: 3.6.9
65
+ specification_version: 4
66
+ summary: Swear Jar, a fast profanity detector for Polish and English.
67
+ test_files: []