obscenity 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ bin/*
3
+ -
4
+ features/**/*.feature
5
+ LICENSE.txt
@@ -0,0 +1,24 @@
1
+ # rcov generated
2
+ coverage
3
+ coverage.data
4
+
5
+ # rdoc generated
6
+ rdoc
7
+
8
+ # yard generated
9
+ doc
10
+ .yardoc
11
+
12
+ # bundler
13
+ .bundle
14
+
15
+ # jeweler generated
16
+ pkg
17
+
18
+ # For MacOS:
19
+ .DS_Store
20
+
21
+ # For TextMate
22
+ *.tmproj
23
+ tmtags
24
+
@@ -0,0 +1,5 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.2
4
+ - 1.9.3
5
+ - rbx-19mode
data/Gemfile ADDED
@@ -0,0 +1,11 @@
1
+ source "http://rubygems.org"
2
+
3
+ group :development do
4
+ gem "shoulda", ">= 0"
5
+ gem "rdoc", "~> 3.12"
6
+ gem "bundler"
7
+ gem "jeweler", "~> 1.8.3"
8
+ gem "activemodel", "~> 3.0"
9
+ gem "rack"
10
+ gem "rake"
11
+ end
@@ -0,0 +1,40 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ activemodel (3.2.3)
5
+ activesupport (= 3.2.3)
6
+ builder (~> 3.0.0)
7
+ activesupport (3.2.3)
8
+ i18n (~> 0.6)
9
+ multi_json (~> 1.0)
10
+ builder (3.0.0)
11
+ git (1.2.5)
12
+ i18n (0.6.0)
13
+ jeweler (1.8.3)
14
+ bundler (~> 1.0)
15
+ git (>= 1.2.5)
16
+ rake
17
+ rdoc
18
+ json (1.7.3)
19
+ multi_json (1.3.5)
20
+ rack (1.4.1)
21
+ rake (0.9.2.2)
22
+ rdoc (3.12)
23
+ json (~> 1.4)
24
+ shoulda (3.0.1)
25
+ shoulda-context (~> 1.0.0)
26
+ shoulda-matchers (~> 1.0.0)
27
+ shoulda-context (1.0.0)
28
+ shoulda-matchers (1.0.0)
29
+
30
+ PLATFORMS
31
+ ruby
32
+
33
+ DEPENDENCIES
34
+ activemodel (~> 3.0)
35
+ bundler
36
+ jeweler (~> 1.8.3)
37
+ rack
38
+ rake
39
+ rdoc (~> 3.12)
40
+ shoulda
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2012 Thiago Jackiw
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,280 @@
1
+ # Obscenity [![Build Status](http://travis-ci.org/tjackiw/obscenity.png)](http://travis-ci.org/tjackiw/obscenity)
2
+
3
+ Obscenity is a profanity filter gem for Ruby/Rubinius, Rails (through ActiveModel), and Rack middleware.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'obscenity'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ ```ruby
16
+ bundle install
17
+ ```
18
+
19
+ Or install it yourself as:
20
+
21
+ ```ruby
22
+ gem install obscenity
23
+ ```
24
+
25
+ ## Compatibility
26
+
27
+ Obscenity is compatible with Ruby 1.9.X, Rubinius 1.9, Rails 3.X, and Rack as a middleware. Starting with Rails 3, the profanity validation works with any ORM supported by ActiveModel, e.g: ActiveRecord, MongoMapper, Mongoid, etc.
28
+
29
+ ## Using Obscenity
30
+
31
+ The following methods are available to use with Obscenity:
32
+
33
+ ### Configuration
34
+
35
+ `Obscenity.configure(&block)` allows you to set custom global configuration options. Available options are:
36
+
37
+ `config.blacklist` accepts the following values:
38
+
39
+ - An array with words
40
+ - A string representing a path to a yml file
41
+ - A Pathname object with a path to a yml file
42
+
43
+ `config.whitelist` accepts the following values:
44
+
45
+ - An array with words
46
+ - A string representing a path to a yml file
47
+ - A Pathname object with a path to a yml file
48
+
49
+ `config.replacement` accepts the following values:
50
+
51
+ - :default : Uses the :garbled method
52
+ - :garbled : Replaces profane words with $@!#%
53
+ - :stars : Replaces profane words with '*' up to the word's length
54
+ - :vowels : Replaces the vowels in the profane word with '*'
55
+ - "custom string" : Replaces the profane word with the custom string
56
+
57
+ Example:
58
+
59
+ ```ruby
60
+ Obscenity.configure do |config|
61
+ config.blacklist = "path/to/blacklist/file.yml"
62
+ config.whitelist = ["safe", "word"]
63
+ config.replacement = :stars
64
+ end
65
+ ```
66
+
67
+ ### Basic Usage
68
+
69
+ `Obscenity.profane?(text)` analyses the content and returns `true` or `false` based on its profanity:
70
+
71
+ ```ruby
72
+ Obscenity.profane?("simple text")
73
+ => false
74
+
75
+ Obscenity.profane?("text with shit")
76
+ => true
77
+ ```
78
+
79
+ `Obscenity.sanitize(text)` sanities the content and returns a new sanitized content (if profane) or the original content (if not profane):
80
+
81
+ ```ruby
82
+ Obscenity.sanitize("simple text")
83
+ => "simple text"
84
+
85
+ Obscenity.sanitize("text with shit")
86
+ => "text with $@!#%"
87
+ ```
88
+
89
+ `Obscenity.replacement(style).sanitize(text)` allows you to pass the replacement method to be used when sanitizing the given content. Available replacement values are `:default`, `:garbled`, `:stars`, `:vowels`, and a custom string.
90
+
91
+ ```ruby
92
+ Obscenity.replacement(:default).sanitize("text with shit")
93
+ => "text with $@!#%"
94
+
95
+ Obscenity.replacement(:garbled).sanitize("text with shit")
96
+ => "text with $@!#%"
97
+
98
+ Obscenity.replacement(:stars).sanitize("text with shit")
99
+ => "text with ****"
100
+
101
+ Obscenity.replacement(:vowels).sanitize("text with shit")
102
+ => "text with sh*t"
103
+
104
+ Obscenity.replacement("[censored]").sanitize("text with shit")
105
+ => "text with [censored]"
106
+ ```
107
+
108
+ `Obscenity.offensive(text)` returns an array of profane words in the given content:
109
+
110
+ ```ruby
111
+ Obscenity.offensive("simple text")
112
+ => []
113
+
114
+ Obscenity.offensive("text with shit and another biatch")
115
+ => ["shit", "biatch"]
116
+ ```
117
+
118
+ ### ActiveModel
119
+
120
+ The ActiveModel component provides easy profanity validation for your models.
121
+
122
+ First, you need to explicitly require the ActiveModel component:
123
+
124
+ ```ruby
125
+ require 'obscenity/active_model'
126
+ ```
127
+
128
+ Then you can use it in your models as such:
129
+
130
+ ```ruby
131
+ # ActiveRecord example
132
+ class Post < ActiveRecord::Base
133
+
134
+ validates :title, obscenity: true
135
+ validates :body, obscenity: { sanitize: true, replacement: "[censored]" }
136
+ end
137
+
138
+ # MongoMapper example
139
+ class Book
140
+ include MongoMapper::Document
141
+
142
+ key :title, String
143
+ key :body, String
144
+
145
+ validates :title, obscenity: true
146
+ validates :body, obscenity: { sanitize: true, replacement: :vowels }
147
+ end
148
+
149
+ # Mongoid example
150
+ class Page
151
+ include Mongoid::Document
152
+
153
+ field :title, type: String
154
+ field :body, type: String
155
+
156
+ validates :title, obscenity: true
157
+ validates :body, obscenity: { sanitize: true, replacement: :garbled }
158
+ end
159
+ ```
160
+
161
+ The following usage is available:
162
+
163
+ `obscenity: true` : Does a profanity validation in the field using `.profane?` and returns `true/false`. If true, ActiveModel's Validation will return a default error message.
164
+
165
+ `obscenity: { message: 'Custom message' }` : Does a profanity validation in the field using `.profane?` and returns `true/false`. If true, ActiveModel's Validation will return your custom error message.
166
+
167
+ `obscenity: { sanitize: true }` : Silently sanitizes the field and replaces its content with the sanitized version. If the `:replacement` key is included, it will use that style when replacing the content.
168
+
169
+ ### Rack middleware
170
+
171
+ You can use Obscenity as a Rack middleware to automatically reject requests that include profane parameter values or sanitize those values before they reach your Application.
172
+
173
+ First you need to explicitly require the Rack middleware:
174
+
175
+ ```ruby
176
+ require 'obscenity/rack'
177
+ ```
178
+
179
+ And to use the middleware, the basic syntax is:
180
+
181
+ ```ruby
182
+ use Rack::Obscenity, {} # options Hash
183
+ ```
184
+
185
+ You need to use the options below inside the options Hash (above)
186
+
187
+ #### Rejecting Requests:
188
+
189
+ Any of the following options can be used to reject a request.
190
+
191
+ `reject: true` : will reject a request if any parameter value contains profanity.
192
+
193
+ ```ruby
194
+ use Rack::Obscenity, reject: true
195
+ ```
196
+
197
+ `reject: { params: [] }` : will analyze the selected parameters and reject the request if their values contain profanity.
198
+
199
+ ```ruby
200
+ use Rack::Obscenity, reject: { params: [:foo, :bar] }
201
+ ```
202
+
203
+ `reject: { message: 'Custom message' }` : will reject a request and display the custom message if any parameter value contains profanity
204
+
205
+ ```ruby
206
+ use Rack::Obscenity, reject: { message: "We don't allow profanity!" }
207
+ ```
208
+
209
+ `reject: { path: 'path/to/file' }` : will reject a request and render the custom file if any parameter value contains profanity
210
+
211
+ ```ruby
212
+ use Rack::Obscenity, reject: { path: 'public/no_profanity.html' }
213
+ ```
214
+
215
+ More usage example:
216
+
217
+ ```ruby
218
+ # Rejects the request for all params and renders a file
219
+ use Rack::Obscenity, reject: { params: :all, path: 'public/no_profanity.html' }
220
+
221
+ # Rejects the request based on the selected params and renders a file
222
+ use Rack::Obscenity, reject: { params: [:foo, :bar], path: 'public/no_profanity.html' }
223
+
224
+ # Rejects the request based on the selected params and displays a message
225
+ use Rack::Obscenity, reject: { params: [:foo, :bar], message: "Profanity is not allowed!" }
226
+ ```
227
+
228
+ #### Sanitizing Requests:
229
+
230
+ Any of the following options can be used to sanitize a request.
231
+
232
+ `sanitize: true` : will sanitize all parameter values if they contain profanity.
233
+
234
+ ```ruby
235
+ use Rack::Obscenity, sanitize: true
236
+ ```
237
+
238
+ `sanitize: { params: [] }` : will analyze the selected parameters and sanitize them if their values contain profanity.
239
+
240
+ ```ruby
241
+ use Rack::Obscenity, sanitize: { params: [:foo, :bar] }
242
+ ```
243
+
244
+ `sanitize: { replacement: (:default | :garbled | :stars | :vowels | 'custom') }` : will use this replacement method when sanitizing parameter values
245
+
246
+ ```ruby
247
+ use Rack::Obscenity, sanitize: { replacement: :vowels }
248
+ ```
249
+
250
+ More usage example:
251
+
252
+ ```ruby
253
+ # Sanitizes all params and replaces their values using :stars
254
+ use Rack::Obscenity, sanitize: { params: :all, replacement: :stars }
255
+
256
+ # Sanitizes the given params and replaces their values using a custom word
257
+ use Rack::Obscenity, sanitize: { params: [:foo, :bar], replacement: "[censored]" }
258
+
259
+ # Sanitizes all params and replaces their values using :garbled
260
+ use Rack::Obscenity, sanitize: { replacement: :garbled }
261
+ ```
262
+
263
+ ## Contributing to obscenity
264
+
265
+ * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
266
+ * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
267
+ * Fork the project.
268
+ * Start a feature/bugfix branch.
269
+ * Commit and push until you are happy with your contribution.
270
+ * Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
271
+ * Please try not to mess with the Rakefile, version, or history.
272
+
273
+ ## Authors
274
+
275
+ * Thiago Jackiw: [@tjackiw](http://twitter.com/tjackiw)
276
+
277
+ ## Copyright
278
+
279
+ Copyright (c) 2012 Thiago Jackiw. See LICENSE.txt for further details.
280
+
@@ -0,0 +1,52 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+ require 'bundler'
5
+ begin
6
+ Bundler.setup(:default, :development)
7
+ rescue Bundler::BundlerError => e
8
+ $stderr.puts e.message
9
+ $stderr.puts "Run `bundle install` to install missing gems"
10
+ exit e.status_code
11
+ end
12
+
13
+ require 'rake'
14
+ require 'jeweler'
15
+
16
+ $:.push File.expand_path("../lib", __FILE__)
17
+ require "obscenity/version"
18
+
19
+ Jeweler::Tasks.new do |gem|
20
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
21
+ gem.name = "obscenity"
22
+ gem.version = Obscenity::VERSION
23
+ gem.authors = ["Thiago Jackiw"]
24
+ gem.email = "tjackiw@gmail.com"
25
+ gem.homepage = "http://github.com/tjackiw/obscenity"
26
+ gem.license = "MIT"
27
+ gem.summary = %Q{ Obscenity is a profanity filter gem for Ruby/Rubinius, Rails (through ActiveModel), and Rack middleware }
28
+ gem.description = %Q{ Obscenity is a profanity filter gem for Ruby/Rubinius, Rails (through ActiveModel), and Rack middleware }
29
+ gem.files = `git ls-files`.split("\n")
30
+ gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
31
+ gem.require_paths = ["lib"]
32
+ end
33
+ Jeweler::RubygemsDotOrgTasks.new
34
+
35
+ require 'rake/testtask'
36
+ Rake::TestTask.new(:test) do |test|
37
+ test.libs << 'lib' << 'test'
38
+ test.pattern = 'test/**/test_*.rb'
39
+ test.verbose = true
40
+ end
41
+
42
+ task :default => :test
43
+
44
+ require 'rdoc/task'
45
+ Rake::RDocTask.new do |rdoc|
46
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
47
+
48
+ rdoc.rdoc_dir = 'rdoc'
49
+ rdoc.title = "obscenity #{version}"
50
+ rdoc.rdoc_files.include('README*')
51
+ rdoc.rdoc_files.include('lib/**/*.rb')
52
+ end
@@ -0,0 +1,566 @@
1
+ ---
2
+ - aclit
3
+ - adick
4
+ - aids
5
+ - alabama porch monkey
6
+ - anal intruder
7
+ - anal invader
8
+ - analicker
9
+ - anus
10
+ - "4r5e"
11
+ - "5h1t"
12
+ - "5hit"
13
+ - a55
14
+ - anal
15
+ - ar5e
16
+ - arrse
17
+ - arse
18
+ - ass
19
+ - as$
20
+ - ass bandit
21
+ - ass clown
22
+ - ass face
23
+ - ass fucker
24
+ - ass hole
25
+ - ass load
26
+ - ass much
27
+ - ass out
28
+ - ass packer
29
+ - ass reamer
30
+ - ass whacker
31
+ - ass wipe
32
+ - assbandit
33
+ - assclown
34
+ - asscrack
35
+ - assed out
36
+ - assface
37
+ - assfucker
38
+ - asshole
39
+ - asslicker
40
+ - assload
41
+ - assmunch
42
+ - assout
43
+ - asspacker
44
+ - assreamer
45
+ - asswhacker
46
+ - asswipe
47
+ - baby batter
48
+ - babybatter
49
+ - ball breaker
50
+ - ball buster
51
+ - baller
52
+ - balling
53
+ - bat shit
54
+ - batshit
55
+ - bearded clam
56
+ - bearded taco
57
+ - beardedclam
58
+ - beardedtaco
59
+ - beaver
60
+ - beavershot
61
+ - beeatch
62
+ - beener
63
+ - biatch
64
+ - big baller
65
+ - bigballer
66
+ - bimbo
67
+ - bitch
68
+ - bite me
69
+ - biteme
70
+ - blewinski
71
+ - blood fart
72
+ - bloodfart
73
+ - blow job
74
+ - blow me
75
+ - blow my pole
76
+ - blowjob
77
+ - blowme
78
+ - blue ball
79
+ - blue balls
80
+ - blueball
81
+ - blueballs
82
+ - boner
83
+ - bull dike
84
+ - bull shit
85
+ - bulldike
86
+ - bullshit
87
+ - bung hole
88
+ - bunghole
89
+ - butt bandit
90
+ - butt banger
91
+ - butt buddy
92
+ - butt crust
93
+ - butt nugger
94
+ - butt pirate
95
+ - butt plug
96
+ - buttbandit
97
+ - buttbanger
98
+ - buttcrack
99
+ - buttfuck
100
+ - buttfucker
101
+ - butthump
102
+ - buttnugger
103
+ - buttpirate
104
+ - buttplug
105
+ - buttporn
106
+ - c0ck
107
+ - camel jockey
108
+ - camel toe
109
+ - cameltoe
110
+ - carpet eater
111
+ - carpeteater
112
+ - cherry popper
113
+ - cherrypopper
114
+ - chinc
115
+ - chink
116
+ - choad
117
+ - chode
118
+ - choke my chicken
119
+ - choking the chicken
120
+ - cocaine
121
+ - cock jockey
122
+ - cock knocker
123
+ - cock lord
124
+ - cock ring
125
+ - cock smoker
126
+ - cock sucker
127
+ - cock tease
128
+ - cockass
129
+ - cockblocker
130
+ - cockjockey
131
+ - cocklord
132
+ - cocknocker
133
+ - cockring
134
+ - cocksmoker
135
+ - cocksucker
136
+ - cocktease
137
+ - condom
138
+ - coochie
139
+ - coon
140
+ - cootch
141
+ - cooze
142
+ - corn hole
143
+ - cornhole
144
+ - crack ho
145
+ - crack spackler
146
+ - crackbitch
147
+ - cracker
148
+ - crackspacker
149
+ - crackspackler
150
+ - crakker
151
+ - crap
152
+ - crap face
153
+ - crap head
154
+ - crapface
155
+ - craphead
156
+ - crapper
157
+ - cum
158
+ - cum belch
159
+ - cum belcher
160
+ - cum bubble
161
+ - cum dumpster
162
+ - cum guzzle
163
+ - cum guzzler
164
+ - cum lapper
165
+ - cum licker
166
+ - cum stain
167
+ - cum sucker
168
+ - cumbelch
169
+ - cumbelcher
170
+ - cumbeltch
171
+ - cumbeltcher
172
+ - cumbubble
173
+ - cumdumpster
174
+ - cumguzzle
175
+ - cumguzzler
176
+ - cumlapper
177
+ - cumlicker
178
+ - cumm
179
+ - cumm bubble
180
+ - cumm dumpster
181
+ - cumm guzzler
182
+ - cumm stain
183
+ - cumm sucker
184
+ - cummbubble
185
+ - cummdumpster
186
+ - cummguzzler
187
+ - cummstain
188
+ - cummsucker
189
+ - cumstain
190
+ - cumsucker
191
+ - cumsuker
192
+ - cumwad
193
+ - cunt
194
+ - cunt hair
195
+ - cunt whisker
196
+ - cunthair
197
+ - cuntwhisker
198
+ - cuntwisker
199
+ - cuze
200
+ - d i c k
201
+ - daisy chain
202
+ - daisy gang
203
+ - dangelberry
204
+ - dangleberry
205
+ - deez nuts
206
+ - devil
207
+ - dick breath
208
+ - dick fiend
209
+ - dick head
210
+ - dick nose
211
+ - dick wad
212
+ - dick weed
213
+ - dickbreath
214
+ - dickface
215
+ - dickfiend
216
+ - dickhead
217
+ - dicknose
218
+ - dickwad
219
+ - dickweed
220
+ - dik breath
221
+ - dik fiend
222
+ - dik head
223
+ - dikbreath
224
+ - dike
225
+ - dikfiend
226
+ - dikhead
227
+ - dildo
228
+ - dingelberry
229
+ - dingleberry
230
+ - dipstick
231
+ - douche
232
+ - douche bag
233
+ - drain the lizard
234
+ - drugs
235
+ - dune coon
236
+ - dunecoon
237
+ - earning red wings
238
+ - eat me
239
+ - eat my shorts
240
+ - eatme
241
+ - ecstacy
242
+ - eggplant
243
+ - ejaculate
244
+ - fagg
245
+ - faggot
246
+ - faghump
247
+ - fagmunch
248
+ - felch
249
+ - felcher
250
+ - feltch
251
+ - feltcher
252
+ - finger bang
253
+ - finger banged
254
+ - finger banger
255
+ - finger fuck
256
+ - fingerbang
257
+ - fingerbanged
258
+ - fingerbanger
259
+ - fingerfuck
260
+ - flamer
261
+ - flip
262
+ - flogging the bishop
263
+ - fore skin
264
+ - foreskin
265
+ - fuck
266
+ - fuck face
267
+ - fucked
268
+ - fucker
269
+ - fuckers
270
+ - fuckface
271
+ - fucking
272
+ - fucknut
273
+ - fucknuts
274
+ - fucks
275
+ - fuckshit
276
+ - fuckstick
277
+ - fudge packer
278
+ - fudgepacker
279
+ - fuk
280
+ - fuk you
281
+ - fuker
282
+ - fukkhead
283
+ - fur burger
284
+ - furbuger
285
+ - furry burger
286
+ - fury burger
287
+ - fvck
288
+ - fvck you
289
+ - fvcker
290
+ - fvckface
291
+ - fvcking
292
+ - fvcknut
293
+ - fvcknuts
294
+ - gang bang
295
+ - gangbang
296
+ - genocide
297
+ - gniga
298
+ - gook
299
+ - hairy hatchet wound
300
+ - hairy taco
301
+ - hairyhatchetwound
302
+ - hairytaco
303
+ - half breed
304
+ - halfbreed
305
+ - hardon
306
+ - hell
307
+ - hermaphrodite
308
+ - herpes
309
+ - ho
310
+ - hoes
311
+ - hommo
312
+ - homo
313
+ - honkey
314
+ - honky
315
+ - hoochie mama
316
+ - hooker
317
+ - horse shit
318
+ - horseshit
319
+ - hot beef injection
320
+ - incest
321
+ - jacking off
322
+ - jap
323
+ - jerking off
324
+ - jiz
325
+ - jiz muffin
326
+ - jiz sandwich
327
+ - jizer
328
+ - jizm
329
+ - jizmuffin
330
+ - jizz
331
+ - jizz muffin
332
+ - jizz sandwich
333
+ - jizzer
334
+ - jizzm
335
+ - jizzmuffin
336
+ - jungle bunny
337
+ - junglebunny
338
+ - kike
339
+ - kill
340
+ - koochie
341
+ - koochy
342
+ - kootch
343
+ - kootchie
344
+ - kootchy
345
+ - kum
346
+ - kumm
347
+ - lesbo
348
+ - lettuce picker
349
+ - lettucepicker
350
+ - lezbo
351
+ - lick my nuts
352
+ - lickcock
353
+ - licknipple
354
+ - limpdick
355
+ - love canal
356
+ - lsd
357
+ - man whore
358
+ - mangina
359
+ - manwhore
360
+ - marijuana
361
+ - masturbate
362
+ - mick
363
+ - monkeydick
364
+ - monkeyhumper
365
+ - mooli
366
+ - mother fucker
367
+ - motherfucker
368
+ - mud people
369
+ - mud person
370
+ - mudpeople
371
+ - mudperson
372
+ - muff
373
+ - muff diver
374
+ - muffdiver
375
+ - muli
376
+ - murder
377
+ - nazi
378
+ - niger
379
+ - nigga
380
+ - niggah
381
+ - nigger
382
+ - nip
383
+ - nipple
384
+ - nutted
385
+ - nutter
386
+ - nutting
387
+ - one way pipe cleaner
388
+ - panocha
389
+ - pcp
390
+ - pecker
391
+ - pecker head
392
+ - pecker nose
393
+ - peckerhead
394
+ - peckernose
395
+ - pedophile
396
+ - penis breath
397
+ - penisbreath
398
+ - phelch
399
+ - phelcher
400
+ - pheltch
401
+ - pheltcher
402
+ - phlip
403
+ - pillow biter
404
+ - pillowbiter
405
+ - pimp
406
+ - pinis wrinkle
407
+ - piniswrinkle
408
+ - pipe hitter
409
+ - pipehitter
410
+ - piss
411
+ - pissdrinker
412
+ - pisslicker
413
+ - pito
414
+ - pole sitter
415
+ - pole smoker
416
+ - polesitter
417
+ - polesmoker
418
+ - polish the bishop
419
+ - polishing the torpedo
420
+ - polock
421
+ - poon tang
422
+ - poontang
423
+ - poop chute
424
+ - poop stain
425
+ - poopchute
426
+ - poopstain
427
+ - popped cherry
428
+ - poppedcherry
429
+ - prick
430
+ - psilocybin
431
+ - pu55y
432
+ - pussie
433
+ - pussy
434
+ - pussy juice
435
+ - pussy juiced
436
+ - pussy juicer
437
+ - pussy juicing
438
+ - pussy pounder
439
+ - pussy pounding
440
+ - pussy whipped
441
+ - pussy whipper
442
+ - pussy wiped
443
+ - pussyjuice
444
+ - pussyjuicer
445
+ - pussywhipped
446
+ - pussywhipper
447
+ - pussywiped
448
+ - puta
449
+ - pv55ie
450
+ - pv55y
451
+ - rag head
452
+ - raghead
453
+ - rectal
454
+ - rectum
455
+ - redneck
456
+ - retard
457
+ - retarded
458
+ - rim job
459
+ - rimjob
460
+ - rug munch
461
+ - rug munched
462
+ - rug muncher
463
+ - rugmuncher
464
+ - rump ranger
465
+ - rumpranger
466
+ - rumpshaker
467
+ - sachamo
468
+ - sambo
469
+ - sand niggah
470
+ - sand nigger
471
+ - sandniggah
472
+ - sandnigger
473
+ - satanic
474
+ - schlong
475
+ - scrubbing the carrot
476
+ - shit
477
+ - shits
478
+ - shit eater
479
+ - shit face
480
+ - shit faced
481
+ - shit head
482
+ - shit kicker
483
+ - shit pusher
484
+ - shit shover
485
+ - shiteater
486
+ - shitface
487
+ - shitfaced
488
+ - shitfucker
489
+ - shithead
490
+ - shitkicker
491
+ - shitpusher
492
+ - shitshover
493
+ - skank
494
+ - skin flute
495
+ - skullfuck
496
+ - skullfucked
497
+ - skullfucker
498
+ - skullfucks
499
+ - slap the salami
500
+ - slaping the sausage
501
+ - slit licker
502
+ - slitlicker
503
+ - slope
504
+ - slut
505
+ - slut bag
506
+ - slutbag
507
+ - smegma
508
+ - snog
509
+ - sodomise
510
+ - sodomised
511
+ - sodomiser
512
+ - sodomite
513
+ - sodomize
514
+ - sodomized
515
+ - sodomizer
516
+ - sodomy
517
+ - spank the monkey
518
+ - sphincter boy
519
+ - sphincter face
520
+ - sphincterboy
521
+ - sphincterface
522
+ - spic
523
+ - spick
524
+ - spik
525
+ - spunk monkey
526
+ - suicide
527
+ - taint
528
+ - tar baby
529
+ - tarbaby
530
+ - tard
531
+ - testes
532
+ - testicles
533
+ - testicular
534
+ - tip polisher
535
+ - tit
536
+ - tit fuck
537
+ - tit fucker
538
+ - titfuck
539
+ - titfucker
540
+ - tits
541
+ - titty
542
+ - titty twisted
543
+ - titty twister
544
+ - titty twisters
545
+ - titty twisting
546
+ - tity
547
+ - towel head
548
+ - towelhead
549
+ - trailer trash
550
+ - trailertrash
551
+ - transsexual
552
+ - transvestite
553
+ - twat
554
+ - uncle tom
555
+ - uplay wid dix
556
+ - vag
557
+ - vagina licker
558
+ - welfare rat
559
+ - wet back
560
+ - wetback
561
+ - whacking off
562
+ - white trash
563
+ - whore
564
+ - wop
565
+ - wrapping the weasel
566
+ - yclit