import random class verb(object): def __init__(self,plural,singular,tense): self.singular = singular self.plural = plural self.tense = tense class noun(object): def __init__(self,word,person,number): self.word = word self.person = person self.number = number class phrase(object): def __init__(self, present, past, active, dobject): self.present = present self.past = past self.active = active self.dobject = dobject auxilliary_verbs = [ verb("will", "will", "present"), verb("could", "could", "present"), verb("are", "is", "active"), verb("have", "has", "past") ] subjects = [ noun("lycra louts", 3, 2), noun("burqa babes",3, 2), noun("promiscuous britain",3,1), noun("new labour",3,1), noun("the hard left",3,1), noun("the libdems",3,1), noun("the coalition",3,1), noun("brussels",3,1), noun("the bbc",3,1), noun("the imf",3,1), noun("the e.u.",3,1), noun("the euro",3,1), noun("the loony left",3,1), noun("the unions",3,2), # May be a bit quaint this one noun("channel 4",3,1), noun("channel 5",3,1), noun("your local council",3,1), noun("laughing mob",3,1), noun("post-brexit britain",3,1), noun("broken britain",3,1), noun("bankrupt europeans",3,2), noun("the eurozone",3,2), noun("brexiters",3,2), noun("the remain supporters",3,2), noun("the italians",3,2), noun("the greeks",3,2), noun("the french",3,2), noun("the germans",3,2), noun("romanians",3,2), noun("croatians",3,2), noun("albanians",3,2), noun("immigrants",3,2), noun("refugees",3,2), noun("syrians",3,2), noun("green energy",3,1), noun("wind farms",3,2), noun("the poles",3,2), noun("polish shopkeepers",3,2), noun("brussels bureaucrats",3,2), noun("muslims",3,2), noun("greedy rioters",3,2), noun("rioters",3,2), noun("so-called protestors",3,2), noun("immigrants",3,2), # Except those from the UK to Spain & the Algarve of course noun("teachers",3,2), noun("the unemployed",3,2), noun("gypsies",3,2), noun("problem families",3,2), noun("greedy bankers",3,2), noun("city bankers",3,2), noun("mortgage lenders",3,2), noun("bankers",3,2), noun("parking officials",3,2), noun("incompetent officials",3,2), noun("rip-off plumbers",3,2), noun("cowboy builders",3,2), noun("sex addicts",3,2), noun("sadomasochists",3,2), noun("prostitutes",3,2), noun("transvestite prostitutes",3,2), noun("selfish public sector workers",3,2), noun("overpaid tube train drivers",3,2), noun("hard working families",3,2), noun("yobs",3,2), noun("hoodies",3,2), noun("feral children",3,2), # They hate children *and* paedophiles FFS, make your minds up noun("chavs",3,2), noun("the p.c. brigade",3,2), noun("hysterical mothers",3,2), noun("hysterical jobsworths",3,2), noun("hysterical judges",3,2), noun("frantic women",3,2), noun("puppets",3,2), # just because noun("helmet-camera vigilantes",3,2), noun("ambulance-chasing personal injury lawyers",3,2), noun("phone hackers",3,2), noun("asylum seekers",3,2), # Nicer way of saying 'brown people' noun("gays",3,2), noun("lesbians",3,2), noun("single mothers",3,2), noun("bewildered shoppers",3,2), noun("confused bystanders",3,2), noun("furious bmw drivers",3,2), noun("road-rage audi drivers",3,2), noun("britain's speeding motorists",3,2), noun("careful drivers",3,2), noun("paedophiles",3,2), noun("striking tube workers",3,2), noun("striking train drivers",3,2), noun("striking teachers",3,2), noun("a reclusive billionaire",3,1), noun("an anonymous conservative party donor",3,1), noun("a high-profile labour party donor",3,1), noun("a privately educated loner",3,1), noun("a sex addicted lawyer",3,1), noun("a reality tv star",3,1), noun("a tearful wayne rooney",3,1), noun("a crushed england team",3,1), noun("hollande",3,1), noun("merkel",3,1), noun("nick clegg",3,1), noun("tim farron",3,1), noun("nigel farage",3,1), noun("michael gove",3,1), noun("boris johnson",3,1), noun("theresa may",3,1), noun("vince cable",3,1), noun("ed miliband",3,1), noun("gordon brown",3,1), noun("alistair darling",3,1), noun("jacqui smith",3,1), noun("diane abbot",3,1), noun("jeremy corbyn",3,1), noun("tom watson",3,1), noun("andrea leadsom",3,1), noun("teen sex",3,1), noun("political correctness",3,1), noun("health & safety",3,1), noun("feminism",3,1), noun("the metric system",3,1), # For fuck's sake noun("dumbing-down",3,1), noun("rip-off britain",3,1), noun("the internet",3,1), noun("eu rules on freedom of movement",3,1), noun("eu red tape",3,1), noun("green energy",3,1), noun("solar power",3,1), noun("recycling",3,1), noun("organic food",3,1), noun("frankenstein food",3,1), noun("gm food",3,1), noun("wi-fi",3,1), noun("x-factor",3,1), noun("i'm a celebrity",3,1), noun("trash tv",3,1), noun("facebook",3,1), # I CAN'T BELIEVE THE MAIL ACTUALLY SAID FACEBOOK COULD GIVE YOU CANCER, FOR REAL noun("filth on television",3,1), noun("the human rights act",3,1), noun("the nanny state",3,1), noun("cancer",3,1), # Could cancer give you cancer? noun("binge drinking",3,1), noun("the MMR jab",3,1), # Murdering cunts noun("the house price crash",3,1) # Hahahaha ] # Transitive phrases (i.e. bad thing they do) transitive_phrases = [ phrase("brexit","brexited","brexiting",""), phrase("leave","left","leaving",""), phrase("quit","has quit","quitting",""), phrase("remain","remained","remaining",""), phrase("escape","escaped","escaping",""), phrase("cause", "caused", "causing", "energy bills to double"), phrase("cause", "caused", "causing", "financial meltdown"), phrase("ignore", "ignored", "ignoring", "calls for constraint"), phrase("face", "faced", "facing", "new stealth tax"), phrase("give", "given", "giving", "cancer"), phrase("give", "given", "giving", "cancer"), # Have it twice as they're so bloody obsessed by it phrase("infect", "infected", "infecting", "with AIDS"), phrase("give", "given", "giving", "swine flu"), phrase("make", "made", "making", "obese"), phrase("give", "given", "giving", "diabetes"), phrase("make", "made", "making", "impotent"), phrase("plot tax raid on","plotted tax raid on","plotting tax raid on",""), phrase("protect", "protected","protecting", "gold-plated pension pots"), phrase("spoil","spoiled","spoiling","it"), phrase("hack", "hacked", "hacking", ""), phrase("phone-hack", "phone-hacked", "phone-hacking", ""), phrase("turn","turned","turning","gay"), # Cunts phrase("scrounge off","scrounged off","scrounging off",""), phrase("tax", "taxed", "taxing", ""), phrase("cheat", "cheated", "cheating", ""), phrase("defraud", "defrauded", "defrauding", ""), phrase("steal from","stolen from","stealing from",""), phrase("burgle","burgled","burgling",""), phrase("devalue","devalued","devaluing",""), phrase("rip off","ripped off","ripping off",""), phrase("hike price of","hiked price of","hiking price of",""), phrase("cover up","covered up","covering up",""), phrase("molest","molested","molesting",""), phrase("have sex with","had sex with","having sex with",""), phrase("impregnate", "impregnated", "impregnating", ""), phrase("steal the identity of","stolen the identity of","stealing the identity of",""), phrase("harm","harmed","harming",""), phrase("threaten", "threatened", "threatening", ""), phrase("blast", "blasted", "blasting", ""), phrase("bash", "bashed", "bashing", ""), phrase("destroy","destroyed","destroying",""), phrase("kill","killed", "killing",""), phrase("ruin","ruined","ruining",""), phrase("hurt","hurt", "hurting",""), phrase("contaminate","contaminated","contaminating",""), phrase("bail out","bailed out","bailing out","") ] dobjects = [ "the british people", "the middle class", "the squeezed middle", "middle britain", # Cunts "england", "isis", "so-called islamic state", "hard-working families", "little englanders", "racists", "yobs", "homeowners", "pensioners", "drivers", "taxpayers", "taxpayers' money", "unborn babies", "pregnant mothers", "house prices", "property prices", # Hahahahahahahaa "britain's farmers", "the countryside", "british justice", "the british army", "the metropolitan police", "the police", "the royal navy", "british sovereignty", "top gear", "common sense and decency", "the queen", # God bless 'er "the royal family", "the church", "you", "your mortgage", "your pension", "your money", "your daughters", "your children", "your house", "your car", "your pets", "your credit rating", "your credit card", "the conservative party", # FAIL "the memory of diana", "Britain's credit rating", "Britain's swans", # This always stays "Cadbury" # iconic! ]; def match_verb_and_subject(subject,verb): if ((subject.number == 1) and (subject.person == 3)): return verb.singular else: return verb.plural def match_verb_and_tense(verb,phrase): if (verb.tense == "present"): return phrase.present elif (verb.tense == "past"): return phrase.past elif (verb.tense == "active"): return phrase.active def generate(): subject = random.choice(subjects) phrase = random.choice(transitive_phrases) verb = random.choice(auxilliary_verbs) dobject = random.choice(dobjects) sentence = [match_verb_and_subject(subject, verb), subject.word, match_verb_and_tense(verb,phrase), dobject] if (phrase.dobject != ""): sentence.append(phrase.dobject) s = " ".join(sentence).upper() return s + "?"