diff --git a/interject/.Interject!.xcodeproj.icloud b/interject/.Interject!.xcodeproj.icloud new file mode 100755 index 0000000..329da9a Binary files /dev/null and b/interject/.Interject!.xcodeproj.icloud differ diff --git a/interject/.Interject--Info.plist.icloud b/interject/.Interject--Info.plist.icloud new file mode 100644 index 0000000..6462eee Binary files /dev/null and b/interject/.Interject--Info.plist.icloud differ diff --git a/interject/Interject! Watch Watch App/Assets.xcassets/AppIcon.appiconset/1024 copy.png b/interject/Interject! Watch Watch App/Assets.xcassets/AppIcon.appiconset/1024 copy.png new file mode 100644 index 0000000..8f4e0bd Binary files /dev/null and b/interject/Interject! Watch Watch App/Assets.xcassets/AppIcon.appiconset/1024 copy.png differ diff --git a/interject/Interject! Watch Watch App/Interject! Watch Watch App.entitlements b/interject/Interject! Watch Watch App/Interject! Watch Watch App.entitlements new file mode 100644 index 0000000..b592a66 --- /dev/null +++ b/interject/Interject! Watch Watch App/Interject! Watch Watch App.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.application-groups + + group.us.hinnen.Interject- + + + diff --git a/interject/Interject! Watch Watch App/WatchStore.swift b/interject/Interject! Watch Watch App/WatchStore.swift new file mode 100644 index 0000000..1e9a959 --- /dev/null +++ b/interject/Interject! Watch Watch App/WatchStore.swift @@ -0,0 +1,48 @@ +// +// WatchStore.swift +// Interject! Watch Watch App +// + +import Foundation +import Observation + +private let appGroupID = "group.us.hinnen.Interject-" + +@Observable +class WatchStore { + var phrase: Sentence + var sfw: Bool + + init() { + let local = UserDefaults.standard + sfw = local.object(forKey: "watchSFW") as? Bool ?? true + + if let data = local.data(forKey: "watchPhrase"), + let saved = try? PropertyListDecoder().decode(Sentence.self, from: data) { + phrase = saved + } else if let shared = UserDefaults(suiteName: appGroupID), + let data = shared.data(forKey: "currentPhrase"), + let seeded = try? PropertyListDecoder().decode(Sentence.self, from: data) { + phrase = seeded + } else { + let seed = Sentence() + phrase = seed.new(current: seed) + } + } + + func nextPhrase() { + phrase = phrase.new(current: phrase) + persist() + } + + func toggleSFW() { + sfw.toggle() + UserDefaults.standard.set(sfw, forKey: "watchSFW") + } + + private func persist() { + if let data = try? PropertyListEncoder().encode(phrase) { + UserDefaults.standard.set(data, forKey: "watchPhrase") + } + } +} diff --git a/interject/Interject! Watch Watch App/words.json b/interject/Interject! Watch Watch App/words.json new file mode 100644 index 0000000..789e2ed --- /dev/null +++ b/interject/Interject! Watch Watch App/words.json @@ -0,0 +1,241 @@ +{ + "first": [ + {"word": "absolute", "meaning": "The most extreme example"}, + {"word": "complete", "meaning": "The most extreme example"}, + {"word": "utter", "meaning": "The most extreme example"} + ], + "adjectives": [ + {"word": "artless", "meaning": "Without craft or intelligence"}, + {"word": "base-court", "meaning": "From the lower English court, common"}, + {"word": "bat-fowling", "meaning": "An archaic method of bird hunting, like fishing from a barrel"}, + {"word": "bawdy", "meaning": "Humorously indecent"}, + {"word": "bawheeded", "meaning": "A person who speaks nonsense"}, + {"word": "beef-witted", "meaning": "Brainless, a meat head"}, + {"word": "beetle-headed", "meaning": "Witless"}, + {"word": "beslubbering", "meaning": "Drooling"}, + {"word": "bloomin'", "meaning": "For emphasis"}, + {"word": "boil-brained", "meaning": "Filled with thoughts of pestilence and misery"}, + {"word": "bootless", "meaning": "Common, or poor"}, + {"word": "cat grabbing", "meaning": "A man who respects women, and is always concerned for their well being", "nsfw": "pussy grabbing", "nsfwMeaning": "A conman"}, + {"word": "churlish", "meaning": "Intentionally rude"}, + {"word": "clapper-clawed", "meaning": "Brutish, all hands"}, + {"word": "clarted", "meaning": "Mud covered"}, + {"word": "clatty", "meaning": "Dirty, slovely, cluttered"}, + {"word": "clay-brained", "meaning": "Rock head"}, + {"word": "clouted", "meaning": "Senseless, reeling from being beat"}, + {"word": "cockered", "meaning": "Spoiled"}, + {"word": "couch-loving", "meaning": "The amourous intention of a rural poet", "nsfw": "couch-fucking", "nsfwMeaning": "The sexual target of a rural poet"}, + {"word": "common-kissing", "meaning": "Rogue, a rascal, grabs others without permission"}, + {"word": "craven", "meaning": "Cowardly"}, + {"word": "crook-pated", "meaning": "A thug, a thief who takes by violence"}, + {"word": "currish", "meaning": "Like a feral dog, wild and snappish"}, + {"word": "daft", "meaning": "Silly, foolish"}, + {"word": "dankish", "meaning": "Dark, damp, humid"}, + {"word": "dismal-dreaming", "meaning": "A person with foul and depressing dreams or goals"}, + {"word": "dissembling", "meaning": "A rambling liar"}, + {"word": "dizzy-eyed", "meaning": "Easily distracted"}, + {"word": "doaty", "meaning": "A malingerer, one who obsesses over unimportant things"}, + {"word": "doddering", "meaning": "Someone who rambles on, complaining of witchhunts and fake news"}, + {"word": "dog loving", "meaning": "Low standards", "nsfw": "dog fucking"}, + {"word": "doghearted", "meaning": "Inhuman, cruel"}, + {"word": "door knobbing", "meaning": "Dickish", "nsfw": "knobdobbing"}, + {"word": "dread-bolted", "meaning": "Frightning, terrifying"}, + {"word": "droning", "meaning": "One who goes on and on, monotonous, boring and obsessive"}, + {"word": "earth-vexing", "meaning": "Causes pain to all around"}, + {"word": "elf-skinned", "meaning": "Shrunken, tiny, a mere nothing"}, + {"word": "errant", "meaning": "One who wanders from what is right"}, + {"word": "fat-kidneyed", "meaning": "Gross, clumsy"}, + {"word": "fawning", "meaning": "Obsequious"}, + {"word": "fen-sucked", "meaning": "Rising from the marshes"}, + {"word": "fly-bitten", "meaning": "Marked by fly bites, wild and unkempt"}, + {"word": "fobbing", "meaning": "A con man, a cheat"}, + {"word": "folly-fallen", "meaning": "Stooping to foolishness"}, + {"word": "fool-born", "meaning": "A second-generation fool"}, + {"word": "freaking", "meaning": "A bad word", "nsfw": "fucking", "nsfwMeaning": "An old germanic word"}, + {"word": "frothy", "meaning": "Of little substance, foolish"}, + {"word": "froward", "meaning": "A contrary person, difficult to deal with"}, + {"word": "fuddy", "meaning": "Stuffy and old fashioned"}, + {"word": "full-gorged", "meaning": "Well fed"}, + {"word": "glaikit", "meaning": "Foolish, giddy"}, + {"word": "glakit", "meaning": "Unsightly and stupid"}, + {"word": "gleeking", "meaning": "Spitting"}, + {"word": "goatish", "meaning": "Goatlike in manners"}, + {"word": "gommy", "meaning": "Idiotic, mammering"}, + {"word": "gorbellied", "meaning": "Corpulent"}, + {"word": "gormless", "meaning": "Stupid or dull, lacking in gorm"}, + {"word": "guts-griping", "meaning": "Belly aching"}, + {"word": "hackit", "meaning": "Ugly"}, + {"word": "half-faced", "meaning": "Imperfect, incomplete, defective"}, + {"word": "hasty-witted", "meaning": "Shallow"}, + {"word": "hedge-born", "meaning": "Of low birth"}, + {"word": "hell-hated", "meaning": "Even despised by the Devil"}, + {"word": "howlin'", "meaning": "Complaining, waling"}, + {"word": "idle-headed", "meaning": "Stupid"}, + {"word": "ill-bred", "meaning": "Lacking class"}, + {"word": "ill-nurtured", "meaning": "Ill bred, raised common"}, + {"word": "impertinent", "meaning": "Not respectful, rude"}, + {"word": "infectious", "meaning": "Likely to spread infection"}, + {"word": "jakey", "meaning": "A drunken tramp"}, + {"word": "jarring", "meaning": "Incongruous, ill fitting"}, + {"word": "knotty-pated", "meaning": "Easily distracted"}, + {"word": "lavvy-heided", "meaning": "Toilet headed"}, + {"word": "loggerheaded", "meaning": "Block headed"}, + {"word": "loofa-faced", "meaning": "Pale and pocked", "nsfwMeaning": "Orange, and pocked"}, + {"word": "lumpish", "meaning": "Roughly or crudely formed"}, + {"word": "malodorous", "meaning": "Bad smelling"}, + {"word": "mammering", "meaning": "To mumble endlessly without point"}, + {"word": "mangled", "meaning": "Disfigured"}, + {"word": "mewling", "meaning": "Whimpering"}, + {"word": "milk-livered", "meaning": "Gutless, cowardly"}, + {"word": "mingin'", "meaning": "Foul smelling"}, + {"word": "motley minded", "meaning": "Foolish"}, + {"word": "naffy", "meaning": "Self centered fop"}, + {"word": "onion-eyed", "meaning": "One so ugly they make your eyes water"}, + {"word": "paunchy", "meaning": "Pot bellied"}, + {"word": "pencil-necked", "meaning": "Skinny, useless, annoying, weak"}, + {"word": "plume-plucked", "meaning": "Humbled"}, + {"word": "pottle-deep", "meaning": "Drunken, one who has emptied the dregs of his drink"}, + {"word": "pox-marked", "meaning": "Pitted skin, marked with pox"}, + {"word": "pribbling", "meaning": "A quibbler who argues just to argue"}, + {"word": "puking", "meaning": "Nauseating"}, + {"word": "puny", "meaning": "Small and weak"}, + {"word": "qualling", "meaning": "Quail like, cowardly"}, + {"word": "rank", "meaning": "Low or vile, stinking"}, + {"word": "reeky", "meaning": "Stinky"}, + {"word": "reeling-ripe", "meaning": "Smelly"}, + {"word": "roguish", "meaning": "Loutish, and not in a good way"}, + {"word": "rooster juggling", "meaning": "A fowl manager", "nsfw": "cock-juggling", "nsfwMeaning": "A promiscous person"}, + {"word": "rude-growing", "meaning": "Rough and wild"}, + {"word": "rump-fed", "meaning": "Pampered"}, + {"word": "ruttish", "meaning": "Salacious, lascivious"}, + {"word": "saucy", "meaning": "Lascivious, salacious"}, + {"word": "scabby", "meaning": "Covered in scars, ugly"}, + {"word": "shard borne", "meaning": "Born in dung"}, + {"word": "sheep-biting", "meaning": "A person who preys on the defenseless"}, + {"word": "small-handed", "meaning": "An observation regarding one's manliness", "nsfwMeaning": "Refering to the size of one's third leg"}, + {"word": "spleeny", "meaning": "Having a lot of spleen"}, + {"word": "spongy", "meaning": "Soft headed"}, + {"word": "spur-galled", "meaning": "Ridden hard, put away wet, worn out"}, + {"word": "straw-headed", "meaning": "A numpty"}, + {"word": "surly", "meaning": "One of the dwarfs"}, + {"word": "swag-bellied", "meaning": "Well fed, a golf course owner"}, + {"word": "swollen", "meaning": "Distended, fat, puffy"}, + {"word": "tardy-gaited", "meaning": "Sluggish"}, + {"word": "three-inched", "meaning": "An observation regarding one's manliness", "nsfwMeaning": "As reported by Stormy Daniels"}, + {"word": "tickle-brained", "meaning": "Flighty, unreliable, probably a drunk"}, + {"word": "toad-spotted", "meaning": "Spotted like a toad"}, + {"word": "toffee-nosed", "meaning": "Having a soft, brown nose"}, + {"word": "tottering", "meaning": "Doddering"}, + {"word": "unchin-snouted", "meaning": "A face like a hedgehog"}, + {"word": "unmuzzled", "meaning": "Unrestrained, obnoxiously capricious"}, + {"word": "vacuous", "meaning": "Empty headed"}, + {"word": "vain", "meaning": "Self obsessed"}, + {"word": "venomed", "meaning": "Poisonous"}, + {"word": "villianous", "meaning": "Evil"}, + {"word": "warped", "meaning": "Bent, bad"}, + {"word": "wayward", "meaning": "Errant"}, + {"word": "weapons-grade", "meaning": "The most extreme example of"}, + {"word": "weather-bitten", "meaning": "Scarred by a life outside"}, + {"word": "weedy", "meaning": "Thin"}, + {"word": "witless", "meaning": "Uhh.."}, + {"word": "yeasty", "meaning": "Pale and soft"} + ], + "nouns": [ + {"word": "apple john", "meaning": "Withered"}, + {"word": "arse", "meaning": "That thing you sit on"}, + {"word": "babysplat", "meaning": "Everywhere. Just everywhere", "nsfw": "cocksplat", "nsfwMeaning": "The money shot"}, + {"word": "baggage", "meaning": "A person you would rather not carry"}, + {"word": "bampot", "meaning": "An idiot"}, + {"word": "barnacle", "meaning": "A clingy person"}, + {"word": "bassa", "meaning": "Bastard"}, + {"word": "bawbag", "meaning": "An annoying person, a sack"}, + {"word": "bladder", "meaning": "A bag of urine"}, + {"word": "boaby", "meaning": "Penis"}, + {"word": "boar-pig", "meaning": "A pig"}, + {"word": "bugbear", "meaning": "A hobgoblin bogeyman"}, + {"word": "bull's pizzle", "meaning": "Pizzle from a bull"}, + {"word": "bum-ailey", "meaning": "A bad cop"}, + {"word": "canker blossom", "meaning": "A common person"}, + {"word": "clack-dish", "meaning": "A beggars bowl"}, + {"word": "clawbaw", "meaning": "A person who keeps their hands in thier pockets"}, + {"word": "clotpole", "meaning": "A foolish person"}, + {"word": "cockwomble", "meaning": "A foolish or obnoxious person"}, + {"word": "codpiece", "meaning": "A flap of cloth covering one's cod"}, + {"word": "coxcomb", "meaning": "A dandy, vain and conceited"}, + {"word": "death-token", "meaning": "A sign of impending death"}, + {"word": "dewberry", "meaning": "A species of berry"}, + {"word": "diddy", "meaning": "A tit"}, + {"word": "dobber", "meaning": "A tool, a member"}, + {"word": "dog-lover", "meaning": "An individual of low standards", "nsfw": "dog-fucker", "nsfwMeaning": "A classless heel"}, + {"word": "doiley", "meaning": "A foolish old person"}, + {"word": "dorkweed", "meaning": "Not a swearword", "nsfw": "dickweed"}, + {"word": "dottard", "meaning": "A decript senior as identified by the Leader of North Korea"}, + {"word": "doughnut", "meaning": "A person with a hole in their head, witless"}, + {"word": "eejit", "meaning": "An idiot"}, + {"word": "fannybaws", "meaning": "A twat"}, + {"word": "flap-dragon", "meaning": "A raisin floating in a lit glass of rum"}, + {"word": "flax-wench", "meaning": "A prostitute"}, + {"word": "flirt gill", "meaning": "A wanton person"}, + {"word": "foot-licker", "meaning": "A syncophant"}, + {"word": "fud", "meaning": "Female genitalia, but more likely a person who does blindingly stupid things"}, + {"word": "fudge-nugget", "meaning": "Mmmm. Fudge", "nsfw": "fucknugget", "nsfwMeaning": "The consequences of sex"}, + {"word": "fustilarian", "meaning": "A scoundrel, but not a space smuggler"}, + {"word": "geek", "meaning": "Not athletic, a programmer"}, + {"word": "gibbon", "meaning": "A monkey", "nsfw": "shit-gibbon", "nsfwMeaning": "A monkey who flings shit"}, + {"word": "giglet", "meaning": "A lascivious girl"}, + {"word": "gobshite", "meaning": "A natterer, one who doesn't know how to shut"}, + {"word": "gowk", "meaning": "An awkward or foolish person"}, + {"word": "gudgeon", "meaning": "A foolish person, gullible"}, + {"word": "haggard", "meaning": "A worn out person"}, + {"word": "harpy", "meaning": "Virginia Woolf"}, + {"word": "hedge-pig", "meaning": "Hedgehog, prickly"}, + {"word": "horn-beast", "meaning": "Easily enraged, bestial"}, + {"word": "hugger mugger", "meaning": "A pretender"}, + {"word": "jazztrumpet", "meaning": "Not Miles Davis", "nsfw": "jizztrumpet", "nsfwMeaning": "Someone who plays a trumpet of jizz"}, + {"word": "jobby", "meaning": "Feces, junk"}, + {"word": "joithead", "meaning": "A hothead"}, + {"word": "lewdster", "meaning": "A lecher, a lewd person"}, + {"word": "lickspittle", "meaning": "A weak-willed flatterer"}, + {"word": "lout", "meaning": "An uncouth, aggressive man"}, + {"word": "maggot-pie", "meaning": "A pie of maggots"}, + {"word": "malt-worm", "meaning": "A drunkard"}, + {"word": "mammet", "meaning": "A scarecrow"}, + {"word": "measle", "meaning": "A leper"}, + {"word": "midden", "meaning": "A trash heap, a dung hill"}, + {"word": "minnow", "meaning": "A small fish in a big pond"}, + {"word": "miscreant", "meaning": "A wicked, sinful person"}, + {"word": "moldwarp", "meaning": "A mud thrower, a politician"}, + {"word": "moron", "meaning": "Intentionally ignorant"}, + {"word": "mumble-news", "meaning": "A gossiper, a tattler"}, + {"word": "nimrod", "meaning": "A mighty hunter. Not what you expected, is it?"}, + {"word": "numpty", "meaning": "A stupid, useless person"}, + {"word": "nut-hook", "meaning": "A constable, an officer"}, + {"word": "nyaff", "meaning": "A stupid, irritating person"}, + {"word": "pervert", "meaning": "Deviant sexual standards"}, + {"word": "pigeon-egg", "meaning": "A small useless thing"}, + {"word": "pignut", "meaning": "An ugly tuber"}, + {"word": "plamf", "meaning": "An underwear sniffer"}, + {"word": "plum", "meaning": "A person who says or does stupid things"}, + {"word": "pumpion", "meaning": "A person who makes a fool of themselves"}, + {"word": "puttock", "meaning": "A greedy, rapacious person"}, + {"word": "ratsbane", "meaning": "Rat poisioner"}, + {"word": "roaster", "meaning": "A person who makes a fool of themselves"}, + {"word": "rocket", "meaning": "An idiot"}, + {"word": "scunner", "meaning": "Disgusting, unlikeable"}, + {"word": "scut", "meaning": "A foolish or contemptible person"}, + {"word": "skainsmate", "meaning": "A shipboard companion"}, + {"word": "strumpet", "meaning": "A promiscuous person, a prostitute"}, + {"word": "thundercat", "meaning": "A cartoon from the 70's", "nsfw": "thundercunt", "nsfwMeaning": "Queefing genitalia"}, + {"word": "tube", "meaning": "The cave where you conquer the fear"}, + {"word": "turd-tobogganist", "meaning": "A person who likes to create discord", "nsfw": "shit-tobogganist", "nsfwMeaning": "A person who creates chaos just because they fucking love it"}, + {"word": "twally-washer", "meaning": "Someone who cleans twallies orally"}, + {"word": "twit", "meaning": "A annoying, stupid person. Oliver St. John-Mollusc"}, + {"word": "twonk", "meaning": "A stupid person"}, + {"word": "varlot", "meaning": "A punk"}, + {"word": "vassal", "meaning": "A subordinant, servile"}, + {"word": "wagtail", "meaning": "A syncophant"}, + {"word": "walloper", "meaning": "A male member"}, + {"word": "whalluper", "meaning": "A male member"}, + {"word": "whey-face", "meaning": "Pale of face, sickly"} + ] +} diff --git a/interject/Interject!/.Products.plist.icloud b/interject/Interject!/.Products.plist.icloud new file mode 100644 index 0000000..3ad0ef8 Binary files /dev/null and b/interject/Interject!/.Products.plist.icloud differ diff --git a/interject/Interject!/.adjective.strings.icloud b/interject/Interject!/.adjective.strings.icloud new file mode 100644 index 0000000..d58c29e Binary files /dev/null and b/interject/Interject!/.adjective.strings.icloud differ diff --git a/interject/Interject!/Interject!.entitlements b/interject/Interject!/Interject!.entitlements new file mode 100644 index 0000000..b592a66 --- /dev/null +++ b/interject/Interject!/Interject!.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.application-groups + + group.us.hinnen.Interject- + + +