509 lines
32 KiB
Swift
509 lines
32 KiB
Swift
//
|
||
// 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")
|
||
]
|
||
}
|
||
|