Files
interject/interject/Interject!/Model/Words.swift
T
2026-07-11 10:17:49 -05:00

509 lines
32 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
//
// File.swift
// Interject!
//
// Created by Rory Hinnen on 12/2/18.
// Copyright © 2018 Rory Hinnen. All rights reserved.
//
import Foundation
import SwiftUI
// MARK: enum
enum Place {
case first, second, noun
func size() -> CGFloat {
switch self {
case .first:
return 35.0
case .second:
return 55.0
case .noun:
return 75.0
}
}
}
struct Locked {
var adjective1: Bool = false
var adjective2: Bool = false
var noun: Bool = false
mutating func toggle(_ place: Place) {
switch(place) {
case .first:
self.adjective1.toggle()
case .second:
self.adjective2.toggle()
case .noun:
self.noun.toggle()
}
}
func isLocked(_ which: Place) -> Bool {
switch(which) {
case .first:
return self.adjective1
case .second:
return self.adjective2
case .noun:
return self.noun
}
}
}
/* func newSentence(current: Sentence) -> Sentence {
// find adjective one, which could be from the pool of first words or adjectives.
// remove the current words from the list of possible words
// pick from the list for just one word.
let firstList = Sentence.first + Sentence.adjectives
let adj1List = firstList.filter({$0.word(true) != current.adjective1.word(true)}).filter({$0.word(true) != current.adjective2.word(true)})
let firstAdj = adj1List[Int.random(in: 0...adj1List.count-1)]
// find adjective two, only from the pool of adjectives
// remove current words and adjective one from the pool
// pick from the list for just one word
let adj2List = Sentence.adjectives.filter({$0.word(true) != current.adjective1.word(true)}).filter({$0.word(true) != current.adjective2.word(true)}).filter({$0.word(true) != firstAdj.word(true)})
let adjective2 = adj2List[Int.random(in: 0...adj2List.count-1)]
// find the noun, only from the pool of nouns
// remove the current word from the pool
// select the new noun.
let nounList = Sentence.nouns.filter({$0.word(true) != current.noun.word(true)})
let noun = nounList[Int.random(in: 0...nounList.count-1)]
// make a new sentence
return(Sentence(adjective1: firstAdj, adjective2: adjective2, noun: noun))
} */
class Settings: ObservableObject {
@Published var phrases: [Sentence]
@Published var sfw: Bool
@Published var locked: Locked
@Published var font: Fonts
@Published var colorScheme: Appearance
init(phrases: [Sentence], sfw: Bool, locked: Locked, font: Fonts, colorScheme: Appearance) {
self.phrases = phrases
self.sfw = sfw
self.locked = locked
self.font = font
self.colorScheme = colorScheme
}
func add() {
let maxPhrase = 100
let newPhrase = new(current: self.phrases.first!)
if self.locked.adjective1 { newPhrase.adjective1 = self.phrases.first!.adjective1 }
if self.locked.adjective2 { newPhrase.adjective2 = self.phrases.first!.adjective2}
if self.locked.noun { newPhrase.noun = self.phrases.first!.noun }
self.phrases.insert(newPhrase, at: 0)
if self.phrases.count > maxPhrase {
self.phrases.remove(at: self.phrases.count-1)
}
save()
}
func remove() {
if self.phrases.count > 1 {
if self.locked.adjective1 {self.phrases[1].adjective1 = self.phrases[0].adjective1}
if self.locked.adjective2 {self.phrases[1].adjective2 = self.phrases[0].adjective2}
if self.locked.noun {self.phrases[1].noun = self.phrases[0].noun}
self.phrases.remove(at: 0)
}
save()
}
func new(current: Sentence) -> Sentence {
// find adjective one, which could be from the pool of first words or adjectives.
// remove the current words from the list of possible words
// pick from the list for just one word.
let firstList = Sentence.first + Sentence.adjectives
let adj1List = firstList.filter({$0.word(true)
!= current.adjective1.word(true)}).filter({$0.word(true)
!= current.adjective2.word(true)})
let firstAdj = adj1List[Int.random(in: 0...adj1List.count-1)]
// find adjective two, only from the pool of adjectives
// remove current words and adjective one from the pool
// pick from the list for just one word
let adj2List = Sentence.adjectives.filter({$0.word(true)
!= current.adjective1.word(true)}).filter({$0.word(true)
!= current.adjective2.word(true)}).filter({$0.word(true)
!= firstAdj.word(true)})
let adjective2 = adj2List[Int.random(in: 0...adj2List.count-1)]
// find the noun, only from the pool of nouns
// remove the current word from the pool
// select the new noun.
let nounList = Sentence.nouns.filter({$0.word(true)
!= current.noun.word(true)})
let noun = nounList[Int.random(in: 0...nounList.count-1)]
// make a new sentence
return(Sentence(adjective1: firstAdj, adjective2: adjective2, noun: noun))
}
}
// MARK: Entry
struct Entry: Codable {
// The structure of the words themself.
// a word could be sfw or nsfw,
// and meanings may also be sfw or nsfw
// The words are private, and if you query Entry, you will need to
// provide a bool. The return will be the appropriate word or meaning.
fileprivate var nsfw, nsfwMeaning: String?
fileprivate var word, meaning: String
init(nsfw: String?, nsfwMeaning: String?, word: String, meaning: String) {
self.nsfw = nsfw
self.nsfwMeaning = nsfwMeaning
self.word = word
self.meaning = meaning
}
init() {
self.nsfw = nil
self.nsfwMeaning = nil
self.word = ""
self.meaning = ""
}
func word(_ isSfw: Bool) -> String {
return isSfw ? word : nsfw ?? word
}
func definition(_ isSfw: Bool) -> String {
return isSfw ? meaning : nsfwMeaning ?? meaning
}
}
// MARK: Sentence
class Sentence: NSObject, Codable {
// The sentence. This is our primary structure.
// perhaps I should include Entry as part of this, rather than
// a selfcontained structure, but there are times when I want to
// hand around just an entry without the extra words
// (like when I'm handing off to meaning)
// There are two initializers.
fileprivate var adjective1: Entry
fileprivate var adjective2: Entry
fileprivate var noun: Entry
// This initializer will take three Entry vars and assign them into a sentence
init(adjective1: Entry, adjective2: Entry, noun: Entry) {
self.adjective1 = adjective1
self.adjective2 = adjective2
self.noun = noun
}
// This initializer will make an empty sentence
override init() {
adjective1 = Entry()
adjective2 = Entry()
noun = Entry()
}
func new(current: Sentence) -> Sentence {
// find adjective one, which could be from the pool of first words or adjectives.
// remove the current words from the list of possible words
// pick from the list for just one word.
let firstList = Sentence.first + Sentence.adjectives
let adj1List = firstList.filter({$0.word(true)
!= current.adjective1.word(true)}).filter({$0.word(true)
!= current.adjective2.word(true)})
let firstAdj = adj1List[Int.random(in: 0...adj1List.count-1)]
// find adjective two, only from the pool of adjectives
// remove current words and adjective one from the pool
// pick from the list for just one word
let adj2List = Sentence.adjectives.filter({$0.word(true)
!= current.adjective1.word(true)}).filter({$0.word(true)
!= current.adjective2.word(true)}).filter({$0.word(true)
!= firstAdj.word(true)})
let adjective2 = adj2List[Int.random(in: 0...adj2List.count-1)]
// find the noun, only from the pool of nouns
// remove the current word from the pool
// select the new noun.
let nounList = Sentence.nouns.filter({$0.word(true)
!= current.noun.word(true)})
let noun = nounList[Int.random(in: 0...nounList.count-1)]
// make a new sentence
return(Sentence(adjective1: firstAdj, adjective2: adjective2, noun: noun))
}
func word(_ place: Place, safe: Bool) -> String {
switch place {
case .first:
return adjective1.word(safe)
case .second:
return adjective2.word(safe)
case .noun:
return noun.word(safe)
}
}
func definition(_ place: Place, safe: Bool) -> String {
switch place {
case .first:
return adjective1.definition(safe)
case .second:
return adjective2.definition(safe)
case .noun:
return noun.definition(safe)
}
}
}
extension Sentence {
// MARK: Create the pool of words
// first are words that will only be in adjective one. There should be a better
// algorithm for sorting these, that will come soon.
// adjectives are words that can be in adjective one or two.
// nouns are words that can only be a noun
static var first = [
Entry(nsfw: nil, nsfwMeaning: nil, word: "absolute", meaning: "The most extreme example"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "complete", meaning: "The most extreme example"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "utter", meaning: "The most extreme example")
]
static var adjectives = [
Entry(nsfw: nil, nsfwMeaning: nil, word: "artless", meaning: "Without craft or intelligence"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "base-court", meaning: "From the lower English court, common"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "bat-fowling", meaning: "An archaic method of bird hunting, like fishing from a barrel"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "bawdy", meaning: "Humorously indecent"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "bawheeded", meaning: "A person who speaks nonsense"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "beef-witted", meaning: "Brainless, a meat head"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "beetle-headed", meaning: "Witless"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "beslubbering", meaning: "Drooling"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "bloomin’", meaning: "For emphasis"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "boil-brained", meaning: "Filled with thoughts of pestilence and misery"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "bootless", meaning: "Common, or poor"),
Entry(nsfw: "pussy grabbing", nsfwMeaning: "A conman", word: "cat grabbing", meaning: "A man who respects women, and is always concerned for their well being"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "churlish", meaning: "Intentionally rude"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "clapper-clawed", meaning: "Brutish, all hands"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "clarted", meaning: "Mud covered"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "clatty", meaning: "Dirty, slovely, cluttered"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "clay-brained", meaning: "Rock head"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "clouted", meaning: "Senseless, reeling from being beat"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "cockered", meaning: "Spoiled"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "common-kissing", meaning: "Rogue, a rascal, grabs others without permission"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "craven", meaning: "Cowardly"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "crook-pated", meaning: "A thug, a thief who takes by violence"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "currish", meaning: "Like a feral dog, wild and snappish"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "daft", meaning: "Silly, foolish"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "dankish", meaning: "Dark, damp, humid"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "dismal-dreaming", meaning: "A person with foul and depressing dreams or goals"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "dissembling", meaning: "A rambling liar"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "dizzy-eyed", meaning: "Easily distracted"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "doaty", meaning: "A malingerer, one who obsesses over unimportant things"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "doddering", meaning: "Someone who rambles on, complaining of witchhunts and fake news"),
Entry(nsfw: "dog fucking", nsfwMeaning: nil, word: "dog loving", meaning: "Low standards"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "doghearted", meaning: "Inhuman, cruel"),
Entry(nsfw: "knobdobbing", nsfwMeaning: nil, word: "door knobbing", meaning: "Dickish"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "dread-bolted", meaning: "Frightning, terrifying"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "droning", meaning: "One who goes on and on, monotonous, boring and obsessive"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "earth-vexing", meaning: "Causes pain to all around"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "elf-skinned", meaning: "Shrunken, tiny, a mere nothing"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "errant", meaning: "One who wanders from what is right"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "fat-kidneyed", meaning: "Gross, clumsy"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "fawning", meaning: "Obsequious"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "fen-sucked", meaning: "Rising from the marshes"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "fly-bitten", meaning: "Marked by fly bites, wild and unkempt"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "fobbing", meaning: "A con man, a cheat"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "folly-fallen", meaning: "Stooping to foolishness"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "fool-born", meaning: "A second-generation fool"),
Entry(nsfw: "fucking", nsfwMeaning: "An old germanic word", word: "freaking", meaning: "A bad word"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "frothy", meaning: "Of little substance, foolish"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "froward", meaning: "A contrary person, difficult to deal with"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "fuddy", meaning: "Stuffy and old fashioned"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "full-gorged", meaning: "Well fed"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "glaikit", meaning: "Foolish, giddy"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "glakit", meaning: "Unsightly and stupid"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "gleeking", meaning: "Spitting"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "goatish", meaning: "Goatlike in manners"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "gommy", meaning: "Idiotic, mammering"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "gorbellied", meaning: "Corpulent"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "gormless", meaning: "Stupid or dull, lacking in gorm"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "guts-griping", meaning: "Belly aching"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "hackit", meaning: "Ugly"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "half-faced", meaning: "Imperfect, incomplete, defective"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "hasty-witted", meaning: "Shallow"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "hedge-born", meaning: "Of low birth"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "hell-hated", meaning: "Even despised by the Devil"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "howlin’", meaning: "Complaining, waling"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "idle-headed", meaning: "Stupid"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "ill-bred", meaning: "Lacking class"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "ill-nurtured", meaning: "Ill bred, raised common"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "impertinent", meaning: "Not respectful, rude"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "infectious", meaning: "Likely to spread infection"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "jakey", meaning: "A drunken tramp"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "jarring", meaning: "Incongruous, ill fitting"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "knotty-pated", meaning: "Easily distracted"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "lavvy-heided", meaning: "Toilet headed"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "loggerheaded", meaning: "Block headed"),
Entry(nsfw: nil, nsfwMeaning: "Orange, and pocked", word: "loofa-faced", meaning: "Pale and pocked"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "lumpish", meaning: "Roughly or crudely formed"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "malodorous", meaning: "Bad smelling"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "mammering", meaning: "To mumble endlessly without point"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "mangled", meaning: "Disfigured"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "mewling", meaning: "Whimpering"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "milk-livered", meaning: "Gutless, cowardly"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "mingin’", meaning: "Foul smelling"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "motley minded", meaning: "Foolish"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "naffy", meaning: "Self centered fop"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "onion-eyed", meaning: "One so ugly they make your eyes water"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "paunchy", meaning: "Pot bellied"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "pencil-necked", meaning: "Skinny, useless, annoying, weak"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "plume-plucked", meaning: "Humbled"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "pottle-deep", meaning: "Drunken, one who has emptied the dregs of his drink"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "pox-marked", meaning: "Pitted skin, marked with pox"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "pribbling", meaning: "A quibbler who argues just to argue"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "puking", meaning: "Nauseating"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "puny", meaning: "Small and weak"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "qualling", meaning: "Quail like, cowardly"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "rank", meaning: "Low or vile, stinking"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "reeky", meaning: "Stinky"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "reeling-ripe", meaning: "Smelly"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "roguish", meaning: "Loutish, and not in a good way"),
Entry(nsfw: "cock-juggling", nsfwMeaning: "A promiscous person", word: "rooster juggling", meaning: "A fowl manager"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "rude-growing", meaning: "Rough and wild"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "rump-fed", meaning: "Pampered"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "ruttish", meaning: "Salacious, lascivious"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "saucy", meaning: "Lascivious, salacious"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "scabby", meaning: "Covered in scars, ugly"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "shard borne", meaning: "Born in dung"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "sheep-biting", meaning: "A person who preys on the defenseless"),
Entry(nsfw: nil, nsfwMeaning: "Refering to the size of one's third leg", word: "small-handed", meaning: "An observation regarding one's manliness"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "spleeny", meaning: "Having a lot of spleen"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "spongy", meaning: "Soft headed"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "spur-galled", meaning: "Ridden hard, put away wet, worn out"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "straw-headed", meaning: "A numpty"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "surly", meaning: "One of the dwarfs"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "swag-bellied", meaning: "Well fed, a golf course owner"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "swollen", meaning: "Distended, fat, puffy"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "tardy-gaited", meaning: "Sluggish"),
Entry(nsfw: nil, nsfwMeaning: "As reported by Stormy Daniels", word: "three-inched", meaning: "An observation regarding one's manliness"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "tickle-brained", meaning: "Flighty, unreliable, probably a drunk"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "toad-spotted", meaning: "Spotted like a toad"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "toffee-nosed", meaning: "Having a soft, brown nose"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "tottering", meaning: "Doddering"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "unchin-snouted", meaning: "A face like a hedgehog"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "unmuzzled", meaning: "Unrestrained, obnoxiously capricious"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "vacuous", meaning: "Empty headed"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "vain", meaning: "Self obsessed"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "venomed", meaning: "Poisonous"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "villianous", meaning: "Evil"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "warped", meaning: "Bent, bad"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "wayward", meaning: "Errant"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "weapons-grade", meaning: "The most extreme example of"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "weather-bitten", meaning: "Scarred by a life outside"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "weedy", meaning: "Thin"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "witless", meaning: "Uhh.."),
Entry(nsfw: nil, nsfwMeaning: nil, word: "yeasty", meaning: "Pale and soft")
]
static var nouns = [
Entry(nsfw: nil, nsfwMeaning: nil, word: "apple john", meaning: "Withered"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "arse", meaning: "That thing you sit on"),
Entry(nsfw: "cocksplat", nsfwMeaning: "The money shot", word: "babysplat" , meaning: "Everywhere. Just everywhere"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "baggage", meaning: "A person you would rather not carry"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "bampot", meaning: "An idiot"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "barnacle", meaning: "A clingy person"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "bassa", meaning: "Bastard"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "bawbag", meaning: "An annoying person, a sack"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "bladder", meaning: "A bag of urine"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "boaby", meaning: "Penis"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "boar-pig", meaning: "A pig"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "bugbear", meaning: "A hobgoblin bogeyman"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "bull’s pizzle", meaning: "Pizzle from a bull"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "bum-ailey", meaning: "A bad cop"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "canker blossom", meaning: "A common person"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "clack-dish", meaning: "A beggars bowl"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "clawbaw", meaning: "A person who keeps their hands in thier pockets"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "clotpole", meaning: "A foolish person"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "cockwomble", meaning: "A foolish or obnoxious person"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "codpiece", meaning: "A flap of cloth covering one’s cod"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "coxcomb", meaning: "A dandy, vain and conceited"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "death-token", meaning: "A sign of impending death"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "dewberry", meaning: "A species of berry"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "diddy", meaning: "A tit"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "dobber", meaning: "A tool, a member"),
Entry(nsfw: "dog-fucker", nsfwMeaning: "A classless heel", word: "dog-lover", meaning: "An individual of low standards"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "doiley", meaning: "A foolish old person"),
Entry(nsfw: "dickweed", nsfwMeaning: nil, word: "dorkweed", meaning: "Not a swearword"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "dottard", meaning: "A decript senior as identified by the Leader of North Korea"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "doughnut", meaning: "A person with a hole in their head, witless"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "eejit", meaning: "An idiot"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "fannybaws", meaning: "A twat"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "flap-dragon", meaning: "A raisin floating in a lit glass of rum"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "flax-wench", meaning: "A prostitute"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "flirt gill", meaning: "A wanton person"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "foot-licker", meaning: "A syncophant"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "fud", meaning: "Female genitalia, but more likely a person who does blindingly stupid things"),
Entry(nsfw: "fucknugget", nsfwMeaning: "The consequences of sex", word: "fudge-nugget", meaning: "Mmmm. Fudge"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "fustilarian", meaning: "A scoundrel, but not a space smuggler"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "geek", meaning: "Not athletic, a programmer"),
Entry(nsfw: "shit-gibbon", nsfwMeaning: "A monkey who flings shit", word: "gibbon", meaning: "A monkey"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "giglet", meaning: "A lascivious girl"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "gobshite", meaning: "A natterer, one who doesn’t know how to shut"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "gowk", meaning: "An awkward or foolish person"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "gudgeon", meaning: "A foolish person, gullible"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "haggard", meaning: "A worn out person"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "harpy", meaning: "Virginia Woolf"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "hedge-pig", meaning: "Hedgehog, prickly"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "horn-beast", meaning: "Easily enraged, bestial"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "hugger mugger", meaning: "A pretender"),
Entry(nsfw: "jizztrumpet", nsfwMeaning: "Someone who plays a trumpet of jizz", word: "jazztrumpet", meaning: "Not Miles Davis"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "jobby", meaning: "Feces, junk"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "joithead", meaning: "A hothead"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "lewdster", meaning: "A lecher, a lewd person"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "lickspittle", meaning: "A weak-willed flatterer"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "lout", meaning: "An uncouth, aggressive man"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "maggot-pie", meaning: "A pie of maggots"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "malt-worm", meaning: "A drunkard"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "mammet", meaning: "A scarecrow"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "measle", meaning: "A leper"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "midden", meaning: "A trash heap, a dung hill"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "minnow", meaning: "A small fish in a big pond"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "miscreant", meaning: "A wicked, sinful person"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "moldwarp", meaning: "A mud thrower, a politician"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "moron", meaning: "Intentionally ignorant"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "mumble-news", meaning: "A gossiper, a tattler"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "nimrod", meaning: "A mighty hunter. Not what you expected, is it?"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "numpty", meaning: "A stupid, useless person"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "nut-hook", meaning: "A constable, an officer"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "nyaff", meaning: "A stupid, irritating person"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "pervert", meaning: "Deviant sexual standards"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "pigeon-egg", meaning: "A small useless thing"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "pignut", meaning: "An ugly tuber"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "plamf", meaning: "An underwear sniffer"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "plum", meaning: "A person who says or does stupid things"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "pumpion", meaning: "A person who makes a fool of themselves"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "puttock", meaning: "A greedy, rapacious person"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "ratsbane", meaning: "Rat poisioner"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "roaster", meaning: "A person who makes a fool of themselves"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "rocket", meaning: "An idiot"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "scunner", meaning: "Disgusting, unlikeable"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "scut", meaning: "A foolish or contemptible person"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "skainsmate", meaning: "A shipboard companion"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "strumpet", meaning: "A promiscuous person, a prostitute"),
Entry(nsfw: "thundercunt", nsfwMeaning:"Queefing genitalia", word: "thundercat", meaning: "A cartoon from the 70's"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "tube", meaning: "The cave where you conquer the fear"),
Entry(nsfw: "shit-tobogganist", nsfwMeaning: "A person who creates chaos just because they fucking love it", word: "turd-tobogganist", meaning: "A person who likes to create discord"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "twally-washer", meaning: "Someone who cleans twallies orally"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "twit", meaning: "A annoying, stupid person. Oliver St. John-Mollusc"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "twonk", meaning: "A stupid person"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "varlot", meaning: "A punk"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "vassal", meaning: "A subordinant, servile"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "wagtail", meaning: "A syncophant"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "walloper", meaning: "A male member"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "whalluper", meaning: "A male member"),
Entry(nsfw: nil, nsfwMeaning: nil, word: "whey-face", meaning: "Pale of face, sickly")
]
}