From 2546a86e31c75ef05a9ed172dd3b93db1ca13963 Mon Sep 17 00:00:00 2001 From: Josh Stockin Date: Thu, 23 Jan 2020 22:27:05 -0600 Subject: [PATCH 01/15] Begin source for the optional cog 'simplewriter' --- futaba/cogs/optional/simplewriter/__init__.py | 20 +++++++ futaba/cogs/optional/simplewriter/core.py | 54 +++++++++++++++++++ futaba/config.py | 2 +- 3 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 futaba/cogs/optional/simplewriter/__init__.py create mode 100644 futaba/cogs/optional/simplewriter/core.py diff --git a/futaba/cogs/optional/simplewriter/__init__.py b/futaba/cogs/optional/simplewriter/__init__.py new file mode 100644 index 00000000..3e0b01cf --- /dev/null +++ b/futaba/cogs/optional/simplewriter/__init__.py @@ -0,0 +1,20 @@ +# +# cogs/optional/simplewriter/__init__.py +# +# futaba - A Discord Mod bot for the Programming server +# Copyright (c) 2017-2020 Jake Richardson, Ammon Smith, jackylam5, Joshua 'joshuas3' Stockin +# +# futaba is available free of charge under the terms of the MIT +# License. You are free to redistribute and/or modify it under those +# terms. It is distributed in the hopes that it will be useful, but +# WITHOUT ANY WARRANTY. See the LICENSE file for more details. +# + +from .core import SimplewriterCog + + +def setup(bot): + cog = SimplewriterCog(bot) + bot.add_listener(cog.check_message, "on_message") + bot.add_listener(cog.check_message_edit, "on_message_edit") + bot.add_cog(cog) diff --git a/futaba/cogs/optional/simplewriter/core.py b/futaba/cogs/optional/simplewriter/core.py new file mode 100644 index 00000000..70c44dbc --- /dev/null +++ b/futaba/cogs/optional/simplewriter/core.py @@ -0,0 +1,54 @@ +# +# cogs/optional/simplewriter/core.py +# +# futaba - A Discord Mod bot for the Programming server +# Copyright (c) 2017-2020 Jake Richardson, Ammon Smith, jackylam5, Joshua 'joshuas3' Stockin +# +# futaba is available free of charge under the terms of the MIT +# License. You are free to redistribute and/or modify it under those +# terms. It is distributed in the hopes that it will be useful, but +# WITHOUT ANY WARRANTY. See the LICENSE file for more details. +# + +""" +A thing that only lets you write stuff in a certain word box, but only if it's made up of the first ten hundred most-used words of the language. +""" + +# REMOVE THIS IN REGULAR COGS: +# pylint: disable=unused-import + +import asyncio +import logging +import math + +import discord + +from futaba import permissions +from futaba.cogs.abc import AbstractCog +from futaba.exceptions import CommandFailed + +logger = logging.getLogger(__name__) + + +class SimplewriterCog(AbstractCog): + __slots__ = ("journal",) + + def __init__(self, bot): + super().__init__(bot) + self.journal = bot.get_broadcaster("/simplewriter") + + def setup(self): + pass + + def __unload(self): + self.bot.remove_listener(self.check_message, "on_message") + self.bot.remove_listener(self.check_message_edit, "on_message_edit") + + # TODO: move check_message and check_message_edit to own hook files + async def check_message(cog, message): + if message.author.id == cog.bot.user.id: + return + await message.channel.send(message.id) + + async def check_message_edit(cog, before, after): + pass diff --git a/futaba/config.py b/futaba/config.py index 3d626d90..f17c8aa9 100644 --- a/futaba/config.py +++ b/futaba/config.py @@ -43,7 +43,7 @@ def wrapper(value): "prefix": str, "error-channel-id": Or(And(str, ID_REGEX.match), "0"), }, - "cogs": {"example": object, "statbot": object}, + "cogs": {"example": object, "statbot": object, "simplewriter": object}, "moderation": {"max-cleanup-messages": And(str, _check_gtz(int))}, "delay": { "chunk-size": And(str, _check_gtz(int)), From a78a749756cf26568e3e4842627aa7a46635fd39 Mon Sep 17 00:00:00 2001 From: Josh Stockin Date: Thu, 23 Jan 2020 22:32:47 -0600 Subject: [PATCH 02/15] Add 'simplewriter' cog settings to misc/config.toml --- misc/config.toml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/misc/config.toml b/misc/config.toml index ed4334ee..1be20f71 100644 --- a/misc/config.toml +++ b/misc/config.toml @@ -21,6 +21,12 @@ enabled = true enabled = false url = "postgres://statbot:passwordhere@localhost/statbot_ro" +[cogs.simplewriter] +enabled = false +# The ID of the text channel to enforce the simplewriter vocabulary in +# Set to "0" to implicitly disable simplewriter +channel-id = "0" + [moderation] # Maximum number of messages that may be specified # when doing a bulk message cleanup From 23769b7924d1163c4cf457024a30a1326e0231ac Mon Sep 17 00:00:00 2001 From: Josh Stockin Date: Sat, 25 Jan 2020 22:38:59 -0600 Subject: [PATCH 03/15] Add compiled list of words to use in simplewriter --- .../optional/simplewriter/words/__init__.py | 17 + .../simplewriter/words/core_words_list.py | 670 ++++++++++++++++++ 2 files changed, 687 insertions(+) create mode 100644 futaba/cogs/optional/simplewriter/words/__init__.py create mode 100644 futaba/cogs/optional/simplewriter/words/core_words_list.py diff --git a/futaba/cogs/optional/simplewriter/words/__init__.py b/futaba/cogs/optional/simplewriter/words/__init__.py new file mode 100644 index 00000000..99f8abc2 --- /dev/null +++ b/futaba/cogs/optional/simplewriter/words/__init__.py @@ -0,0 +1,17 @@ +# +# cogs/optional/simplewriter/words/__init__.py +# +# futaba - A Discord Mod bot for the Programming server +# Copyright (c) 2017-2020 Jake Richardson, Ammon Smith, jackylam5, Joshua 'joshuas3' Stockin +# +# futaba is available free of charge under the terms of the MIT +# License. You are free to redistribute and/or modify it under those +# terms. It is distributed in the hopes that it will be useful, but +# WITHOUT ANY WARRANTY. See the LICENSE file for more details. +# + +__all__ = [ + "core_words_list", +] + +from .core_words_list import core_words_list diff --git a/futaba/cogs/optional/simplewriter/words/core_words_list.py b/futaba/cogs/optional/simplewriter/words/core_words_list.py new file mode 100644 index 00000000..04cee02f --- /dev/null +++ b/futaba/cogs/optional/simplewriter/words/core_words_list.py @@ -0,0 +1,670 @@ +# +# cogs/optional/simplewriter/words/core_words_list.py +# +# futaba - A Discord Mod bot for the Programming server +# Copyright (c) 2017-2020 Jake Richardson, Ammon Smith, jackylam5, Joshua 'joshuas3' Stockin +# +# futaba is available free of charge under the terms of the MIT +# License. You are free to redistribute and/or modify it under those +# terms. It is distributed in the hopes that it will be useful, but +# WITHOUT ANY WARRANTY. See the LICENSE file for more details. +# + +__all__ = ["core_words_list"] + +# The list of the most frequently used English words, plus their directly related derivatives. +core_words_list = [ + "a", "an", + "able", + "about", + "accept", "accepts", "accepted", "accepting", + "across", + "act", "acts", "acted", "acting", + "add", "adds", "added", "adding", + "admit", "admits", "admitted", "admitting", + "after", + "afternoon", "afternoons", + "again", + "against", + "age", "ages", "aged", "aging", + "ago", + "agree", "agrees", "agreed", "agreeing", + "air", "airs", "aired", "airing", + "all", + "allow", "allows", "allowed", "allowing", "allower", "allowers", + "almost", + "along", + "already", + "also", + "always", + "and", + "another", + "answer", "answers", "answered", "answering", + "any", + "anything", + "appear", "appears", "appeared", "appearing", + "approach", "approaches", "approached", "approaching", + "area", "areas", + "arm", "arms", "armed", "arming", + "around", + "art", "arts", + "as", + "ask", "asks", "asked", "asking", + "at", + "away", + "baby", "babies", + "back", "backs", "backed", "backing", + "bad", "worse", "worst", + "bag", "bags", "bagged", "bagging", + "ball", "balls", "balled", "balling", + "bank", "banks", "banked", "banking", + "bar", "bars", + "be", + "bear", "bears", "bore", "born", "bearing", + "beat", "beats", "beat", "beaten", "beating", + "because", + "become", "becomes", "became", "become", "becoming", + "bed", "beds", "bedded", "bedding", + "before", + "begin", "begins", "began", "begun", "beginning", + "behind", + "being", + "believe", "believes", "believed", "believing", "believer", "believers", + "best", "better", "best", "bests", "bested", "besting", + "between", + "big", "bigger", "biggest", + "bit", "bits", "bites", "bit", "biting", "biter", "biters", + "black", "blacks", "blacker", "blackest", "blacking", + "blood", "bloods", + "blow", "blows", "blew", "blown", "blowing", "blower", "blowers", + "blue", "blues", "bluer", "bluest", + "board", "boards", "boarded", "boarding", + "boat", "boats", "boated", "boating", + "body", "bodies", + "book", "books", "booked", "booking", + "both", + "bother", "bothers", "bothered", "bothering", + "bottle", "bottles", "bottled", "bottling", + "bottom", "bottoms", "bottomed", "bottoming", + "box", "boxes", "boxed", "boxing", + "boy", "boys", + "break", "breaks", "broke", "broken", "breaking", "breaker", "breakers", + "bring", "brings", "brought", "bringing", + "brother", "brothers", + "build", "builds", "built", "building", "builder", "builders", + "bus", "buses", "bused", "busing", + "business", "businesses", + "busy", "busier", "busiest", "busied", "busying", + "but", + "buy", "buys", "bought", "buying", + "by", + "call", "calls", "called", "calling", + "can", "cans", + "car", "cars", + "card", "cards", "carded", "carding", + "care", "cares", "cared", "caring", + "carry", "carries", "carried", "carrying", "carrier", "carriers", + "case", "cases", "cased", "casing", + "cat", "cats", "catted", "catting", + "catch", "catches", "caught", "catching", "catcher", + "cause", "causes", "caused", "causing", + "center", "centers", "centered", "centering", + "certain", + "chair", "chairs", + "chance", "chances", "chanced", "chancing", + "change", "changes", "changed", "changing", "changer", + "check", "checks", "checked", "checking", "checker", "checkers", + "child", "children", + "choice", "choices", "choicer", "choicest", + "choose", "chooses", "chose", "chosen", "choosing", "chooser", "choosers", + "church", "churches", + "city", "cities", + "class", "classes", + "clean", "cleaner", "cleanest", "cleans", "cleaned", "cleaning", "cleaners", + "clear", "clearer", "clearest", "clears", "cleared", "clearing", + "close", "closes", "closed", "closing", "closer", "closest", + "clothe", "clothes", "clothed", "clothing", + "coffee", "coffees", + "cold", "colder", "coldest", "colds", + "college", "colleges", + "color", "colors", "colored", "coloring", + "come", "comes", "came", "come", "coming", + "company", "companies", + "consider", "considers", "considered", "considering", + "continue", "continues", "continued", "continuing", + "control", "controls", "controlled", "controlling", + "corner", "corners", "cornered", "cornering", + "could", + "count", "counts", "counted", "counting", "counter", "counters", + "country", "countries", + "couple", "couples", + "course", "courses", "coursed", "coursing", + "cover", "covers", "covered", "covering", + "create", "creates", "created", "creating", + "cross", "crosses", "crossed", "crossing", "crosser", + "cup", "cups", "cupped", "cupping", + "cut", "cuts", "cut", "cutting", + "dad", "dads", + "day", "days", + "dead", "deader", "deadest", + "decide", "decides", "decided", "deciding", + "deep", "deeper", "deepest", + "die", "dies", "died", "dying", + "dinner", "dinners", + "do", "does", "did", "done", "doing", + "doctor", "doctors", "doctored", "doctoring", + "dog", "dogs", "dogged", "dogging", + "door", "doors", + "down", "downs", + "draw", "draws", "drew", "drawn", "drawing", + "dress", "dresses", "dressed", "dressing", + "drink", "drinks", "drank", "drunk", "drinking", "drinker", "drinkers", + "drive", "drives", "drove", "driven", "driving", "driver", "drivers", + "drop", "drops", "dropped", "dropping", + "dry", "drier", "driest", "dries", "dried", "drying", + "during", + "each", + "early", "earlier", "earliest", + "east", + "easy", "easier", "easiest", + "eat", "eats", "ate", "eaten", "eating", + "egg", "eggs", "egged", "egging", + "eight", "eights", + "either", + "else", + "end", "ends", "ended", "ending", + "engine", "engines", + "enjoy", "enjoys", "enjoyed", "enjoying", + "enough", + "enter", "enters", "entered", "entering", + "especially", + "even", "evens", "evened", + "ever", + "every", + "except", "excepts", "excepted", "excepting", + "expect", "expects", "expected", "expecting", + "explain", "explains", "explained", "explaining", "explainer", "explainers", + "extra", "extras", + "eye", "eyes", "eyed", "eying", + "face", "faces", "faced", "facing", + "fact", "facts", + "fall", "falls", "fell", "fallen", "falling", + "family", "families", + "far", "farther", "farthest", "further", "furthest", + "fast", "faster", "fastest", + "father", "fathers", "fathered", "fathering", + "feed", "feeds", "fed", "feeding", + "feel", "feels", "felt", "feeling", + "few", "fewer", "fewest", + "field", "fields", + "fight", "fights", "fought", "fighting", "fighter", "fighters", + "figure", "figures", "figured", "figuring", + "fill", "fills", "filled", "filling", + "final", "finals", + "find", "finds", "found", "finding", "finder", "finders", + "fine", "finer", "finest", "fines", "fined", "fining", + "finish", "finishes", "finished", "finishing", + "fire", "fires", "fired", "firing", + "first", "firsts", + "fish", "fishes", "fished", "fishing", + "fit", "fits", "fitted", "fitting", "fitter", "fittest", + "five", "fives", + "flat", "flatter", "flattest", "flats", "flatted", "flatting", + "floor", "floors", + "fly", "flies", "flew", "flown", "flying", + "follow", "follows", "followed", "following", + "food", "foods", + "foot", "feet", "foots", "footed", "footing", + "for", + "force", "forces", "forced", "forcing", + "forget", "forgets", "forgot", "forgotten", "forgetting", "forgetter", "forgetters", + "form", "forms", "formed", "forming", + "forward", "forwards", "forwarded", "forwarding", + "four", "fours", + "free", "freer", "freest", "frees", "freed", "freeing", + "friend", "friends", + "from", + "front", "fronts", "fronted", "fronting", + "full", "fuller", "fullest", + "fun", + "further", "farther", "farthest", "further", "furthest", + "future", "futures", + "game", "games", "gamed", "gaming", "gamer", "gamers", + "garden", "gardens", "gardened", "gardening", + "get", "gets", "got", "getting", "gotten", + "girl", "girls", + "give", "gives", "gave", "given", "giving", + "glass", "glasses", + "go", "goes", "went", "gone", "going", + "god", "gods", + "good", "better", "best", "goods", + "great", "greater", "greatest", + "green", "greens", "greener", "greenest", + "ground", "grounds", "ground", + "group", "groups", "grouped", "grouping", + "grow", "grows", "grew", "grown", "growing", + "guess", "guesses", "guessed", "guessing", + "guy", "guys", + "hair", "hairs", + "half", "halves", + "hall", "halls", + "hand", "hands", "handed", "handing", + "hang", "hangs", "hung", "hanging", "hanged", + "happen", "happens", "happened", "happening", + "happy", "happier", "happiest", + "hard", "harder", "hardest", + "hate", "hates", "hated", "hating", + "have", "has", "had", "having", + "he", + "head", "heads", "headed", "heading", + "hear", "hears", "heard", "hearing", + "heart", "hearts", + "heat", "heats", "heated", "heating", "heater", "heaters", + "heavy", "heavier", "heaviest", + "hell", "hells", + "hello", "hellos", + "help", "helps", "helped", "helping", + "here", "heres", + "hey", + "hi", + "high", "higher", "highest", + "history", "histories", + "hit", "hits", "hit", "hitting", "hitter", "hitters", + "hold", "holds", "held", "holding", "holder", "holders", + "home", "homes", + "hope", "hopes", "hoped", "hoping", + "horse", "horses", + "hospital", "hospitals", + "hot", "hotter", "hottest", + "hour", "hours", + "house", "houses", "housed", "housing", + "how", + "however", + "hundred", "hundreds", + "husband", "husbands", + "idea", "ideas", + "if", + "imagine", "imagines", "imagined", "imagining", "imaginer", "imaginers", + "important", + "in", + "inside", "insides", + "instead", + "interest", "interests", "interested", "interesting", + "into", + "it", + "job", "jobs", + "join", "joins", "joined", "joining", + "jump", "jumps", "jumped", "jumping", "jumper", "jumpers", + "just", + "keep", "keeps", "kept", "keeping", "keeper", "keepers", + "key", "keys", "keyed", "keying", + "kid", "kids", "kidded", "kidding", + "kill", "kills", "killed", "killing", "killer", "killers", + "kind", "kinds", "kinder", "kindest", + "kitchen", "kitchens", + "knock", "knocks", "knocked", "knocking", + "know", "knows", "knew", "known", "knowing", + "lady", "ladies", + "land", "lands", "landed", "landing", "lander", "landers", + "language", "languages", + "large", "larger", "largest", + "last", "lasts", "lasted", "lasting", + "late", "later", + "laugh", "laughs", "laughed", "laughing", + "law", "laws", + "lay", "lays", "laid", "laying", + "layer", "layers", + "lead", "leads", "led", "leading", "leader", "leaders", + "learn", "learns", "learned", "learning", + "leave", "leaves", "left", "leaving", + "left", "leaves", "left", "leaving", + "leg", "legs", + "less", "lesser", "least", + "let", "lets", "let", "letting", + "letter", "letters", + "lie", "lies", "lay", "lying", "lied", + "life", "lives", + "light", "lights", "lighter", "lightest", "lighted", "lighting", "lit", "lighters", + "like", "likes", "liked", "liking", + "line", "lines", "lined", "lining", + "listen", "listens", "listened", "listening", + "little", "littler", "littlest", "less", "least", + "live", "lives", "lived", "living", + "local", "locals", + "lock", "locks", "locked", "locking", + "long", "longer", "longest", "longs", "longed", "longing", + "look", "looks", "looked", "looking", "looker", "lookers", + "lose", "loses", "lost", "losing", + "lot", "lots", + "love", "loves", "loved", "loving", "lover", "lovers", + "low", "lower", "lowest", + "lunch", "lunches", "lunched", "lunching", + "machine", "machines", "machined", "machining", + "main", "mains", + "make", "makes", "made", "making", "maker", "makers", + "man", "men", + "manage", "manages", "managed", "managing", + "many", "more", "most", + "mark", "marks", "marked", "marking", + "marry", "marries", "married", "marrying", + "matter", "matters", "mattered", "mattering", + "may", "mays", + "maybe", + "mean", "means", "meant", "meaning", "meanest", + "meaning", "meanings", "means", "meant", "meaning", + "meet", "meets", "met", "meeting", + "member", "members", + "mention", "mentions", "mentioned", "mentioning", + "middle", "middles", + "might", "mights", + "mind", "minds", "minded", "minding", + "minute", "minutes", + "miss", "misses", "missed", "missing", + "moment", "moments", + "money", "monies", + "month", "months", + "more", "more", "most", + "morning", "mornings", + "most", "more", "most", + "mother", "mothers", "mothered", "mothering", + "move", "moves", "moved", "moving", + "much", + "music", "musics", + "must", + "name", "names", "named", "naming", + "near", "nearer", "nearest", "nears", "neared", "nearing", + "need", "needs", "needed", "needing", + "never", + "new", "newer", "newest", + "news", + "next", + "nice", "nicer", "nicest", + "night", "nights", + "no", + "none", + "normal", + "north", + "not", + "note", "notes", "noted", "noting", + "notice", "notices", "noticed", "noticing", + "now", + "number", "numbers", "numbered", "numbering", "number", + "of", + "off", "offs", "offed", "offing", + "offer", "offers", "offered", "offering", + "office", "offices", + "often", + "okay", "okays", "okayed", "okaying", + "old", "older", "oldest", + "on", + "once", + "one", "ones", + "only", + "open", "opens", "opened", "opening", + "or", + "order", "orders", "ordered", "ordering", + "other", "others", + "out", "outs", + "over", "overs", + "own", "owns", "owned", "owning", "owner", "owners", + "page", "pages", "paged", "paging", + "paint", "paints", "painted", "painting", + "pair", "pairs", "paired", "pairing", + "paper", "papers", + "parent", "parents", "parented", "parenting", + "part", "parts", "parted", "parting", + "party", "parties", "partied", "partying", + "pass", "passes", "passed", "passing", + "past", "pasts", + "pay", "pays", "paid", "paying", + "people", "persons", "peoples", "peopled", "peopling", + "perfect", "perfects", "perfected", "perfecting", + "perhaps", + "person", "persons", + "pick", "picks", "picked", "picking", + "picture", "pictures", "pictured", "picturing", + "piece", "pieces", "pieced", "piecing", + "place", "places", "placed", "placing", + "plan", "plans", "planned", "planning", + "play", "plays", "played", "playing", "player", "players", + "please", "pleases", "pleased", "pleasing", + "point", "points", "pointed", "pointing", "pointer", "pointers", + "police", "polices", "policed", "policing", + "poor", "poorer", "poorest", + "position", "positions", "positioned", "positioning", + "possible", + "power", "powers", "powered", "powering", + "prepare", "prepares", "prepared", "preparing", + "press", "presses", "pressed", "pressing", + "pretty", "prettier", "prettiest", + "probably", + "problem", "problems", + "pull", "pulls", "pulled", "pulling", "puller", "pullers", + "push", "pushes", "pushed", "pushing", "pusher", "pushers", + "put", "puts", "put", "putting", + "question", "questions", "questioned", "questioning", "questioner", "questioners", + "quick", "quicker", "quickest", + "quiet", "quieter", "quietest", "quiets", "quieted", "quieting", + "quite", + "radio", "radios", + "raise", "raises", "raised", "raising", + "rather", + "read", "reads", "reading", + "ready", "readier", "readiest", "readies", "readied", "readying", + "real", "realer", "realest", + "realize", "realizes", "realized", "realizing", + "really", + "reason", "reasons", "reasoned", "reasoning", + "receive", "receives", "received", "receiving", + "recognize", "recognizes", "recognized", "recognizing", + "red", "reds", "redder", "reddest", + "remember", "remembers", "remembered", "remembering", + "rest", "rests", "rested", "resting", + "return", "returns", "returned", "returning", + "rid", + "right", "righter", "rights", "righted", "righting", + "ring", "rings", "rang", "rung", "ringing", "ringed", + "rise", "rises", "rose", "risen", "rising", + "road", "roads", + "roll", "rolls", "rolled", "rolling", + "room", "rooms", "roomed", "rooming", + "round", "rounder", + "run", "runs", "ran", "run", "running", "runner", "runners", + "safe", "safer", "safest", "safes", + "same", + "save", "saves", "saved", "saving", + "say", "says", "said", "saying", + "school", "schools", "schooled", + "seat", "seats", "seated", "seating", + "second", "seconds", "seconded", "seconding", + "see", "sees", "saw", "seen", "seeing", + "seem", "seems", "seemed", "seeming", + "sell", "sells", "sold", "selling", "seller", "sellers", + "send", "sends", "sent", "sending", "sender", "senders", + "sense", "senses", "sensed", "sensing", + "serious", + "serve", "serves", "served", "serving", + "service", "services", "serviced", "servicing", + "set", "sets", "set", "setting", + "settle", "settles", "settled", "settling", + "seven", "sevens", + "sex", "sexes", + "share", "shares", "shared", "sharing", + "she", + "sheet", "sheets", + "shoe", "shoes", "shod", "shoeing", + "shoot", "shoots", "shot", "shooting", "shooter", "shooters", + "shop", "shops", "shopped", "shopping", + "short", "shorter", "shortest", + "should", + "show", "shows", "showed", "shown", "showing", + "shut", "shuts", "shut", "shutting", + "sick", "sicker", "sickest", + "side", "sides", "sided", "siding", + "sign", "signs", "signed", "signing", + "singe", + "simple", "simpler", "simplest", "simples", + "since", + "sing", "sings", "sang", "sung", "singing", + "single", "singles", "singled", "singling", + "sir", "sirs", + "sister", "sisters", + "sit", "sits", "sat", "sitting", + "six", "sixes", + "size", "sizes", "sized", "sizing", + "sleep", "sleeps", "slept", "sleeping", "sleeper", "sleepers", + "slow", "slower", "slowest", "slows", "slowed", "slowing", + "small", "smaller", "smallest", + "smoke", "smokes", "smoked", "smoking", "smoker", "smokers", + "so", + "some", + "son", "sons", + "soon", + "sorry", "sorrier", "sorriest", + "sort", "sorts", "sorted", "sorting", + "sound", "sounds", "sounded", "sounding", + "south", + "space", "spaces", "spaced", "spacing", + "speak", "speaks", "spoke", "spoken", "speaking", "speaker", "speakers", + "special", + "spend", "spends", "spent", "spending", "spender", "spenders", + "stage", "stages", + "stairs", "stairs", + "stand", "stands", "stood", "standing", + "start", "starts", "started", "starting", "starter", "starting", + "state", "states", "stated", "stating", + "station", "stations", "stationed", "stationing", + "stay", "stays", "stayed", "staying", + "step", "steps", "stepped", "stepping", + "stick", "sticks", "stuck", "sticking", "sticker", "stickers", + "still", + "stop", "stops", "stopped", "stopping", + "story", "stories", + "straight", "straighter", "straightest", "straights", + "street", "streets", + "strike", "strikes", "struck", "striking", + "strong", "stronger", "strongest", + "student", "students", + "study", "studies", "studied", "studying", + "stuff", "stuffs", "stuffed", "stuffing", + "stupid", "stupider", "stupidest", + "such", + "suddenly", + "suggest", "suggests", "suggested", "suggesting", + "suit", "suits", "suited", "suiting", + "summer", "summers", + "sun", "suns", + "suppose", "supposes", "supposed", "supposing", + "sure", "surer", "surest", + "surprise", "surprises", "surprised", "surprising", + "system", "systems", + "table", "tables", + "take", "takes", "took", "taken", "taking", "taker", "takers", + "talk", "talks", "talked", "talking", "talker", "talkers", + "tea", "teas", + "teach", "teaches", "taught", "teaching", "teacher", "teachers", + "team", "teams", "teamed", "teaming", + "television", "televisions", + "tell", "tells", "told", "telling", + "ten", "tens", + "terrible", + "than", + "thank", "thanks", "thanked", "thanking", + "the", + "then", + "there", + "they", + "thing", "things", + "think", "thinks", "thought", "thinking", "thinker", "thinkers", + "thirty", "thirties", + "this", + "though", + "three", "threes", + "through", + "throw", "throws", "threw", "thrown", "throwing", "thrower", "throwing", + "tie", "ties", "tied", "tying", + "time", "times", "timed", "timing", "timer", "timers", + "to", + "today", + "together", + "tomorrow", + "tonight", + "too", + "top", "tops", + "touch", "touches", "touched", "touching", "toucher", "touchers", + "toward", "towards", + "town", "towns", + "train", "trains", "trained", "training", + "travel", "travels", "traveled", "traveling", "travelled", "travelling", "traveler", "travelers", + "tree", "trees", "treed", "treeing", + "trouble", "troubles", "troubled", "troubling", + "true", "truer", "truest", + "trust", "trusts", "trusted", "trusting", "truster", "trusters", + "try", "tries", "tried", "trying", + "turn", "turns", "turned", "turning", + "twenty", "twenties", + "two", "twos", + "under", + "understand", "understands", "understood", "understanding", + "unless", + "until", + "up", "ups", "upped", "upping", + "upon", + "use", "uses", "used", "using", + "usual", + "very", + "view", "views", "viewed", "viewing", + "village", "villages", + "visit", "visits", "visited", "visiting", "visitor", "visitors", + "wait", "waits", "waited", "waiting", + "walk", "walks", "walked", "walking", "walker", "walkers", + "wall", "walls", + "want", "wants", "wanted", "wanting", "wanter", "wanters", + "war", "wars", "warred", "warring", + "warm", "warmer", "warmest", "warms", "warmed", "warming", + "wash", "washes", "washed", "washing", + "watch", "watches", "watched", "watching", + "water", "waters", "watered", "watering", + "way", "ways", + "we", + "wear", "wears", "wore", "worn", "wearing", + "week", "weeks", + "well", "better", "best", "wells", + "west", + "what", + "when", + "where", + "whether", + "which", + "while", + "white", "whites", "whiter", "whitest", + "who", + "whole", "wholes", + "why", + "wide", "wider", "widest", + "wife", "wives", + "will", "wills", "willed", "willing", + "win", "wins", "won", "winning", + "wind", "winds", "wound", "winding", + "window", "windows", + "wish", "wishes", "wished", "wishing", + "with", + "within", + "without", + "woman", "women", + "wonder", "wonders", "wondered", "wondering", + "wood", "woods", + "word", "words", "worded", "wording", + "work", "works", "worked", "working", "worker", "workers", + "world", "worlds", + "worry", "worries", "worried", "worrying", + "worse", "worse", "worst", + "would", + "write", "writes", "wrote", "written", "writing", "writer", + "wrong", "wrongs", "wronged", "wronging", + "year", "years", + "yes", "yeses", + "yet", + "you", + "young", "younger", "youngest", +] From acb73fa7af5ff7224d697f6e9064f4d0689d2ffe Mon Sep 17 00:00:00 2001 From: Josh Stockin Date: Thu, 30 Jul 2020 16:46:24 -0500 Subject: [PATCH 04/15] Update words list Direct copy of XKCD's simplewriter list --- .../simplewriter/words/core_words_list.py | 4281 ++++++++++++++--- 1 file changed, 3628 insertions(+), 653 deletions(-) diff --git a/futaba/cogs/optional/simplewriter/words/core_words_list.py b/futaba/cogs/optional/simplewriter/words/core_words_list.py index 04cee02f..cadb4fc8 100644 --- a/futaba/cogs/optional/simplewriter/words/core_words_list.py +++ b/futaba/cogs/optional/simplewriter/words/core_words_list.py @@ -14,657 +14,3632 @@ # The list of the most frequently used English words, plus their directly related derivatives. core_words_list = [ - "a", "an", - "able", - "about", - "accept", "accepts", "accepted", "accepting", - "across", - "act", "acts", "acted", "acting", - "add", "adds", "added", "adding", - "admit", "admits", "admitted", "admitting", - "after", - "afternoon", "afternoons", - "again", - "against", - "age", "ages", "aged", "aging", - "ago", - "agree", "agrees", "agreed", "agreeing", - "air", "airs", "aired", "airing", - "all", - "allow", "allows", "allowed", "allowing", "allower", "allowers", - "almost", - "along", - "already", - "also", - "always", - "and", - "another", - "answer", "answers", "answered", "answering", - "any", - "anything", - "appear", "appears", "appeared", "appearing", - "approach", "approaches", "approached", "approaching", - "area", "areas", - "arm", "arms", "armed", "arming", - "around", - "art", "arts", - "as", - "ask", "asks", "asked", "asking", - "at", - "away", - "baby", "babies", - "back", "backs", "backed", "backing", - "bad", "worse", "worst", - "bag", "bags", "bagged", "bagging", - "ball", "balls", "balled", "balling", - "bank", "banks", "banked", "banking", - "bar", "bars", - "be", - "bear", "bears", "bore", "born", "bearing", - "beat", "beats", "beat", "beaten", "beating", - "because", - "become", "becomes", "became", "become", "becoming", - "bed", "beds", "bedded", "bedding", - "before", - "begin", "begins", "began", "begun", "beginning", - "behind", - "being", - "believe", "believes", "believed", "believing", "believer", "believers", - "best", "better", "best", "bests", "bested", "besting", - "between", - "big", "bigger", "biggest", - "bit", "bits", "bites", "bit", "biting", "biter", "biters", - "black", "blacks", "blacker", "blackest", "blacking", - "blood", "bloods", - "blow", "blows", "blew", "blown", "blowing", "blower", "blowers", - "blue", "blues", "bluer", "bluest", - "board", "boards", "boarded", "boarding", - "boat", "boats", "boated", "boating", - "body", "bodies", - "book", "books", "booked", "booking", - "both", - "bother", "bothers", "bothered", "bothering", - "bottle", "bottles", "bottled", "bottling", - "bottom", "bottoms", "bottomed", "bottoming", - "box", "boxes", "boxed", "boxing", - "boy", "boys", - "break", "breaks", "broke", "broken", "breaking", "breaker", "breakers", - "bring", "brings", "brought", "bringing", - "brother", "brothers", - "build", "builds", "built", "building", "builder", "builders", - "bus", "buses", "bused", "busing", - "business", "businesses", - "busy", "busier", "busiest", "busied", "busying", - "but", - "buy", "buys", "bought", "buying", - "by", - "call", "calls", "called", "calling", - "can", "cans", - "car", "cars", - "card", "cards", "carded", "carding", - "care", "cares", "cared", "caring", - "carry", "carries", "carried", "carrying", "carrier", "carriers", - "case", "cases", "cased", "casing", - "cat", "cats", "catted", "catting", - "catch", "catches", "caught", "catching", "catcher", - "cause", "causes", "caused", "causing", - "center", "centers", "centered", "centering", - "certain", - "chair", "chairs", - "chance", "chances", "chanced", "chancing", - "change", "changes", "changed", "changing", "changer", - "check", "checks", "checked", "checking", "checker", "checkers", - "child", "children", - "choice", "choices", "choicer", "choicest", - "choose", "chooses", "chose", "chosen", "choosing", "chooser", "choosers", - "church", "churches", - "city", "cities", - "class", "classes", - "clean", "cleaner", "cleanest", "cleans", "cleaned", "cleaning", "cleaners", - "clear", "clearer", "clearest", "clears", "cleared", "clearing", - "close", "closes", "closed", "closing", "closer", "closest", - "clothe", "clothes", "clothed", "clothing", - "coffee", "coffees", - "cold", "colder", "coldest", "colds", - "college", "colleges", - "color", "colors", "colored", "coloring", - "come", "comes", "came", "come", "coming", - "company", "companies", - "consider", "considers", "considered", "considering", - "continue", "continues", "continued", "continuing", - "control", "controls", "controlled", "controlling", - "corner", "corners", "cornered", "cornering", - "could", - "count", "counts", "counted", "counting", "counter", "counters", - "country", "countries", - "couple", "couples", - "course", "courses", "coursed", "coursing", - "cover", "covers", "covered", "covering", - "create", "creates", "created", "creating", - "cross", "crosses", "crossed", "crossing", "crosser", - "cup", "cups", "cupped", "cupping", - "cut", "cuts", "cut", "cutting", - "dad", "dads", - "day", "days", - "dead", "deader", "deadest", - "decide", "decides", "decided", "deciding", - "deep", "deeper", "deepest", - "die", "dies", "died", "dying", - "dinner", "dinners", - "do", "does", "did", "done", "doing", - "doctor", "doctors", "doctored", "doctoring", - "dog", "dogs", "dogged", "dogging", - "door", "doors", - "down", "downs", - "draw", "draws", "drew", "drawn", "drawing", - "dress", "dresses", "dressed", "dressing", - "drink", "drinks", "drank", "drunk", "drinking", "drinker", "drinkers", - "drive", "drives", "drove", "driven", "driving", "driver", "drivers", - "drop", "drops", "dropped", "dropping", - "dry", "drier", "driest", "dries", "dried", "drying", - "during", - "each", - "early", "earlier", "earliest", - "east", - "easy", "easier", "easiest", - "eat", "eats", "ate", "eaten", "eating", - "egg", "eggs", "egged", "egging", - "eight", "eights", - "either", - "else", - "end", "ends", "ended", "ending", - "engine", "engines", - "enjoy", "enjoys", "enjoyed", "enjoying", - "enough", - "enter", "enters", "entered", "entering", - "especially", - "even", "evens", "evened", - "ever", - "every", - "except", "excepts", "excepted", "excepting", - "expect", "expects", "expected", "expecting", - "explain", "explains", "explained", "explaining", "explainer", "explainers", - "extra", "extras", - "eye", "eyes", "eyed", "eying", - "face", "faces", "faced", "facing", - "fact", "facts", - "fall", "falls", "fell", "fallen", "falling", - "family", "families", - "far", "farther", "farthest", "further", "furthest", - "fast", "faster", "fastest", - "father", "fathers", "fathered", "fathering", - "feed", "feeds", "fed", "feeding", - "feel", "feels", "felt", "feeling", - "few", "fewer", "fewest", - "field", "fields", - "fight", "fights", "fought", "fighting", "fighter", "fighters", - "figure", "figures", "figured", "figuring", - "fill", "fills", "filled", "filling", - "final", "finals", - "find", "finds", "found", "finding", "finder", "finders", - "fine", "finer", "finest", "fines", "fined", "fining", - "finish", "finishes", "finished", "finishing", - "fire", "fires", "fired", "firing", - "first", "firsts", - "fish", "fishes", "fished", "fishing", - "fit", "fits", "fitted", "fitting", "fitter", "fittest", - "five", "fives", - "flat", "flatter", "flattest", "flats", "flatted", "flatting", - "floor", "floors", - "fly", "flies", "flew", "flown", "flying", - "follow", "follows", "followed", "following", - "food", "foods", - "foot", "feet", "foots", "footed", "footing", - "for", - "force", "forces", "forced", "forcing", - "forget", "forgets", "forgot", "forgotten", "forgetting", "forgetter", "forgetters", - "form", "forms", "formed", "forming", - "forward", "forwards", "forwarded", "forwarding", - "four", "fours", - "free", "freer", "freest", "frees", "freed", "freeing", - "friend", "friends", - "from", - "front", "fronts", "fronted", "fronting", - "full", "fuller", "fullest", - "fun", - "further", "farther", "farthest", "further", "furthest", - "future", "futures", - "game", "games", "gamed", "gaming", "gamer", "gamers", - "garden", "gardens", "gardened", "gardening", - "get", "gets", "got", "getting", "gotten", - "girl", "girls", - "give", "gives", "gave", "given", "giving", - "glass", "glasses", - "go", "goes", "went", "gone", "going", - "god", "gods", - "good", "better", "best", "goods", - "great", "greater", "greatest", - "green", "greens", "greener", "greenest", - "ground", "grounds", "ground", - "group", "groups", "grouped", "grouping", - "grow", "grows", "grew", "grown", "growing", - "guess", "guesses", "guessed", "guessing", - "guy", "guys", - "hair", "hairs", - "half", "halves", - "hall", "halls", - "hand", "hands", "handed", "handing", - "hang", "hangs", "hung", "hanging", "hanged", - "happen", "happens", "happened", "happening", - "happy", "happier", "happiest", - "hard", "harder", "hardest", - "hate", "hates", "hated", "hating", - "have", "has", "had", "having", - "he", - "head", "heads", "headed", "heading", - "hear", "hears", "heard", "hearing", - "heart", "hearts", - "heat", "heats", "heated", "heating", "heater", "heaters", - "heavy", "heavier", "heaviest", - "hell", "hells", - "hello", "hellos", - "help", "helps", "helped", "helping", - "here", "heres", - "hey", - "hi", - "high", "higher", "highest", - "history", "histories", - "hit", "hits", "hit", "hitting", "hitter", "hitters", - "hold", "holds", "held", "holding", "holder", "holders", - "home", "homes", - "hope", "hopes", "hoped", "hoping", - "horse", "horses", - "hospital", "hospitals", - "hot", "hotter", "hottest", - "hour", "hours", - "house", "houses", "housed", "housing", - "how", - "however", - "hundred", "hundreds", - "husband", "husbands", - "idea", "ideas", - "if", - "imagine", "imagines", "imagined", "imagining", "imaginer", "imaginers", - "important", - "in", - "inside", "insides", - "instead", - "interest", "interests", "interested", "interesting", - "into", - "it", - "job", "jobs", - "join", "joins", "joined", "joining", - "jump", "jumps", "jumped", "jumping", "jumper", "jumpers", - "just", - "keep", "keeps", "kept", "keeping", "keeper", "keepers", - "key", "keys", "keyed", "keying", - "kid", "kids", "kidded", "kidding", - "kill", "kills", "killed", "killing", "killer", "killers", - "kind", "kinds", "kinder", "kindest", - "kitchen", "kitchens", - "knock", "knocks", "knocked", "knocking", - "know", "knows", "knew", "known", "knowing", - "lady", "ladies", - "land", "lands", "landed", "landing", "lander", "landers", - "language", "languages", - "large", "larger", "largest", - "last", "lasts", "lasted", "lasting", - "late", "later", - "laugh", "laughs", "laughed", "laughing", - "law", "laws", - "lay", "lays", "laid", "laying", - "layer", "layers", - "lead", "leads", "led", "leading", "leader", "leaders", - "learn", "learns", "learned", "learning", - "leave", "leaves", "left", "leaving", - "left", "leaves", "left", "leaving", - "leg", "legs", - "less", "lesser", "least", - "let", "lets", "let", "letting", - "letter", "letters", - "lie", "lies", "lay", "lying", "lied", - "life", "lives", - "light", "lights", "lighter", "lightest", "lighted", "lighting", "lit", "lighters", - "like", "likes", "liked", "liking", - "line", "lines", "lined", "lining", - "listen", "listens", "listened", "listening", - "little", "littler", "littlest", "less", "least", - "live", "lives", "lived", "living", - "local", "locals", - "lock", "locks", "locked", "locking", - "long", "longer", "longest", "longs", "longed", "longing", - "look", "looks", "looked", "looking", "looker", "lookers", - "lose", "loses", "lost", "losing", - "lot", "lots", - "love", "loves", "loved", "loving", "lover", "lovers", - "low", "lower", "lowest", - "lunch", "lunches", "lunched", "lunching", - "machine", "machines", "machined", "machining", - "main", "mains", - "make", "makes", "made", "making", "maker", "makers", - "man", "men", - "manage", "manages", "managed", "managing", - "many", "more", "most", - "mark", "marks", "marked", "marking", - "marry", "marries", "married", "marrying", - "matter", "matters", "mattered", "mattering", - "may", "mays", - "maybe", - "mean", "means", "meant", "meaning", "meanest", - "meaning", "meanings", "means", "meant", "meaning", - "meet", "meets", "met", "meeting", - "member", "members", - "mention", "mentions", "mentioned", "mentioning", - "middle", "middles", - "might", "mights", - "mind", "minds", "minded", "minding", - "minute", "minutes", - "miss", "misses", "missed", "missing", - "moment", "moments", - "money", "monies", - "month", "months", - "more", "more", "most", - "morning", "mornings", - "most", "more", "most", - "mother", "mothers", "mothered", "mothering", - "move", "moves", "moved", "moving", - "much", - "music", "musics", - "must", - "name", "names", "named", "naming", - "near", "nearer", "nearest", "nears", "neared", "nearing", - "need", "needs", "needed", "needing", - "never", - "new", "newer", "newest", - "news", - "next", - "nice", "nicer", "nicest", - "night", "nights", - "no", - "none", - "normal", - "north", - "not", - "note", "notes", "noted", "noting", - "notice", "notices", "noticed", "noticing", - "now", - "number", "numbers", "numbered", "numbering", "number", - "of", - "off", "offs", "offed", "offing", - "offer", "offers", "offered", "offering", - "office", "offices", - "often", - "okay", "okays", "okayed", "okaying", - "old", "older", "oldest", - "on", - "once", - "one", "ones", - "only", - "open", "opens", "opened", "opening", - "or", - "order", "orders", "ordered", "ordering", - "other", "others", - "out", "outs", - "over", "overs", - "own", "owns", "owned", "owning", "owner", "owners", - "page", "pages", "paged", "paging", - "paint", "paints", "painted", "painting", - "pair", "pairs", "paired", "pairing", - "paper", "papers", - "parent", "parents", "parented", "parenting", - "part", "parts", "parted", "parting", - "party", "parties", "partied", "partying", - "pass", "passes", "passed", "passing", - "past", "pasts", - "pay", "pays", "paid", "paying", - "people", "persons", "peoples", "peopled", "peopling", - "perfect", "perfects", "perfected", "perfecting", - "perhaps", - "person", "persons", - "pick", "picks", "picked", "picking", - "picture", "pictures", "pictured", "picturing", - "piece", "pieces", "pieced", "piecing", - "place", "places", "placed", "placing", - "plan", "plans", "planned", "planning", - "play", "plays", "played", "playing", "player", "players", - "please", "pleases", "pleased", "pleasing", - "point", "points", "pointed", "pointing", "pointer", "pointers", - "police", "polices", "policed", "policing", - "poor", "poorer", "poorest", - "position", "positions", "positioned", "positioning", - "possible", - "power", "powers", "powered", "powering", - "prepare", "prepares", "prepared", "preparing", - "press", "presses", "pressed", "pressing", - "pretty", "prettier", "prettiest", - "probably", - "problem", "problems", - "pull", "pulls", "pulled", "pulling", "puller", "pullers", - "push", "pushes", "pushed", "pushing", "pusher", "pushers", - "put", "puts", "put", "putting", - "question", "questions", "questioned", "questioning", "questioner", "questioners", - "quick", "quicker", "quickest", - "quiet", "quieter", "quietest", "quiets", "quieted", "quieting", - "quite", - "radio", "radios", - "raise", "raises", "raised", "raising", - "rather", - "read", "reads", "reading", - "ready", "readier", "readiest", "readies", "readied", "readying", - "real", "realer", "realest", - "realize", "realizes", "realized", "realizing", - "really", - "reason", "reasons", "reasoned", "reasoning", - "receive", "receives", "received", "receiving", - "recognize", "recognizes", "recognized", "recognizing", - "red", "reds", "redder", "reddest", - "remember", "remembers", "remembered", "remembering", - "rest", "rests", "rested", "resting", - "return", "returns", "returned", "returning", - "rid", - "right", "righter", "rights", "righted", "righting", - "ring", "rings", "rang", "rung", "ringing", "ringed", - "rise", "rises", "rose", "risen", "rising", - "road", "roads", - "roll", "rolls", "rolled", "rolling", - "room", "rooms", "roomed", "rooming", - "round", "rounder", - "run", "runs", "ran", "run", "running", "runner", "runners", - "safe", "safer", "safest", "safes", - "same", - "save", "saves", "saved", "saving", - "say", "says", "said", "saying", - "school", "schools", "schooled", - "seat", "seats", "seated", "seating", - "second", "seconds", "seconded", "seconding", - "see", "sees", "saw", "seen", "seeing", - "seem", "seems", "seemed", "seeming", - "sell", "sells", "sold", "selling", "seller", "sellers", - "send", "sends", "sent", "sending", "sender", "senders", - "sense", "senses", "sensed", "sensing", - "serious", - "serve", "serves", "served", "serving", - "service", "services", "serviced", "servicing", - "set", "sets", "set", "setting", - "settle", "settles", "settled", "settling", - "seven", "sevens", - "sex", "sexes", - "share", "shares", "shared", "sharing", - "she", - "sheet", "sheets", - "shoe", "shoes", "shod", "shoeing", - "shoot", "shoots", "shot", "shooting", "shooter", "shooters", - "shop", "shops", "shopped", "shopping", - "short", "shorter", "shortest", - "should", - "show", "shows", "showed", "shown", "showing", - "shut", "shuts", "shut", "shutting", - "sick", "sicker", "sickest", - "side", "sides", "sided", "siding", - "sign", "signs", "signed", "signing", - "singe", - "simple", "simpler", "simplest", "simples", - "since", - "sing", "sings", "sang", "sung", "singing", - "single", "singles", "singled", "singling", - "sir", "sirs", - "sister", "sisters", - "sit", "sits", "sat", "sitting", - "six", "sixes", - "size", "sizes", "sized", "sizing", - "sleep", "sleeps", "slept", "sleeping", "sleeper", "sleepers", - "slow", "slower", "slowest", "slows", "slowed", "slowing", - "small", "smaller", "smallest", - "smoke", "smokes", "smoked", "smoking", "smoker", "smokers", - "so", - "some", - "son", "sons", - "soon", - "sorry", "sorrier", "sorriest", - "sort", "sorts", "sorted", "sorting", - "sound", "sounds", "sounded", "sounding", - "south", - "space", "spaces", "spaced", "spacing", - "speak", "speaks", "spoke", "spoken", "speaking", "speaker", "speakers", - "special", - "spend", "spends", "spent", "spending", "spender", "spenders", - "stage", "stages", - "stairs", "stairs", - "stand", "stands", "stood", "standing", - "start", "starts", "started", "starting", "starter", "starting", - "state", "states", "stated", "stating", - "station", "stations", "stationed", "stationing", - "stay", "stays", "stayed", "staying", - "step", "steps", "stepped", "stepping", - "stick", "sticks", "stuck", "sticking", "sticker", "stickers", - "still", - "stop", "stops", "stopped", "stopping", - "story", "stories", - "straight", "straighter", "straightest", "straights", - "street", "streets", - "strike", "strikes", "struck", "striking", - "strong", "stronger", "strongest", - "student", "students", - "study", "studies", "studied", "studying", - "stuff", "stuffs", "stuffed", "stuffing", - "stupid", "stupider", "stupidest", - "such", - "suddenly", - "suggest", "suggests", "suggested", "suggesting", - "suit", "suits", "suited", "suiting", - "summer", "summers", - "sun", "suns", - "suppose", "supposes", "supposed", "supposing", - "sure", "surer", "surest", - "surprise", "surprises", "surprised", "surprising", - "system", "systems", - "table", "tables", - "take", "takes", "took", "taken", "taking", "taker", "takers", - "talk", "talks", "talked", "talking", "talker", "talkers", - "tea", "teas", - "teach", "teaches", "taught", "teaching", "teacher", "teachers", - "team", "teams", "teamed", "teaming", - "television", "televisions", - "tell", "tells", "told", "telling", - "ten", "tens", - "terrible", - "than", - "thank", "thanks", "thanked", "thanking", - "the", - "then", - "there", - "they", - "thing", "things", - "think", "thinks", "thought", "thinking", "thinker", "thinkers", - "thirty", "thirties", - "this", - "though", - "three", "threes", - "through", - "throw", "throws", "threw", "thrown", "throwing", "thrower", "throwing", - "tie", "ties", "tied", "tying", - "time", "times", "timed", "timing", "timer", "timers", - "to", - "today", - "together", - "tomorrow", - "tonight", - "too", - "top", "tops", - "touch", "touches", "touched", "touching", "toucher", "touchers", - "toward", "towards", - "town", "towns", - "train", "trains", "trained", "training", - "travel", "travels", "traveled", "traveling", "travelled", "travelling", "traveler", "travelers", - "tree", "trees", "treed", "treeing", - "trouble", "troubles", "troubled", "troubling", - "true", "truer", "truest", - "trust", "trusts", "trusted", "trusting", "truster", "trusters", - "try", "tries", "tried", "trying", - "turn", "turns", "turned", "turning", - "twenty", "twenties", - "two", "twos", - "under", - "understand", "understands", "understood", "understanding", - "unless", - "until", - "up", "ups", "upped", "upping", - "upon", - "use", "uses", "used", "using", - "usual", - "very", - "view", "views", "viewed", "viewing", - "village", "villages", - "visit", "visits", "visited", "visiting", "visitor", "visitors", - "wait", "waits", "waited", "waiting", - "walk", "walks", "walked", "walking", "walker", "walkers", - "wall", "walls", - "want", "wants", "wanted", "wanting", "wanter", "wanters", - "war", "wars", "warred", "warring", - "warm", "warmer", "warmest", "warms", "warmed", "warming", - "wash", "washes", "washed", "washing", - "watch", "watches", "watched", "watching", - "water", "waters", "watered", "watering", - "way", "ways", - "we", - "wear", "wears", "wore", "worn", "wearing", - "week", "weeks", - "well", "better", "best", "wells", - "west", - "what", - "when", - "where", - "whether", - "which", - "while", - "white", "whites", "whiter", "whitest", - "who", - "whole", "wholes", - "why", - "wide", "wider", "widest", - "wife", "wives", - "will", "wills", "willed", "willing", - "win", "wins", "won", "winning", - "wind", "winds", "wound", "winding", - "window", "windows", - "wish", "wishes", "wished", "wishing", - "with", - "within", - "without", - "woman", "women", - "wonder", "wonders", "wondered", "wondering", - "wood", "woods", - "word", "words", "worded", "wording", - "work", "works", "worked", "working", "worker", "workers", - "world", "worlds", - "worry", "worries", "worried", "worrying", - "worse", "worse", "worst", - "would", - "write", "writes", "wrote", "written", "writing", "writer", - "wrong", "wrongs", "wronged", "wronging", - "year", "years", - "yes", "yeses", - "yet", - "you", - "young", "younger", "youngest", + "a", + "able", + "about", + "above", + "aboves", + "accept", + "accepted", + "accepting", + "accepts", + "across", + "act", + "acted", + "acting", + "actings", + "acts", + "actually", + "add", + "added", + "adding", + "adds", + "admit", + "admits", + "admitted", + "admitting", + "afraid", + "after", + "afternoon", + "afternoons", + "again", + "against", + "age", + "aged", + "ageing", + "ages", + "aging", + "ago", + "agree", + "agreed", + "agreeing", + "agrees", + "ahead", + "air", + "aired", + "airing", + "airings", + "airs", + "alive", + "all", + "allow", + "allowed", + "allower", + "allowers", + "allowing", + "allows", + "almost", + "alone", + "along", + "already", + "also", + "although", + "always", + "am", + "among", + "an", + "and", + "angrier", + "angriest", + "angry", + "animal", + "animals", + "another", + "answer", + "answered", + "answering", + "answers", + "any", + "anybody", + "anymore", + "anyone", + "anything", + "anyway", + "anyways", + "anywhere", + "apartment", + "apartments", + "appear", + "appeared", + "appearing", + "appears", + "approach", + "approached", + "approaches", + "approaching", + "are", + "area", + "areas", + "aren't", + "arm", + "armed", + "arming", + "arms", + "around", + "arrive", + "arrived", + "arrives", + "arriving", + "art", + "arts", + "as", + "ask", + "asked", + "asking", + "asks", + "asleep", + "at", + "ate", + "attack", + "attacked", + "attacking", + "attacks", + "attention", + "aunt", + "aunts", + "avoid", + "avoided", + "avoiding", + "avoids", + "away", + "babies", + "baby", + "back", + "backed", + "backing", + "backings", + "backs", + "bad", + "bag", + "bagged", + "bagger", + "baggers", + "bagging", + "bags", + "ball", + "balled", + "balling", + "balls", + "bank", + "banked", + "banking", + "bankings", + "banks", + "bar", + "bars", + "barely", + "bathroom", + "bathrooms", + "be", + "beach", + "beached", + "beaches", + "beaching", + "bear", + "bearing", + "bears", + "beat", + "beaten", + "beater", + "beaters", + "beating", + "beatings", + "beats", + "beautiful", + "because", + "became", + "become", + "becomes", + "becoming", + "bed", + "bedded", + "bedding", + "beddings", + "bedroom", + "bedrooms", + "beds", + "been", + "beer", + "beers", + "before", + "began", + "begin", + "beginning", + "beginnings", + "begins", + "begun", + "behind", + "being", + "belief", + "beliefs", + "believe", + "believed", + "believer", + "believers", + "believes", + "believing", + "belong", + "belonged", + "belonging", + "belongings", + "belongs", + "below", + "bend", + "bended", + "bender", + "benders", + "bending", + "bends", + "beneath", + "bent", + "bents", + "beside", + "best", + "bested", + "besting", + "bests", + "better", + "bettered", + "bettering", + "betters", + "between", + "beyond", + "big", + "bigger", + "biggest", + "bird", + "birded", + "birding", + "birds", + "bit", + "bite", + "biter", + "biters", + "bites", + "bitey", + "biting", + "bits", + "black", + "blacker", + "blackest", + "blacking", + "blacks", + "blew", + "block", + "blocked", + "blocker", + "blockers", + "blocking", + "blocks", + "blood", + "blooded", + "bloods", + "blow", + "blower", + "blowers", + "blowing", + "blown", + "blows", + "blue", + "blued", + "bluer", + "blues", + "bluest", + "board", + "boarded", + "boarding", + "boardings", + "boards", + "boat", + "boated", + "boating", + "boatings", + "boats", + "bodies", + "body", + "bone", + "boned", + "bones", + "boning", + "book", + "booked", + "booking", + "bookings", + "books", + "boot", + "booted", + "booting", + "boots", + "bore", + "bored", + "boring", + "born", + "both", + "bother", + "bothered", + "botherer", + "botherers", + "bothering", + "bothers", + "bottle", + "bottled", + "bottles", + "bottling", + "bottom", + "bottomed", + "bottoming", + "bottoms", + "bought", + "box", + "boxed", + "boxes", + "boxing", + "boxings", + "boy", + "boys", + "brain", + "brained", + "braining", + "brains", + "branch", + "branched", + "branches", + "branching", + "branchings", + "break", + "breaker", + "breakers", + "breaking", + "breaks", + "breast", + "breasted", + "breasting", + "breasts", + "breath", + "breathe", + "breathed", + "breather", + "breathers", + "breathes", + "breathing", + "breathings", + "breaths", + "bridge", + "bridged", + "bridges", + "bridging", + "bright", + "brighter", + "brightest", + "bring", + "bringer", + "bringers", + "bringing", + "brings", + "broke", + "broken", + "brother", + "brothers", + "brought", + "brown", + "browned", + "browner", + "browning", + "brownings", + "browns", + "build", + "builder", + "builders", + "building", + "buildings", + "builds", + "built", + "burn", + "burned", + "burner", + "burners", + "burning", + "burnings", + "burns", + "burnt", + "bus", + "bused", + "buses", + "busied", + "busier", + "busiest", + "business", + "businesses", + "busing", + "busy", + "busying", + "but", + "buy", + "buyer", + "buyers", + "buying", + "buys", + "by", + "call", + "called", + "calling", + "callings", + "calls", + "calm", + "calmed", + "calmer", + "calmest", + "calming", + "calms", + "came", + "camera", + "cameras", + "can", + "can't", + "cannot", + "cans", + "car", + "cars", + "card", + "carded", + "carding", + "cards", + "care", + "cared", + "careful", + "carefully", + "cares", + "caring", + "carried", + "carrier", + "carriers", + "carries", + "carry", + "carrying", + "case", + "cased", + "cases", + "casing", + "casings", + "cat", + "cats", + "catted", + "catting", + "catch", + "catcher", + "catchers", + "catches", + "catching", + "catchings", + "caught", + "cause", + "caused", + "causer", + "causers", + "causes", + "causing", + "ceiling", + "ceilings", + "center", + "centered", + "centering", + "centers", + "certain", + "certainly", + "chair", + "chairs", + "chance", + "chanced", + "chancer", + "chances", + "chancing", + "change", + "changed", + "changer", + "changers", + "changes", + "changing", + "check", + "checked", + "checker", + "checkers", + "checking", + "checks", + "cheek", + "cheeked", + "cheeking", + "cheeks", + "chest", + "chests", + "child", + "children", + "choice", + "choicer", + "choices", + "choicest", + "choose", + "chooser", + "choosers", + "chooses", + "choosing", + "chose", + "chosen", + "church", + "churches", + "cigarette", + "cigarettes", + "circle", + "circled", + "circles", + "circling", + "cities", + "city", + "class", + "classes", + "clean", + "cleaned", + "cleaner", + "cleaners", + "cleanest", + "cleaning", + "cleanings", + "cleans", + "clear", + "cleared", + "clearer", + "clearest", + "clearing", + "clearings", + "clearly", + "clears", + "climb", + "climbed", + "climber", + "climbers", + "climbing", + "climbings", + "climbs", + "close", + "closed", + "closer", + "closers", + "closes", + "closest", + "closing", + "closings", + "clothe", + "clothed", + "clothes", + "clothing", + "clothings", + "cloud", + "clouded", + "clouding", + "clouds", + "coat", + "coated", + "coating", + "coatings", + "coats", + "coffee", + "coffees", + "cold", + "colder", + "coldest", + "colds", + "college", + "colleges", + "color", + "colored", + "colorer", + "colorers", + "colorful", + "coloring", + "colorings", + "colors", + "come", + "comes", + "coming", + "comings", + "companied", + "companies", + "company", + "companying", + "completely", + "computer", + "computers", + "confuse", + "confused", + "confuses", + "confusing", + "consider", + "considered", + "considering", + "considers", + "continue", + "continued", + "continues", + "continuing", + "control", + "controlled", + "controller", + "controllers", + "controlling", + "controls", + "conversation", + "conversations", + "cool", + "cooled", + "cooler", + "coolers", + "coolest", + "cooling", + "coolings", + "cools", + "cop", + "copped", + "copping", + "cops", + "corner", + "cornered", + "cornering", + "corners", + "could", + "couldn't", + "count", + "counted", + "counter", + "countered", + "countering", + "counters", + "counting", + "counts", + "countries", + "country", + "couple", + "couples", + "course", + "coursed", + "courses", + "coursing", + "cover", + "covered", + "covering", + "coverings", + "covers", + "crazier", + "crazies", + "craziest", + "crazy", + "create", + "created", + "creates", + "creating", + "creature", + "creatures", + "cried", + "cries", + "cry", + "crying", + "cross", + "crossed", + "crosser", + "crosses", + "crossing", + "crossings", + "crowd", + "crowded", + "crowding", + "crowds", + "cup", + "cupped", + "cupping", + "cups", + "cut", + "cuts", + "cutter", + "cutters", + "cutting", + "cuttings", + "dad", + "dads", + "dance", + "danced", + "dances", + "dancing", + "dancings", + "dark", + "darker", + "darkest", + "darkness", + "darknesses", + "darks", + "daughter", + "daughters", + "day", + "days", + "dead", + "deader", + "deadest", + "death", + "deaths", + "decide", + "decided", + "decider", + "deciders", + "decides", + "deciding", + "deep", + "deeper", + "deepest", + "deeps", + "desk", + "desks", + "despite", + "despites", + "did", + "didn't", + "die", + "died", + "dies", + "different", + "dinner", + "dinners", + "direction", + "directions", + "dirt", + "dirts", + "disappear", + "disappeared", + "disappearing", + "disappears", + "discover", + "discovered", + "discovering", + "discovers", + "distance", + "distanced", + "distances", + "distancing", + "do", + "doctor", + "doctored", + "doctoring", + "doctors", + "doer", + "doers", + "does", + "doesn't", + "dog", + "dogged", + "dogging", + "dogs", + "doing", + "doings", + "don't", + "done", + "door", + "doors", + "doorway", + "doorways", + "down", + "downed", + "downing", + "downs", + "dozen", + "dozens", + "drag", + "dragged", + "dragging", + "drags", + "drank", + "draw", + "drawing", + "drawings", + "drawn", + "draws", + "drew", + "dream", + "dreamed", + "dreaming", + "dreams", + "dress", + "dressed", + "dresses", + "dressing", + "dressings", + "dried", + "drier", + "driers", + "dries", + "driest", + "drink", + "drinker", + "drinkers", + "drinking", + "drinks", + "drive", + "driven", + "driver", + "drivers", + "drives", + "driving", + "drivings", + "drop", + "dropped", + "dropper", + "droppers", + "dropping", + "drops", + "drove", + "droves", + "drunk", + "drunks", + "dry", + "dryer", + "dryers", + "drying", + "during", + "dust", + "dusted", + "dusting", + "dusts", + "dying", + "dyings", + "each", + "ear", + "earlier", + "earliest", + "early", + "ears", + "earth", + "earthed", + "earthing", + "earths", + "easier", + "easiest", + "easily", + "east", + "eastest", + "easts", + "easy", + "eat", + "eaten", + "eater", + "eaters", + "eating", + "eats", + "edge", + "edged", + "edges", + "edging", + "edgings", + "effort", + "efforts", + "egg", + "egged", + "egging", + "eggs", + "eight", + "eights", + "either", + "else", + "emptied", + "emptier", + "empties", + "emptiest", + "empty", + "emptying", + "end", + "ended", + "ender", + "enders", + "ending", + "endings", + "ends", + "engine", + "engines", + "enjoy", + "enjoyed", + "enjoyer", + "enjoyers", + "enjoying", + "enjoys", + "enough", + "enoughs", + "enter", + "entered", + "entering", + "enters", + "entire", + "entires", + "especially", + "even", + "evened", + "evens", + "event", + "events", + "ever", + "every", + "everybody", + "everyone", + "everything", + "everywhere", + "exactly", + "except", + "excepted", + "excepting", + "excepts", + "excite", + "excited", + "excites", + "exciting", + "expect", + "expected", + "expecting", + "expects", + "explain", + "explained", + "explainer", + "explainers", + "explaining", + "explains", + "expression", + "expressions", + "extra", + "extras", + "eye", + "eyed", + "eyes", + "eying", + "face", + "faced", + "faces", + "facing", + "facings", + "fact", + "facts", + "fade", + "faded", + "fades", + "fading", + "fail", + "failed", + "failer", + "failers", + "failing", + "failings", + "fails", + "fall", + "fallen", + "faller", + "fallers", + "falling", + "falls", + "familiar", + "familiars", + "families", + "family", + "far", + "farther", + "farthest", + "fast", + "faster", + "fastest", + "father", + "fathered", + "fathering", + "fathers", + "fear", + "feared", + "fearing", + "fears", + "fed", + "feds", + "fee", + "feed", + "feeding", + "feedings", + "feeds", + "feeing", + "feel", + "feeling", + "feelings", + "feels", + "fees", + "feet", + "fell", + "felt", + "few", + "fewer", + "fewest", + "fews", + "field", + "fields", + "fight", + "fighter", + "fighters", + "fighting", + "fightings", + "fights", + "figure", + "figured", + "figures", + "figuring", + "figurings", + "fill", + "filled", + "filling", + "fillings", + "fills", + "final", + "finally", + "finals", + "find", + "finder", + "finders", + "finding", + "findings", + "finds", + "fine", + "fined", + "finer", + "fines", + "finest", + "finger", + "fingered", + "fingering", + "fingers", + "fining", + "finish", + "finished", + "finishes", + "finishing", + "finishings", + "fire", + "fired", + "fires", + "firing", + "firings", + "first", + "firsts", + "fish", + "fished", + "fishes", + "fishing", + "fit", + "fits", + "fitted", + "fitter", + "fitters", + "fittest", + "fitting", + "fittings", + "five", + "fiver", + "fives", + "fix", + "fixed", + "fixer", + "fixers", + "fixes", + "fixing", + "fixings", + "flash", + "flashed", + "flashes", + "flashing", + "flashings", + "flat", + "flats", + "flatted", + "flatter", + "flattest", + "flatting", + "flew", + "flier", + "fliers", + "flies", + "flight", + "flighted", + "flighting", + "flights", + "floor", + "floors", + "flower", + "flowered", + "flowering", + "flowers", + "flown", + "fly", + "flyer", + "flyers", + "flying", + "follow", + "followed", + "following", + "followings", + "follows", + "food", + "foods", + "foot", + "footed", + "footing", + "foots", + "for", + "force", + "forced", + "forces", + "forcing", + "forehead", + "foreheads", + "forest", + "forested", + "foresting", + "forests", + "forever", + "forget", + "forgets", + "forgetter", + "forgetters", + "forgetting", + "forgot", + "forgotten", + "form", + "formed", + "forming", + "forms", + "forward", + "forwarded", + "forwarding", + "forwards", + "fought", + "found", + "four", + "fours", + "free", + "freed", + "freeing", + "freeings", + "freer", + "freers", + "frees", + "freest", + "fresh", + "fresher", + "freshest", + "friend", + "friends", + "from", + "front", + "fronted", + "fronting", + "fronts", + "fuck", + "fucked", + "fucking", + "fuckings", + "fucks", + "full", + "fuller", + "fullest", + "fun", + "funnier", + "funnies", + "funniest", + "funny", + "further", + "furthest", + "future", + "futures", + "game", + "gamed", + "gamer", + "gamers", + "games", + "gaming", + "gamings", + "garden", + "gardened", + "gardening", + "gardens", + "gate", + "gated", + "gates", + "gather", + "gathered", + "gathering", + "gatherings", + "gathers", + "gating", + "gave", + "gently", + "get", + "gets", + "getter", + "getters", + "getting", + "gift", + "gifted", + "gifting", + "gifts", + "girl", + "girls", + "give", + "given", + "givens", + "gives", + "giving", + "glance", + "glanced", + "glances", + "glancing", + "glass", + "glassed", + "glasses", + "go", + "god", + "gods", + "goer", + "goers", + "goes", + "going", + "goings", + "gold", + "golder", + "goldest", + "golds", + "gone", + "good", + "goods", + "got", + "gotten", + "grab", + "grabbed", + "grabber", + "grabbers", + "grabbing", + "grabs", + "grandfather", + "grandfathers", + "grandmother", + "grandmothers", + "grass", + "grasses", + "gray", + "grayed", + "grayer", + "graying", + "grays", + "great", + "greater", + "greatest", + "greats", + "green", + "greened", + "greener", + "greenest", + "greening", + "greens", + "grew", + "grey", + "greyed", + "greyer", + "greying", + "greys", + "ground", + "grounds", + "group", + "grouped", + "grouping", + "groupings", + "groups", + "grow", + "growing", + "grown", + "grows", + "guard", + "guarded", + "guarding", + "guards", + "guess", + "guessed", + "guesses", + "guessing", + "gun", + "gunned", + "gunning", + "guns", + "guy", + "guyed", + "guying", + "guys", + "ha", + "had", + "hair", + "hairs", + "hairy", + "half", + "hall", + "halls", + "hallway", + "hallways", + "halve", + "halved", + "halves", + "halving", + "hand", + "handed", + "handing", + "hands", + "hang", + "hanger", + "hangers", + "hanging", + "hangings", + "hangs", + "happen", + "happened", + "happening", + "happenings", + "happens", + "happier", + "happiest", + "happy", + "hard", + "harder", + "hardest", + "hardly", + "has", + "hat", + "hate", + "hated", + "hates", + "hating", + "hats", + "hatted", + "hatting", + "have", + "haves", + "having", + "he", + "he's", + "head", + "headed", + "heading", + "headings", + "heads", + "hear", + "heard", + "hearing", + "hearings", + "hears", + "heart", + "hearts", + "heat", + "heated", + "heater", + "heaters", + "heating", + "heatings", + "heats", + "heavier", + "heavies", + "heaviest", + "heavy", + "held", + "hell", + "hello", + "hellos", + "hells", + "help", + "helped", + "helper", + "helpers", + "helping", + "helpings", + "helps", + "her", + "here", + "heres", + "hers", + "herself", + "hey", + "he’s", + "hi", + "hid", + "hidden", + "hide", + "hides", + "hiding", + "hidings", + "high", + "higher", + "highest", + "highs", + "hill", + "hilled", + "hilling", + "hills", + "him", + "himself", + "his", + "histories", + "history", + "hit", + "hits", + "hitter", + "hitters", + "hitting", + "hold", + "holder", + "holders", + "holding", + "holdings", + "holds", + "hole", + "holed", + "holes", + "holing", + "home", + "homed", + "homes", + "homing", + "hope", + "hoped", + "hopes", + "hoping", + "horse", + "horses", + "hospital", + "hospitals", + "hot", + "hotel", + "hotels", + "hotter", + "hottest", + "hour", + "hours", + "house", + "housed", + "houses", + "housing", + "housings", + "how", + "however", + "huge", + "huger", + "hugest", + "human", + "humans", + "hundred", + "hundreds", + "hung", + "hurried", + "hurries", + "hurry", + "hurrying", + "hurt", + "hurting", + "hurts", + "husband", + "husbanded", + "husbanding", + "husbands", + "i", + "i'd", + "i'll", + "i'm", + "ice", + "iced", + "ices", + "idea", + "ideas", + "if", + "ignore", + "ignored", + "ignorer", + "ignorers", + "ignores", + "ignoring", + "image", + "imaged", + "images", + "imagine", + "imagined", + "imaginer", + "imaginers", + "imagines", + "imaging", + "imagining", + "imaginings", + "immediately", + "important", + "in", + "information", + "informations", + "ins", + "inside", + "insides", + "instead", + "interest", + "interested", + "interesting", + "interests", + "into", + "is", + "isn't", + "isn’t", + "it", + "its", + "itself", + "i’d", + "i’ll", + "i’m", + "jacket", + "jacketed", + "jackets", + "job", + "jobs", + "join", + "joined", + "joiner", + "joiners", + "joining", + "joins", + "joke", + "joked", + "jokes", + "joking", + "jump", + "jumped", + "jumper", + "jumpers", + "jumping", + "jumps", + "just", + "keep", + "keeper", + "keepers", + "keeping", + "keepings", + "keeps", + "kept", + "key", + "keyed", + "keying", + "keys", + "kick", + "kicked", + "kicker", + "kickers", + "kicking", + "kicks", + "kid", + "kidded", + "kidding", + "kids", + "kill", + "killed", + "killer", + "killers", + "killing", + "killings", + "kills", + "kind", + "kinder", + "kindest", + "kinds", + "kiss", + "kissed", + "kisses", + "kissing", + "kissings", + "kitchen", + "kitchens", + "knee", + "knees", + "knew", + "knife", + "knifed", + "knifes", + "knifing", + "knives", + "knock", + "knocked", + "knocking", + "knockings", + "knocks", + "know", + "knowing", + "knowings", + "known", + "knows", + "ladies", + "lady", + "laid", + "land", + "landed", + "lander", + "landers", + "landing", + "landings", + "lands", + "language", + "languages", + "large", + "larger", + "largest", + "last", + "lasted", + "lasting", + "lasts", + "late", + "later", + "laugh", + "laughed", + "laughing", + "laughs", + "law", + "laws", + "lay", + "layer", + "layered", + "layers", + "laying", + "lays", + "lead", + "leaded", + "leader", + "leaders", + "leading", + "leadings", + "leads", + "leaf", + "leafing", + "leafs", + "lean", + "leaned", + "leaning", + "learn", + "learned", + "learning", + "learns", + "least", + "leave", + "leaved", + "leaves", + "leaving", + "led", + "left", + "leg", + "legs", + "less", + "lesser", + "let", + "lets", + "letter", + "lettered", + "lettering", + "letterings", + "letters", + "letting", + "lettings", + "liar", + "liars", + "lie", + "lied", + "lies", + "life", + "lift", + "lifted", + "lifter", + "lifters", + "lifting", + "lifts", + "light", + "lighted", + "lighter", + "lighters", + "lightest", + "lighting", + "lightings", + "lights", + "like", + "liked", + "liker", + "likers", + "likes", + "liking", + "likings", + "line", + "lined", + "lines", + "lining", + "linings", + "lip", + "lips", + "listen", + "listened", + "listening", + "listens", + "lit", + "little", + "littler", + "littlest", + "live", + "lived", + "lives", + "living", + "local", + "locals", + "lock", + "locked", + "locking", + "lockings", + "locks", + "long", + "longed", + "longer", + "longest", + "longing", + "longings", + "longs", + "look", + "looked", + "looker", + "lookers", + "looking", + "looks", + "lose", + "loses", + "losing", + "lost", + "lot", + "lots", + "loud", + "louder", + "loudest", + "love", + "loved", + "lover", + "lovers", + "loves", + "loving", + "low", + "lower", + "lowered", + "lowering", + "lowers", + "lowest", + "lowing", + "lows", + "luckier", + "luckiest", + "lucky", + "lunch", + "lunched", + "lunches", + "lunching", + "lying", + "machine", + "machined", + "machines", + "machining", + "mad", + "made", + "main", + "mains", + "make", + "maker", + "makers", + "makes", + "making", + "makings", + "man", + "manage", + "managed", + "manages", + "managing", + "manned", + "manning", + "mans", + "many", + "map", + "mapped", + "mapping", + "maps", + "mark", + "marked", + "marking", + "markings", + "marks", + "marriage", + "marriages", + "married", + "marrieds", + "marries", + "marry", + "marrying", + "matter", + "mattered", + "mattering", + "matters", + "may", + "maybe", + "mays", + "me", + "mean", + "meanest", + "meaning", + "meanings", + "means", + "meant", + "meet", + "meeting", + "meetings", + "meets", + "member", + "members", + "memories", + "memory", + "men", + "mens", + "mention", + "mentioned", + "mentioning", + "mentions", + "message", + "messaged", + "messages", + "messaging", + "met", + "metal", + "metals", + "middle", + "middled", + "middles", + "middling", + "middlings", + "might", + "mights", + "mind", + "minded", + "minding", + "minds", + "mine", + "mined", + "mining", + "minings", + "minute", + "minutes", + "mirror", + "mirrored", + "mirroring", + "mirrors", + "miss", + "missed", + "misses", + "missing", + "moment", + "moments", + "money", + "moneys", + "monies", + "month", + "months", + "moon", + "mooned", + "mooning", + "moons", + "more", + "mores", + "morning", + "mornings", + "most", + "mostly", + "mother", + "mothered", + "mothering", + "mothers", + "mountain", + "mountains", + "mouth", + "mouthed", + "mouthing", + "mouths", + "move", + "moved", + "mover", + "movers", + "moves", + "movie", + "movies", + "moving", + "much", + "music", + "musics", + "must", + "musts", + "my", + "myself", + "name", + "named", + "namer", + "namers", + "names", + "naming", + "narrow", + "narrowed", + "narrower", + "narrowest", + "narrowing", + "narrows", + "near", + "neared", + "nearer", + "nearest", + "nearing", + "nearly", + "nears", + "neck", + "necked", + "necking", + "neckings", + "necks", + "need", + "needed", + "needing", + "needs", + "neighbor", + "neighbors", + "never", + "new", + "newer", + "newest", + "news", + "next", + "nice", + "nicer", + "nicest", + "night", + "nights", + "no", + "nobodies", + "nobody", + "nod", + "nodded", + "nodding", + "nods", + "noes", + "noise", + "noised", + "noises", + "noising", + "none", + "nones", + "nor", + "normal", + "normals", + "north", + "norths", + "nos", + "nose", + "nosed", + "noses", + "nosing", + "not", + "note", + "noted", + "notes", + "nothing", + "nothings", + "notice", + "noticed", + "noticer", + "noticers", + "notices", + "noticing", + "noting", + "now", + "nows", + "numb", + "numbed", + "number", + "numbered", + "numbering", + "numberings", + "numbers", + "numbing", + "numbs", + "nurse", + "nursed", + "nurses", + "nursing", + "of", + "off", + "offed", + "offer", + "offered", + "offering", + "offerings", + "offers", + "office", + "officer", + "officered", + "officering", + "officers", + "offices", + "offing", + "offings", + "offs", + "often", + "oh", + "ohs", + "ok", + "ok'd", + "ok'ing", + "okay", + "okay'd", + "okayed", + "okaying", + "okays", + "okay’d", + "ok’d", + "ok’ing", + "old", + "older", + "oldest", + "olds", + "on", + "once", + "one", + "ones", + "only", + "onto", + "open", + "opened", + "opener", + "openers", + "opening", + "openings", + "opens", + "or", + "order", + "ordered", + "ordering", + "orderings", + "orders", + "ors", + "other", + "others", + "our", + "ours", + "out", + "outed", + "outer", + "outing", + "outings", + "outs", + "outside", + "outsides", + "over", + "overs", + "own", + "owned", + "owner", + "owners", + "owning", + "owns", + "page", + "paged", + "pages", + "paging", + "paid", + "pain", + "pained", + "paining", + "pains", + "paint", + "painted", + "painting", + "paintings", + "paints", + "pair", + "paired", + "pairing", + "pairings", + "pairs", + "pale", + "paled", + "paler", + "pales", + "palest", + "palm", + "palmed", + "palming", + "palms", + "pants", + "paper", + "papers", + "parent", + "parented", + "parenting", + "parents", + "part", + "parted", + "partied", + "parties", + "parting", + "partings", + "parts", + "party", + "partying", + "pass", + "passed", + "passes", + "passing", + "past", + "pasts", + "path", + "paths", + "pause", + "paused", + "pauses", + "pausing", + "pay", + "payed", + "paying", + "pays", + "people", + "peopled", + "peoples", + "peopling", + "perfect", + "perfected", + "perfecting", + "perfects", + "perhaps", + "person", + "personal", + "personals", + "persons", + "phone", + "phoned", + "phones", + "phoning", + "photo", + "photos", + "pick", + "picked", + "picking", + "pickings", + "picks", + "picture", + "pictured", + "pictures", + "picturing", + "piece", + "pieced", + "pieces", + "piecing", + "pile", + "piled", + "piles", + "piling", + "pilings", + "pink", + "pinked", + "pinker", + "pinking", + "pinks", + "place", + "placed", + "places", + "placing", + "plan", + "planned", + "planning", + "plans", + "plastic", + "plastics", + "plate", + "plated", + "plates", + "plating", + "platings", + "play", + "played", + "player", + "players", + "playing", + "plays", + "plea", + "pleas", + "please", + "pleased", + "pleases", + "pleasing", + "pleasings", + "pocket", + "pocketed", + "pocketing", + "pockets", + "point", + "pointed", + "pointer", + "pointers", + "pointing", + "points", + "pointy", + "police", + "policed", + "polices", + "policing", + "pool", + "pooled", + "pooling", + "pools", + "poor", + "poorer", + "poorest", + "pop", + "popped", + "popper", + "poppers", + "popping", + "pops", + "porch", + "porches", + "position", + "positioned", + "positioning", + "positions", + "possible", + "possibles", + "pour", + "poured", + "pourer", + "pourers", + "pouring", + "pours", + "power", + "powered", + "powering", + "powers", + "prepare", + "prepared", + "prepares", + "preparing", + "press", + "pressed", + "presser", + "pressers", + "presses", + "pressing", + "pressings", + "pretend", + "pretended", + "pretending", + "pretends", + "prettier", + "prettiest", + "pretty", + "probably", + "problem", + "problems", + "promise", + "promised", + "promiser", + "promisers", + "promises", + "promising", + "prove", + "proved", + "proven", + "prover", + "proves", + "proving", + "pull", + "pulled", + "puller", + "pullers", + "pulling", + "pullings", + "pulls", + "push", + "pushed", + "pusher", + "pushers", + "pushes", + "pushing", + "put", + "puts", + "putting", + "question", + "questioned", + "questioner", + "questioners", + "questioning", + "questionings", + "questions", + "quick", + "quicker", + "quickest", + "quickly", + "quicks", + "quiet", + "quieted", + "quieter", + "quieters", + "quietest", + "quieting", + "quietly", + "quiets", + "quite", + "radio", + "radios", + "rain", + "rained", + "raining", + "rains", + "raise", + "raised", + "raises", + "raising", + "ran", + "rang", + "rather", + "reach", + "reached", + "reacher", + "reachers", + "reaches", + "reaching", + "read", + "reader", + "readers", + "readied", + "readier", + "readies", + "readiest", + "reading", + "readings", + "reads", + "ready", + "readying", + "real", + "realer", + "realest", + "realize", + "realized", + "realizes", + "realizing", + "really", + "reason", + "reasoned", + "reasoning", + "reasons", + "receive", + "received", + "receives", + "receiving", + "recognize", + "recognized", + "recognizer", + "recognizers", + "recognizes", + "recognizing", + "red", + "redder", + "reddest", + "reds", + "refuse", + "refused", + "refuses", + "refusing", + "remain", + "remained", + "remaining", + "remains", + "remember", + "remembered", + "rememberer", + "rememberers", + "remembering", + "remembers", + "remind", + "reminded", + "reminding", + "reminds", + "remove", + "removed", + "removes", + "removing", + "repeat", + "repeated", + "repeating", + "repeatings", + "repeats", + "replied", + "replier", + "repliers", + "replies", + "reply", + "replying", + "rest", + "rested", + "resting", + "rests", + "return", + "returned", + "returning", + "returns", + "reveal", + "revealed", + "revealing", + "revealings", + "reveals", + "rich", + "richer", + "riches", + "richest", + "rid", + "ridden", + "ride", + "rider", + "riders", + "rides", + "riding", + "ridings", + "right", + "righted", + "righter", + "righting", + "rights", + "ring", + "ringed", + "ringing", + "ringings", + "rings", + "rise", + "risen", + "rises", + "rising", + "risings", + "river", + "rivers", + "road", + "roads", + "rock", + "rocked", + "rocking", + "rocks", + "rode", + "roll", + "rolled", + "rolling", + "rollings", + "rolls", + "roof", + "roofed", + "roofing", + "roofings", + "roofs", + "room", + "roomed", + "rooming", + "rooms", + "rooves", + "rose", + "roses", + "round", + "rounded", + "rounder", + "rounders", + "rounding", + "rounds", + "row", + "rowed", + "rowing", + "rowings", + "rows", + "rub", + "rubbed", + "rubbing", + "rubs", + "run", + "rung", + "runner", + "runners", + "running", + "runnings", + "runs", + "rush", + "rushed", + "rushes", + "rushing", + "sad", + "sadder", + "saddest", + "safe", + "safer", + "safes", + "safest", + "said", + "same", + "sames", + "sand", + "sanded", + "sanding", + "sands", + "sang", + "sat", + "save", + "saved", + "saver", + "savers", + "saves", + "saving", + "savings", + "saw", + "saws", + "say", + "saying", + "sayings", + "says", + "scare", + "scared", + "scarer", + "scarers", + "scares", + "scaring", + "scene", + "scenes", + "school", + "schooled", + "schooling", + "schoolings", + "schools", + "scream", + "screamed", + "screaming", + "screams", + "screen", + "screened", + "screening", + "screenings", + "screens", + "sea", + "search", + "searched", + "searches", + "searching", + "seas", + "seat", + "seated", + "seating", + "seatings", + "seats", + "second", + "seconded", + "seconding", + "seconds", + "see", + "seeing", + "seeings", + "seem", + "seemed", + "seeming", + "seems", + "seen", + "sees", + "sell", + "seller", + "sellers", + "selling", + "sells", + "send", + "sender", + "senders", + "sending", + "sends", + "sens", + "sense", + "sensed", + "senses", + "sensing", + "sent", + "serious", + "seriously", + "serve", + "served", + "serves", + "service", + "serviced", + "services", + "servicing", + "serving", + "servings", + "set", + "sets", + "setting", + "settings", + "settle", + "settled", + "settles", + "settling", + "settlings", + "seven", + "sevens", + "several", + "sex", + "sexed", + "sexes", + "sexing", + "shadow", + "shadowed", + "shadowing", + "shadows", + "shake", + "shaken", + "shaker", + "shakers", + "shakes", + "shaking", + "shape", + "shaped", + "shaper", + "shapers", + "shapes", + "shaping", + "share", + "shared", + "sharer", + "sharers", + "shares", + "sharing", + "sharp", + "sharper", + "sharpers", + "sharpest", + "sharps", + "shat", + "she", + "sheet", + "sheeted", + "sheeting", + "sheetings", + "sheets", + "ship", + "shipped", + "shipping", + "ships", + "shirt", + "shirted", + "shirting", + "shirts", + "shit", + "shits", + "shitting", + "shod", + "shoe", + "shoeing", + "shoes", + "shook", + "shoot", + "shooter", + "shooters", + "shooting", + "shootings", + "shoots", + "shop", + "shopped", + "shopping", + "shoppings", + "shops", + "short", + "shorter", + "shortest", + "shorts", + "shot", + "shots", + "should", + "shoulder", + "shoulders", + "shout", + "shouted", + "shouting", + "shouts", + "shove", + "shoved", + "shoves", + "shoving", + "show", + "showed", + "shower", + "showered", + "showering", + "showers", + "showing", + "showings", + "shown", + "shows", + "shrug", + "shrugged", + "shrugging", + "shrugs", + "shut", + "shuts", + "shutting", + "sick", + "sicked", + "sicker", + "sickest", + "sicking", + "sicks", + "side", + "sided", + "sides", + "siding", + "sigh", + "sighed", + "sighing", + "sighs", + "sight", + "sighted", + "sighting", + "sightings", + "sights", + "sign", + "signed", + "signing", + "signings", + "signs", + "silence", + "silenced", + "silences", + "silencing", + "silent", + "silver", + "silvered", + "silvering", + "silvers", + "simple", + "simpler", + "simples", + "simplest", + "simply", + "since", + "sing", + "singe", + "singing", + "singings", + "single", + "singled", + "singles", + "singling", + "sings", + "sir", + "sirs", + "sister", + "sisters", + "sit", + "sits", + "sitting", + "sittings", + "situation", + "situations", + "six", + "sixes", + "size", + "sized", + "sizes", + "sizing", + "skies", + "skin", + "skinned", + "skinning", + "skins", + "sky", + "slam", + "slammed", + "slamming", + "slams", + "sleep", + "sleeper", + "sleepers", + "sleeping", + "sleeps", + "slept", + "slid", + "slide", + "slider", + "sliders", + "slides", + "sliding", + "slightly", + "slip", + "slipped", + "slipping", + "slips", + "slow", + "slowed", + "slower", + "slowest", + "slowing", + "slowly", + "slows", + "small", + "smaller", + "smallest", + "smalls", + "smell", + "smelled", + "smelling", + "smells", + "smelly", + "smile", + "smiled", + "smiler", + "smilers", + "smiles", + "smiling", + "smoke", + "smoked", + "smoker", + "smokers", + "smokes", + "smoking", + "smokings", + "snap", + "snapped", + "snapping", + "snaps", + "snow", + "snowed", + "snowing", + "snows", + "so", + "soft", + "softer", + "softest", + "softly", + "sold", + "soldier", + "soldiered", + "soldiering", + "soldiers", + "some", + "somebodies", + "somebody", + "somehow", + "someone", + "someones", + "something", + "sometimes", + "somewhere", + "somewheres", + "son", + "song", + "songs", + "sons", + "soon", + "sorrier", + "sorriest", + "sorry", + "sort", + "sorted", + "sorting", + "sorts", + "sos", + "soul", + "souls", + "sound", + "sounded", + "sounder", + "sounders", + "soundest", + "sounding", + "soundings", + "sounds", + "south", + "southest", + "space", + "spaced", + "spaces", + "spacing", + "spacings", + "speak", + "speaker", + "speakers", + "speaking", + "speaks", + "special", + "specials", + "spend", + "spender", + "spenders", + "spending", + "spendings", + "spends", + "spent", + "spin", + "spinner", + "spinners", + "spinning", + "spinnings", + "spins", + "spirit", + "spirited", + "spiriting", + "spirits", + "spoke", + "spoken", + "spot", + "spots", + "spotted", + "spotting", + "sprang", + "spread", + "spreader", + "spreaders", + "spreading", + "spreadings", + "spreads", + "spring", + "springing", + "springs", + "sprung", + "spun", + "stage", + "stages", + "stair", + "stairs", + "stand", + "standing", + "standings", + "stands", + "star", + "stare", + "stared", + "starer", + "starers", + "stares", + "staring", + "starred", + "starring", + "stars", + "start", + "started", + "starter", + "starters", + "starting", + "starts", + "state", + "stated", + "states", + "stating", + "station", + "stationed", + "stationing", + "stations", + "stay", + "stayed", + "staying", + "stays", + "steal", + "stealer", + "stealers", + "stealing", + "steals", + "step", + "stepped", + "stepping", + "steps", + "stick", + "sticker", + "stickers", + "sticking", + "sticks", + "still", + "stole", + "stolen", + "stomach", + "stomached", + "stomaches", + "stomachs", + "stone", + "stones", + "stood", + "stop", + "stopped", + "stopper", + "stoppers", + "stopping", + "stops", + "store", + "stored", + "stores", + "stories", + "storing", + "storm", + "stormed", + "storming", + "storms", + "story", + "straight", + "straighter", + "straightest", + "straights", + "strange", + "stranger", + "strangers", + "strangest", + "street", + "streets", + "stretch", + "stretched", + "stretches", + "stretching", + "strike", + "strikes", + "striking", + "strikings", + "strong", + "stronger", + "strongest", + "struck", + "stuck", + "student", + "students", + "studied", + "studies", + "study", + "studying", + "stuff", + "stuffed", + "stuffing", + "stuffings", + "stuffs", + "stupid", + "stupider", + "stupidest", + "stupids", + "such", + "suddenly", + "suggest", + "suggested", + "suggesting", + "suggests", + "suit", + "suite", + "suited", + "suites", + "suiting", + "suitings", + "suits", + "summer", + "summers", + "sun", + "sung", + "sunned", + "sunning", + "suns", + "suppose", + "supposed", + "supposes", + "supposing", + "sure", + "surer", + "surest", + "surface", + "surfaced", + "surfaces", + "surfacing", + "surprise", + "surprised", + "surprises", + "surprising", + "sweet", + "sweeter", + "sweetest", + "sweets", + "swing", + "swinger", + "swingers", + "swinging", + "swings", + "swung", + "system", + "systems", + "table", + "tables", + "take", + "taken", + "taker", + "takers", + "takes", + "taking", + "takings", + "talk", + "talked", + "talker", + "talkers", + "talking", + "talks", + "tall", + "taller", + "tallest", + "taught", + "tea", + "teach", + "teacher", + "teachers", + "teaches", + "teaching", + "teachings", + "team", + "teamed", + "teaming", + "teams", + "tear", + "teared", + "tearing", + "tears", + "teas", + "teeth", + "teethed", + "teething", + "television", + "televisions", + "tell", + "telling", + "tellings", + "tells", + "ten", + "tens", + "terrible", + "than", + "thank", + "thanked", + "thanking", + "thanks", + "that", + "the", + "their", + "them", + "themselves", + "then", + "thens", + "there", + "these", + "they", + "thick", + "thicker", + "thickest", + "thicks", + "thin", + "thing", + "things", + "think", + "thinking", + "thinkings", + "thinks", + "thinned", + "thinner", + "thinners", + "thinnest", + "thinning", + "thins", + "third", + "thirds", + "thirties", + "thirty", + "this", + "those", + "though", + "thought", + "thoughts", + "three", + "threes", + "threw", + "throat", + "throats", + "through", + "throw", + "thrower", + "throwers", + "throwing", + "thrown", + "throws", + "tie", + "tied", + "ties", + "time", + "timed", + "timer", + "timers", + "times", + "timing", + "timings", + "tinier", + "tiniest", + "tiny", + "tire", + "tired", + "tires", + "tiring", + "to", + "today", + "todays", + "together", + "told", + "tomorrow", + "tomorrows", + "tone", + "toned", + "tones", + "tongue", + "tongued", + "tonguer", + "tonguers", + "tongues", + "tonguing", + "tonight", + "tonights", + "toning", + "too", + "took", + "tooth", + "toothed", + "toothy", + "top", + "topped", + "topping", + "toppings", + "tops", + "tore", + "torn", + "toss", + "tossed", + "tosses", + "tossing", + "touch", + "touched", + "toucher", + "touchers", + "touches", + "touching", + "touchings", + "toward", + "towards", + "town", + "towns", + "track", + "tracked", + "tracking", + "tracks", + "train", + "trained", + "training", + "trains", + "travel", + "traveled", + "traveler", + "travelers", + "traveling", + "travelings", + "travelled", + "traveller", + "travellers", + "travelling", + "travellings", + "travels", + "tree", + "treed", + "treeing", + "trees", + "tried", + "tries", + "trip", + "tripe", + "tripped", + "tripping", + "trips", + "trouble", + "troubled", + "troubles", + "troubling", + "truck", + "trucked", + "trucking", + "truckings", + "trucks", + "true", + "trued", + "truer", + "trues", + "truest", + "trust", + "trusted", + "truster", + "trusters", + "trusting", + "trusts", + "truth", + "truths", + "try", + "trying", + "turn", + "turned", + "turning", + "turnings", + "turns", + "tv", + "tvs", + "twenties", + "twenty", + "twice", + "two", + "twos", + "tying", + "uncle", + "uncles", + "under", + "understand", + "understanding", + "understandings", + "understands", + "understood", + "unless", + "until", + "up", + "upon", + "upped", + "upping", + "ups", + "us", + "use", + "used", + "uses", + "using", + "usual", + "usually", + "very", + "view", + "viewed", + "viewing", + "viewings", + "views", + "village", + "villages", + "visit", + "visited", + "visiting", + "visitor", + "visitors", + "visits", + "voice", + "voiced", + "voices", + "voicing", + "wait", + "waited", + "waiting", + "waitings", + "waits", + "wake", + "waked", + "wakes", + "waking", + "wakings", + "walk", + "walked", + "walker", + "walkers", + "walking", + "walkings", + "walks", + "wall", + "walled", + "walling", + "walls", + "want", + "wanted", + "wanter", + "wanters", + "wanting", + "wants", + "war", + "waring", + "warm", + "warmed", + "warmer", + "warmers", + "warmest", + "warming", + "warms", + "warred", + "warring", + "wars", + "was", + "wash", + "washed", + "washes", + "washing", + "washings", + "wasn't", + "wasn’t", + "watch", + "watched", + "watches", + "watching", + "watchings", + "water", + "watered", + "watering", + "waterings", + "waters", + "watery", + "wave", + "waved", + "waver", + "wavers", + "waves", + "waving", + "way", + "ways", + "we", + "wear", + "wearing", + "wearings", + "wears", + "wed", + "wedded", + "wedding", + "weddings", + "weds", + "week", + "weeks", + "weight", + "weighted", + "weighting", + "weightings", + "weights", + "well", + "wells", + "went", + "were", + "west", + "westest", + "wests", + "wet", + "wets", + "wetter", + "wetters", + "wettest", + "wetting", + "what", + "whatever", + "wheel", + "wheeled", + "wheeling", + "wheelings", + "wheels", + "when", + "where", + "whether", + "which", + "while", + "whisper", + "whispered", + "whispering", + "whispers", + "white", + "whited", + "whiter", + "whites", + "whitest", + "whiting", + "who", + "who's", + "whole", + "wholes", + "whom", + "whose", + "who’s", + "why", + "whys", + "wide", + "wider", + "widest", + "wife", + "wild", + "wilder", + "wildest", + "wilds", + "will", + "willed", + "willing", + "wills", + "win", + "wind", + "winded", + "winding", + "windings", + "window", + "windows", + "winds", + "windy", + "wine", + "wines", + "wing", + "winged", + "winging", + "wings", + "winning", + "wins", + "winter", + "wintered", + "wintering", + "winters", + "wipe", + "wiped", + "wiper", + "wipers", + "wipes", + "wiping", + "wish", + "wished", + "wishes", + "wishing", + "with", + "within", + "without", + "wives", + "woke", + "woken", + "woman", + "womans", + "women", + "womens", + "won", + "won't", + "wonder", + "wondered", + "wondering", + "wonders", + "won’t", + "wood", + "wooden", + "woods", + "word", + "worded", + "wording", + "wordings", + "words", + "wore", + "work", + "worked", + "worker", + "workers", + "working", + "workings", + "works", + "world", + "worlds", + "worn", + "worried", + "worries", + "worry", + "worrying", + "worse", + "worst", + "would", + "wouldn't", + "wouldn’t", + "wound", + "wrap", + "wrapped", + "wrapping", + "wrappings", + "wraps", + "write", + "writer", + "writers", + "writes", + "writing", + "writings", + "written", + "wrong", + "wronged", + "wronging", + "wrongs", + "wrote", + "yard", + "yards", + "yeah", + "year", + "years", + "yell", + "yelled", + "yelling", + "yellow", + "yellowed", + "yellower", + "yellowing", + "yellows", + "yells", + "yes", + "yeses", + "yet", + "you", + "young", + "younger", + "youngest", + "youngling", + "younglings", + "your", + "yourself" ] From 1cbf577244d566203398f1270f2801a652952726 Mon Sep 17 00:00:00 2001 From: Josh Stockin Date: Thu, 30 Jul 2020 16:56:55 -0500 Subject: [PATCH 05/15] Bring cog setup/teardown up to date (strinking/futaba#327) --- futaba/cogs/optional/simplewriter/__init__.py | 14 ++++++++++++-- futaba/cogs/optional/simplewriter/core.py | 11 ++++++----- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/futaba/cogs/optional/simplewriter/__init__.py b/futaba/cogs/optional/simplewriter/__init__.py index 3e0b01cf..2da52d2c 100644 --- a/futaba/cogs/optional/simplewriter/__init__.py +++ b/futaba/cogs/optional/simplewriter/__init__.py @@ -14,7 +14,17 @@ def setup(bot): + setup_simplewriter(bot) + + +def setup_simplewriter(bot): cog = SimplewriterCog(bot) - bot.add_listener(cog.check_message, "on_message") - bot.add_listener(cog.check_message_edit, "on_message_edit") bot.add_cog(cog) + + +def teardown(bot): + teardown_simplewriter(bot) + + +def teardown_simplewriter(bot): + bot.remove_cog(SimplewriterCog.__name__) diff --git a/futaba/cogs/optional/simplewriter/core.py b/futaba/cogs/optional/simplewriter/core.py index 70c44dbc..06a51942 100644 --- a/futaba/cogs/optional/simplewriter/core.py +++ b/futaba/cogs/optional/simplewriter/core.py @@ -35,20 +35,21 @@ class SimplewriterCog(AbstractCog): def __init__(self, bot): super().__init__(bot) + self.bot.add_listener(self.on_message, "on_message") + self.bot.add_listener(self.on_message_edit, "on_message_edit") self.journal = bot.get_broadcaster("/simplewriter") def setup(self): pass def __unload(self): - self.bot.remove_listener(self.check_message, "on_message") - self.bot.remove_listener(self.check_message_edit, "on_message_edit") + self.bot.remove_listener(self.on_message, "on_message") + self.bot.remove_listener(self.on_message_edit, "on_message_edit") - # TODO: move check_message and check_message_edit to own hook files - async def check_message(cog, message): + async def on_message(cog, message): if message.author.id == cog.bot.user.id: return await message.channel.send(message.id) - async def check_message_edit(cog, before, after): + async def on_message_edit(cog, before, after): pass From df4686c0f278b11e5b30114a5cae4188d2841c73 Mon Sep 17 00:00:00 2001 From: Josh Stockin Date: Thu, 30 Jul 2020 20:39:35 -0500 Subject: [PATCH 06/15] Finish simplewriter cog --- futaba/cogs/optional/simplewriter/__init__.py | 4 +- futaba/cogs/optional/simplewriter/core.py | 33 ++---- .../cogs/optional/simplewriter/listeners.py | 28 +++++ .../optional/simplewriter/simple_filter.py | 105 ++++++++++++++++++ .../optional/simplewriter/words/__init__.py | 2 +- .../simplewriter/words/core_words_list.py | 4 +- 6 files changed, 149 insertions(+), 27 deletions(-) create mode 100644 futaba/cogs/optional/simplewriter/listeners.py create mode 100644 futaba/cogs/optional/simplewriter/simple_filter.py diff --git a/futaba/cogs/optional/simplewriter/__init__.py b/futaba/cogs/optional/simplewriter/__init__.py index 2da52d2c..855712c0 100644 --- a/futaba/cogs/optional/simplewriter/__init__.py +++ b/futaba/cogs/optional/simplewriter/__init__.py @@ -2,7 +2,7 @@ # cogs/optional/simplewriter/__init__.py # # futaba - A Discord Mod bot for the Programming server -# Copyright (c) 2017-2020 Jake Richardson, Ammon Smith, jackylam5, Joshua 'joshuas3' Stockin +# Copyright (c) 2017-2020 Jake Richardson, Ammon Smith, jackylam5 # # futaba is available free of charge under the terms of the MIT # License. You are free to redistribute and/or modify it under those @@ -19,6 +19,8 @@ def setup(bot): def setup_simplewriter(bot): cog = SimplewriterCog(bot) + bot.add_listener(cog.on_message, "on_message") + bot.add_listener(cog.on_message_edit, "on_message_edit") bot.add_cog(cog) diff --git a/futaba/cogs/optional/simplewriter/core.py b/futaba/cogs/optional/simplewriter/core.py index 06a51942..8942b9be 100644 --- a/futaba/cogs/optional/simplewriter/core.py +++ b/futaba/cogs/optional/simplewriter/core.py @@ -2,7 +2,7 @@ # cogs/optional/simplewriter/core.py # # futaba - A Discord Mod bot for the Programming server -# Copyright (c) 2017-2020 Jake Richardson, Ammon Smith, jackylam5, Joshua 'joshuas3' Stockin +# Copyright (c) 2017-2020 Jake Richardson, Ammon Smith, jackylam5 # # futaba is available free of charge under the terms of the MIT # License. You are free to redistribute and/or modify it under those @@ -11,45 +11,32 @@ # """ -A thing that only lets you write stuff in a certain word box, but only if it's made up of the first ten hundred most-used words of the language. +A thing that lets you write stuff in one word box, but only if it's made up of +the first ten hundred most used words of the language. """ -# REMOVE THIS IN REGULAR COGS: -# pylint: disable=unused-import - -import asyncio import logging -import math - -import discord -from futaba import permissions +from futaba.utils import async_partial from futaba.cogs.abc import AbstractCog -from futaba.exceptions import CommandFailed + +from .listeners import on_message, on_message_edit logger = logging.getLogger(__name__) class SimplewriterCog(AbstractCog): - __slots__ = ("journal",) + __slots__ = ("journal", "on_message", "on_message_edit") def __init__(self, bot): super().__init__(bot) - self.bot.add_listener(self.on_message, "on_message") - self.bot.add_listener(self.on_message_edit, "on_message_edit") + self.on_message = async_partial(on_message, self) + self.on_message_edit = async_partial(on_message_edit, self) self.journal = bot.get_broadcaster("/simplewriter") def setup(self): pass - def __unload(self): + def cog_unload(self): self.bot.remove_listener(self.on_message, "on_message") self.bot.remove_listener(self.on_message_edit, "on_message_edit") - - async def on_message(cog, message): - if message.author.id == cog.bot.user.id: - return - await message.channel.send(message.id) - - async def on_message_edit(cog, before, after): - pass diff --git a/futaba/cogs/optional/simplewriter/listeners.py b/futaba/cogs/optional/simplewriter/listeners.py new file mode 100644 index 00000000..d6d94cd1 --- /dev/null +++ b/futaba/cogs/optional/simplewriter/listeners.py @@ -0,0 +1,28 @@ +# +# cogs/optional/simplewriter/listeners.py +# +# futaba - A Discord Mod bot for the Programming server +# Copyright (c) 2017-2020 Jake Richardson, Ammon Smith, jackylam5 +# +# futaba is available free of charge under the terms of the MIT +# License. You are free to redistribute and/or modify it under those +# terms. It is distributed in the hopes that it will be useful, but +# WITHOUT ANY WARRANTY. See the LICENSE file for more details. +# + +""" +discord.py listeners for simplewriter +""" + +from .simple_filter import simple_filter + +__all__ = ["on_message", "on_message_edit"] + + +async def on_message(cog, message): + await simple_filter(cog, message) + + +async def on_message_edit(cog, before, after): + if after: + await simple_filter(cog, after) diff --git a/futaba/cogs/optional/simplewriter/simple_filter.py b/futaba/cogs/optional/simplewriter/simple_filter.py new file mode 100644 index 00000000..d628ba04 --- /dev/null +++ b/futaba/cogs/optional/simplewriter/simple_filter.py @@ -0,0 +1,105 @@ +# +# cogs/optional/simplewriter/simple_filter.py +# +# futaba - A Discord Mod bot for the Programming server +# Copyright (c) 2017-2020 Jake Richardson, Ammon Smith, jackylam5 +# +# futaba is available free of charge under the terms of the MIT +# License. You are free to redistribute and/or modify it under those +# terms. It is distributed in the hopes that it will be useful, but +# WITHOUT ANY WARRANTY. See the LICENSE file for more details. +# + +""" +Filters messages through the allowed wordlist, deleting unallowed words. +""" + +import logging +import re +from datetime import datetime + +import discord +from discord import MessageType + +from futaba.utils import plural + +from .words import core_words_list + +logger = logging.getLogger(__name__) + +__all__ = ["simple_filter"] + + +async def simple_filter(cog, message): + """ + Filter Discord messages for the simplewriter channel + """ + + # Not DMs + if message.guild is None: + return + + # Not a special message type + if message.type != MessageType.default: + return + + # Make sure we actually can remove this message + if not message.channel.permissions_for(message.guild.me).manage_messages: + return + + # Don't filter bot messages + if message.author.id == cog.bot.user.id: + return + + if message.channel.id != int( + cog.bot.config.optional_cogs["simplewriter"]["channel-id"] + ): + return + + logger.debug( + "Message in simplewriter channel. Checking message id %d (by '%s' (%d)) against simplewriter core words list", + message.id, + message.author.name, + message.author.id, + ) + + split = re.split(r"\W+", message.content) + bad_words = [] + for word in split: + cleaned = word.strip() + if not cleaned.lower() in core_words_list: + if not cleaned in bad_words: + try: # test to see if input is a number + int(cleaned) + except ValueError: + bad_words.append(cleaned) + + if len(bad_words) > 0: + await message.delete() + + content = ( + f"Message id {message.id} (by '{message.author.name}' ({message.author.id})) filtered from " + "simplewriter channel" + ) + cog.journal.send("message/delete", message.guild, content) + + bad_words_plural = plural(len(bad_words)) + article = "some" if len(bad_words) > 1 else "a" + + help_embed = discord.Embed() + help_embed.color = discord.Color.red() + help_embed.title = f"You used {article} less simple word{bad_words_plural}." + help_embed.description = ( + f"Your message in {message.channel.mention} has been removed.\n" + "You can use [xkcd's simplewriter](https://xkcd.com/simplewriter) " + "to see what words are valid in this channel." + ) + help_embed.timestamp = datetime.now() + help_embed.add_field(name="Full message", value=message.content) + help_embed.add_field( + name=f"Bad word{bad_words_plural}", value=", ".join(bad_words) + ) + help_embed.set_footer(text=message.id) + + dm_channel = message.author.dm_channel or await message.author.create_dm() + await dm_channel.send(embed=help_embed) diff --git a/futaba/cogs/optional/simplewriter/words/__init__.py b/futaba/cogs/optional/simplewriter/words/__init__.py index 99f8abc2..c368f8e9 100644 --- a/futaba/cogs/optional/simplewriter/words/__init__.py +++ b/futaba/cogs/optional/simplewriter/words/__init__.py @@ -2,7 +2,7 @@ # cogs/optional/simplewriter/words/__init__.py # # futaba - A Discord Mod bot for the Programming server -# Copyright (c) 2017-2020 Jake Richardson, Ammon Smith, jackylam5, Joshua 'joshuas3' Stockin +# Copyright (c) 2017-2020 Jake Richardson, Ammon Smith, jackylam5 # # futaba is available free of charge under the terms of the MIT # License. You are free to redistribute and/or modify it under those diff --git a/futaba/cogs/optional/simplewriter/words/core_words_list.py b/futaba/cogs/optional/simplewriter/words/core_words_list.py index cadb4fc8..e7f4e150 100644 --- a/futaba/cogs/optional/simplewriter/words/core_words_list.py +++ b/futaba/cogs/optional/simplewriter/words/core_words_list.py @@ -2,7 +2,7 @@ # cogs/optional/simplewriter/words/core_words_list.py # # futaba - A Discord Mod bot for the Programming server -# Copyright (c) 2017-2020 Jake Richardson, Ammon Smith, jackylam5, Joshua 'joshuas3' Stockin +# Copyright (c) 2017-2020 Jake Richardson, Ammon Smith, jackylam5 # # futaba is available free of charge under the terms of the MIT # License. You are free to redistribute and/or modify it under those @@ -3641,5 +3641,5 @@ "youngling", "younglings", "your", - "yourself" + "yourself", ] From 3da7740330c921a5cb6f24fb3e842f79ba20bdfc Mon Sep 17 00:00:00 2001 From: Josh Stockin Date: Thu, 30 Jul 2020 20:44:58 -0500 Subject: [PATCH 07/15] Fix formatting issues; disable pylint warning on words list pylint warns about too many lines in core_words_list.py. I'd compact the list to use less lines, but black automatically re-expands it. --- futaba/cogs/optional/simplewriter/core.py | 6 ++---- futaba/cogs/optional/simplewriter/words/__init__.py | 4 +--- futaba/cogs/optional/simplewriter/words/core_words_list.py | 2 ++ 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/futaba/cogs/optional/simplewriter/core.py b/futaba/cogs/optional/simplewriter/core.py index 8942b9be..c3e9ddd1 100644 --- a/futaba/cogs/optional/simplewriter/core.py +++ b/futaba/cogs/optional/simplewriter/core.py @@ -13,17 +13,15 @@ """ A thing that lets you write stuff in one word box, but only if it's made up of the first ten hundred most used words of the language. -""" -import logging +(https://xkcd.com/simplewriter) +""" from futaba.utils import async_partial from futaba.cogs.abc import AbstractCog from .listeners import on_message, on_message_edit -logger = logging.getLogger(__name__) - class SimplewriterCog(AbstractCog): __slots__ = ("journal", "on_message", "on_message_edit") diff --git a/futaba/cogs/optional/simplewriter/words/__init__.py b/futaba/cogs/optional/simplewriter/words/__init__.py index c368f8e9..040ed691 100644 --- a/futaba/cogs/optional/simplewriter/words/__init__.py +++ b/futaba/cogs/optional/simplewriter/words/__init__.py @@ -10,8 +10,6 @@ # WITHOUT ANY WARRANTY. See the LICENSE file for more details. # -__all__ = [ - "core_words_list", -] +__all__ = ["core_words_list"] from .core_words_list import core_words_list diff --git a/futaba/cogs/optional/simplewriter/words/core_words_list.py b/futaba/cogs/optional/simplewriter/words/core_words_list.py index e7f4e150..b08145ce 100644 --- a/futaba/cogs/optional/simplewriter/words/core_words_list.py +++ b/futaba/cogs/optional/simplewriter/words/core_words_list.py @@ -12,6 +12,8 @@ __all__ = ["core_words_list"] +# pylint: disable=too-many-lines + # The list of the most frequently used English words, plus their directly related derivatives. core_words_list = [ "a", From 967d3c3d07385922d0468510b7a6732b0deb7a04 Mon Sep 17 00:00:00 2001 From: Josh Stockin Date: Thu, 30 Jul 2020 20:51:50 -0500 Subject: [PATCH 08/15] Stop adding empty strings to simplewriter's bad words list --- futaba/cogs/optional/simplewriter/simple_filter.py | 1 + 1 file changed, 1 insertion(+) diff --git a/futaba/cogs/optional/simplewriter/simple_filter.py b/futaba/cogs/optional/simplewriter/simple_filter.py index d628ba04..a67cd5a5 100644 --- a/futaba/cogs/optional/simplewriter/simple_filter.py +++ b/futaba/cogs/optional/simplewriter/simple_filter.py @@ -67,6 +67,7 @@ async def simple_filter(cog, message): bad_words = [] for word in split: cleaned = word.strip() + if not cleaned: continue if not cleaned.lower() in core_words_list: if not cleaned in bad_words: try: # test to see if input is a number From 210e310cb499b5ceb7ec5c63127f504d387632d5 Mon Sep 17 00:00:00 2001 From: Josh Stockin Date: Thu, 30 Jul 2020 22:52:58 -0500 Subject: [PATCH 09/15] Move words list to txt file, read at runtime --- .../optional/simplewriter/words/__init__.py | 2 +- .../simplewriter/words/core_words_list.py | 3647 ----------------- .../simplewriter/words/core_words_list.txt | 1 + .../cogs/optional/simplewriter/words/words.py | 24 + 4 files changed, 26 insertions(+), 3648 deletions(-) delete mode 100644 futaba/cogs/optional/simplewriter/words/core_words_list.py create mode 100644 futaba/cogs/optional/simplewriter/words/core_words_list.txt create mode 100644 futaba/cogs/optional/simplewriter/words/words.py diff --git a/futaba/cogs/optional/simplewriter/words/__init__.py b/futaba/cogs/optional/simplewriter/words/__init__.py index 040ed691..41c6233e 100644 --- a/futaba/cogs/optional/simplewriter/words/__init__.py +++ b/futaba/cogs/optional/simplewriter/words/__init__.py @@ -12,4 +12,4 @@ __all__ = ["core_words_list"] -from .core_words_list import core_words_list +from .words import core_words_list diff --git a/futaba/cogs/optional/simplewriter/words/core_words_list.py b/futaba/cogs/optional/simplewriter/words/core_words_list.py deleted file mode 100644 index b08145ce..00000000 --- a/futaba/cogs/optional/simplewriter/words/core_words_list.py +++ /dev/null @@ -1,3647 +0,0 @@ -# -# cogs/optional/simplewriter/words/core_words_list.py -# -# futaba - A Discord Mod bot for the Programming server -# Copyright (c) 2017-2020 Jake Richardson, Ammon Smith, jackylam5 -# -# futaba is available free of charge under the terms of the MIT -# License. You are free to redistribute and/or modify it under those -# terms. It is distributed in the hopes that it will be useful, but -# WITHOUT ANY WARRANTY. See the LICENSE file for more details. -# - -__all__ = ["core_words_list"] - -# pylint: disable=too-many-lines - -# The list of the most frequently used English words, plus their directly related derivatives. -core_words_list = [ - "a", - "able", - "about", - "above", - "aboves", - "accept", - "accepted", - "accepting", - "accepts", - "across", - "act", - "acted", - "acting", - "actings", - "acts", - "actually", - "add", - "added", - "adding", - "adds", - "admit", - "admits", - "admitted", - "admitting", - "afraid", - "after", - "afternoon", - "afternoons", - "again", - "against", - "age", - "aged", - "ageing", - "ages", - "aging", - "ago", - "agree", - "agreed", - "agreeing", - "agrees", - "ahead", - "air", - "aired", - "airing", - "airings", - "airs", - "alive", - "all", - "allow", - "allowed", - "allower", - "allowers", - "allowing", - "allows", - "almost", - "alone", - "along", - "already", - "also", - "although", - "always", - "am", - "among", - "an", - "and", - "angrier", - "angriest", - "angry", - "animal", - "animals", - "another", - "answer", - "answered", - "answering", - "answers", - "any", - "anybody", - "anymore", - "anyone", - "anything", - "anyway", - "anyways", - "anywhere", - "apartment", - "apartments", - "appear", - "appeared", - "appearing", - "appears", - "approach", - "approached", - "approaches", - "approaching", - "are", - "area", - "areas", - "aren't", - "arm", - "armed", - "arming", - "arms", - "around", - "arrive", - "arrived", - "arrives", - "arriving", - "art", - "arts", - "as", - "ask", - "asked", - "asking", - "asks", - "asleep", - "at", - "ate", - "attack", - "attacked", - "attacking", - "attacks", - "attention", - "aunt", - "aunts", - "avoid", - "avoided", - "avoiding", - "avoids", - "away", - "babies", - "baby", - "back", - "backed", - "backing", - "backings", - "backs", - "bad", - "bag", - "bagged", - "bagger", - "baggers", - "bagging", - "bags", - "ball", - "balled", - "balling", - "balls", - "bank", - "banked", - "banking", - "bankings", - "banks", - "bar", - "bars", - "barely", - "bathroom", - "bathrooms", - "be", - "beach", - "beached", - "beaches", - "beaching", - "bear", - "bearing", - "bears", - "beat", - "beaten", - "beater", - "beaters", - "beating", - "beatings", - "beats", - "beautiful", - "because", - "became", - "become", - "becomes", - "becoming", - "bed", - "bedded", - "bedding", - "beddings", - "bedroom", - "bedrooms", - "beds", - "been", - "beer", - "beers", - "before", - "began", - "begin", - "beginning", - "beginnings", - "begins", - "begun", - "behind", - "being", - "belief", - "beliefs", - "believe", - "believed", - "believer", - "believers", - "believes", - "believing", - "belong", - "belonged", - "belonging", - "belongings", - "belongs", - "below", - "bend", - "bended", - "bender", - "benders", - "bending", - "bends", - "beneath", - "bent", - "bents", - "beside", - "best", - "bested", - "besting", - "bests", - "better", - "bettered", - "bettering", - "betters", - "between", - "beyond", - "big", - "bigger", - "biggest", - "bird", - "birded", - "birding", - "birds", - "bit", - "bite", - "biter", - "biters", - "bites", - "bitey", - "biting", - "bits", - "black", - "blacker", - "blackest", - "blacking", - "blacks", - "blew", - "block", - "blocked", - "blocker", - "blockers", - "blocking", - "blocks", - "blood", - "blooded", - "bloods", - "blow", - "blower", - "blowers", - "blowing", - "blown", - "blows", - "blue", - "blued", - "bluer", - "blues", - "bluest", - "board", - "boarded", - "boarding", - "boardings", - "boards", - "boat", - "boated", - "boating", - "boatings", - "boats", - "bodies", - "body", - "bone", - "boned", - "bones", - "boning", - "book", - "booked", - "booking", - "bookings", - "books", - "boot", - "booted", - "booting", - "boots", - "bore", - "bored", - "boring", - "born", - "both", - "bother", - "bothered", - "botherer", - "botherers", - "bothering", - "bothers", - "bottle", - "bottled", - "bottles", - "bottling", - "bottom", - "bottomed", - "bottoming", - "bottoms", - "bought", - "box", - "boxed", - "boxes", - "boxing", - "boxings", - "boy", - "boys", - "brain", - "brained", - "braining", - "brains", - "branch", - "branched", - "branches", - "branching", - "branchings", - "break", - "breaker", - "breakers", - "breaking", - "breaks", - "breast", - "breasted", - "breasting", - "breasts", - "breath", - "breathe", - "breathed", - "breather", - "breathers", - "breathes", - "breathing", - "breathings", - "breaths", - "bridge", - "bridged", - "bridges", - "bridging", - "bright", - "brighter", - "brightest", - "bring", - "bringer", - "bringers", - "bringing", - "brings", - "broke", - "broken", - "brother", - "brothers", - "brought", - "brown", - "browned", - "browner", - "browning", - "brownings", - "browns", - "build", - "builder", - "builders", - "building", - "buildings", - "builds", - "built", - "burn", - "burned", - "burner", - "burners", - "burning", - "burnings", - "burns", - "burnt", - "bus", - "bused", - "buses", - "busied", - "busier", - "busiest", - "business", - "businesses", - "busing", - "busy", - "busying", - "but", - "buy", - "buyer", - "buyers", - "buying", - "buys", - "by", - "call", - "called", - "calling", - "callings", - "calls", - "calm", - "calmed", - "calmer", - "calmest", - "calming", - "calms", - "came", - "camera", - "cameras", - "can", - "can't", - "cannot", - "cans", - "car", - "cars", - "card", - "carded", - "carding", - "cards", - "care", - "cared", - "careful", - "carefully", - "cares", - "caring", - "carried", - "carrier", - "carriers", - "carries", - "carry", - "carrying", - "case", - "cased", - "cases", - "casing", - "casings", - "cat", - "cats", - "catted", - "catting", - "catch", - "catcher", - "catchers", - "catches", - "catching", - "catchings", - "caught", - "cause", - "caused", - "causer", - "causers", - "causes", - "causing", - "ceiling", - "ceilings", - "center", - "centered", - "centering", - "centers", - "certain", - "certainly", - "chair", - "chairs", - "chance", - "chanced", - "chancer", - "chances", - "chancing", - "change", - "changed", - "changer", - "changers", - "changes", - "changing", - "check", - "checked", - "checker", - "checkers", - "checking", - "checks", - "cheek", - "cheeked", - "cheeking", - "cheeks", - "chest", - "chests", - "child", - "children", - "choice", - "choicer", - "choices", - "choicest", - "choose", - "chooser", - "choosers", - "chooses", - "choosing", - "chose", - "chosen", - "church", - "churches", - "cigarette", - "cigarettes", - "circle", - "circled", - "circles", - "circling", - "cities", - "city", - "class", - "classes", - "clean", - "cleaned", - "cleaner", - "cleaners", - "cleanest", - "cleaning", - "cleanings", - "cleans", - "clear", - "cleared", - "clearer", - "clearest", - "clearing", - "clearings", - "clearly", - "clears", - "climb", - "climbed", - "climber", - "climbers", - "climbing", - "climbings", - "climbs", - "close", - "closed", - "closer", - "closers", - "closes", - "closest", - "closing", - "closings", - "clothe", - "clothed", - "clothes", - "clothing", - "clothings", - "cloud", - "clouded", - "clouding", - "clouds", - "coat", - "coated", - "coating", - "coatings", - "coats", - "coffee", - "coffees", - "cold", - "colder", - "coldest", - "colds", - "college", - "colleges", - "color", - "colored", - "colorer", - "colorers", - "colorful", - "coloring", - "colorings", - "colors", - "come", - "comes", - "coming", - "comings", - "companied", - "companies", - "company", - "companying", - "completely", - "computer", - "computers", - "confuse", - "confused", - "confuses", - "confusing", - "consider", - "considered", - "considering", - "considers", - "continue", - "continued", - "continues", - "continuing", - "control", - "controlled", - "controller", - "controllers", - "controlling", - "controls", - "conversation", - "conversations", - "cool", - "cooled", - "cooler", - "coolers", - "coolest", - "cooling", - "coolings", - "cools", - "cop", - "copped", - "copping", - "cops", - "corner", - "cornered", - "cornering", - "corners", - "could", - "couldn't", - "count", - "counted", - "counter", - "countered", - "countering", - "counters", - "counting", - "counts", - "countries", - "country", - "couple", - "couples", - "course", - "coursed", - "courses", - "coursing", - "cover", - "covered", - "covering", - "coverings", - "covers", - "crazier", - "crazies", - "craziest", - "crazy", - "create", - "created", - "creates", - "creating", - "creature", - "creatures", - "cried", - "cries", - "cry", - "crying", - "cross", - "crossed", - "crosser", - "crosses", - "crossing", - "crossings", - "crowd", - "crowded", - "crowding", - "crowds", - "cup", - "cupped", - "cupping", - "cups", - "cut", - "cuts", - "cutter", - "cutters", - "cutting", - "cuttings", - "dad", - "dads", - "dance", - "danced", - "dances", - "dancing", - "dancings", - "dark", - "darker", - "darkest", - "darkness", - "darknesses", - "darks", - "daughter", - "daughters", - "day", - "days", - "dead", - "deader", - "deadest", - "death", - "deaths", - "decide", - "decided", - "decider", - "deciders", - "decides", - "deciding", - "deep", - "deeper", - "deepest", - "deeps", - "desk", - "desks", - "despite", - "despites", - "did", - "didn't", - "die", - "died", - "dies", - "different", - "dinner", - "dinners", - "direction", - "directions", - "dirt", - "dirts", - "disappear", - "disappeared", - "disappearing", - "disappears", - "discover", - "discovered", - "discovering", - "discovers", - "distance", - "distanced", - "distances", - "distancing", - "do", - "doctor", - "doctored", - "doctoring", - "doctors", - "doer", - "doers", - "does", - "doesn't", - "dog", - "dogged", - "dogging", - "dogs", - "doing", - "doings", - "don't", - "done", - "door", - "doors", - "doorway", - "doorways", - "down", - "downed", - "downing", - "downs", - "dozen", - "dozens", - "drag", - "dragged", - "dragging", - "drags", - "drank", - "draw", - "drawing", - "drawings", - "drawn", - "draws", - "drew", - "dream", - "dreamed", - "dreaming", - "dreams", - "dress", - "dressed", - "dresses", - "dressing", - "dressings", - "dried", - "drier", - "driers", - "dries", - "driest", - "drink", - "drinker", - "drinkers", - "drinking", - "drinks", - "drive", - "driven", - "driver", - "drivers", - "drives", - "driving", - "drivings", - "drop", - "dropped", - "dropper", - "droppers", - "dropping", - "drops", - "drove", - "droves", - "drunk", - "drunks", - "dry", - "dryer", - "dryers", - "drying", - "during", - "dust", - "dusted", - "dusting", - "dusts", - "dying", - "dyings", - "each", - "ear", - "earlier", - "earliest", - "early", - "ears", - "earth", - "earthed", - "earthing", - "earths", - "easier", - "easiest", - "easily", - "east", - "eastest", - "easts", - "easy", - "eat", - "eaten", - "eater", - "eaters", - "eating", - "eats", - "edge", - "edged", - "edges", - "edging", - "edgings", - "effort", - "efforts", - "egg", - "egged", - "egging", - "eggs", - "eight", - "eights", - "either", - "else", - "emptied", - "emptier", - "empties", - "emptiest", - "empty", - "emptying", - "end", - "ended", - "ender", - "enders", - "ending", - "endings", - "ends", - "engine", - "engines", - "enjoy", - "enjoyed", - "enjoyer", - "enjoyers", - "enjoying", - "enjoys", - "enough", - "enoughs", - "enter", - "entered", - "entering", - "enters", - "entire", - "entires", - "especially", - "even", - "evened", - "evens", - "event", - "events", - "ever", - "every", - "everybody", - "everyone", - "everything", - "everywhere", - "exactly", - "except", - "excepted", - "excepting", - "excepts", - "excite", - "excited", - "excites", - "exciting", - "expect", - "expected", - "expecting", - "expects", - "explain", - "explained", - "explainer", - "explainers", - "explaining", - "explains", - "expression", - "expressions", - "extra", - "extras", - "eye", - "eyed", - "eyes", - "eying", - "face", - "faced", - "faces", - "facing", - "facings", - "fact", - "facts", - "fade", - "faded", - "fades", - "fading", - "fail", - "failed", - "failer", - "failers", - "failing", - "failings", - "fails", - "fall", - "fallen", - "faller", - "fallers", - "falling", - "falls", - "familiar", - "familiars", - "families", - "family", - "far", - "farther", - "farthest", - "fast", - "faster", - "fastest", - "father", - "fathered", - "fathering", - "fathers", - "fear", - "feared", - "fearing", - "fears", - "fed", - "feds", - "fee", - "feed", - "feeding", - "feedings", - "feeds", - "feeing", - "feel", - "feeling", - "feelings", - "feels", - "fees", - "feet", - "fell", - "felt", - "few", - "fewer", - "fewest", - "fews", - "field", - "fields", - "fight", - "fighter", - "fighters", - "fighting", - "fightings", - "fights", - "figure", - "figured", - "figures", - "figuring", - "figurings", - "fill", - "filled", - "filling", - "fillings", - "fills", - "final", - "finally", - "finals", - "find", - "finder", - "finders", - "finding", - "findings", - "finds", - "fine", - "fined", - "finer", - "fines", - "finest", - "finger", - "fingered", - "fingering", - "fingers", - "fining", - "finish", - "finished", - "finishes", - "finishing", - "finishings", - "fire", - "fired", - "fires", - "firing", - "firings", - "first", - "firsts", - "fish", - "fished", - "fishes", - "fishing", - "fit", - "fits", - "fitted", - "fitter", - "fitters", - "fittest", - "fitting", - "fittings", - "five", - "fiver", - "fives", - "fix", - "fixed", - "fixer", - "fixers", - "fixes", - "fixing", - "fixings", - "flash", - "flashed", - "flashes", - "flashing", - "flashings", - "flat", - "flats", - "flatted", - "flatter", - "flattest", - "flatting", - "flew", - "flier", - "fliers", - "flies", - "flight", - "flighted", - "flighting", - "flights", - "floor", - "floors", - "flower", - "flowered", - "flowering", - "flowers", - "flown", - "fly", - "flyer", - "flyers", - "flying", - "follow", - "followed", - "following", - "followings", - "follows", - "food", - "foods", - "foot", - "footed", - "footing", - "foots", - "for", - "force", - "forced", - "forces", - "forcing", - "forehead", - "foreheads", - "forest", - "forested", - "foresting", - "forests", - "forever", - "forget", - "forgets", - "forgetter", - "forgetters", - "forgetting", - "forgot", - "forgotten", - "form", - "formed", - "forming", - "forms", - "forward", - "forwarded", - "forwarding", - "forwards", - "fought", - "found", - "four", - "fours", - "free", - "freed", - "freeing", - "freeings", - "freer", - "freers", - "frees", - "freest", - "fresh", - "fresher", - "freshest", - "friend", - "friends", - "from", - "front", - "fronted", - "fronting", - "fronts", - "fuck", - "fucked", - "fucking", - "fuckings", - "fucks", - "full", - "fuller", - "fullest", - "fun", - "funnier", - "funnies", - "funniest", - "funny", - "further", - "furthest", - "future", - "futures", - "game", - "gamed", - "gamer", - "gamers", - "games", - "gaming", - "gamings", - "garden", - "gardened", - "gardening", - "gardens", - "gate", - "gated", - "gates", - "gather", - "gathered", - "gathering", - "gatherings", - "gathers", - "gating", - "gave", - "gently", - "get", - "gets", - "getter", - "getters", - "getting", - "gift", - "gifted", - "gifting", - "gifts", - "girl", - "girls", - "give", - "given", - "givens", - "gives", - "giving", - "glance", - "glanced", - "glances", - "glancing", - "glass", - "glassed", - "glasses", - "go", - "god", - "gods", - "goer", - "goers", - "goes", - "going", - "goings", - "gold", - "golder", - "goldest", - "golds", - "gone", - "good", - "goods", - "got", - "gotten", - "grab", - "grabbed", - "grabber", - "grabbers", - "grabbing", - "grabs", - "grandfather", - "grandfathers", - "grandmother", - "grandmothers", - "grass", - "grasses", - "gray", - "grayed", - "grayer", - "graying", - "grays", - "great", - "greater", - "greatest", - "greats", - "green", - "greened", - "greener", - "greenest", - "greening", - "greens", - "grew", - "grey", - "greyed", - "greyer", - "greying", - "greys", - "ground", - "grounds", - "group", - "grouped", - "grouping", - "groupings", - "groups", - "grow", - "growing", - "grown", - "grows", - "guard", - "guarded", - "guarding", - "guards", - "guess", - "guessed", - "guesses", - "guessing", - "gun", - "gunned", - "gunning", - "guns", - "guy", - "guyed", - "guying", - "guys", - "ha", - "had", - "hair", - "hairs", - "hairy", - "half", - "hall", - "halls", - "hallway", - "hallways", - "halve", - "halved", - "halves", - "halving", - "hand", - "handed", - "handing", - "hands", - "hang", - "hanger", - "hangers", - "hanging", - "hangings", - "hangs", - "happen", - "happened", - "happening", - "happenings", - "happens", - "happier", - "happiest", - "happy", - "hard", - "harder", - "hardest", - "hardly", - "has", - "hat", - "hate", - "hated", - "hates", - "hating", - "hats", - "hatted", - "hatting", - "have", - "haves", - "having", - "he", - "he's", - "head", - "headed", - "heading", - "headings", - "heads", - "hear", - "heard", - "hearing", - "hearings", - "hears", - "heart", - "hearts", - "heat", - "heated", - "heater", - "heaters", - "heating", - "heatings", - "heats", - "heavier", - "heavies", - "heaviest", - "heavy", - "held", - "hell", - "hello", - "hellos", - "hells", - "help", - "helped", - "helper", - "helpers", - "helping", - "helpings", - "helps", - "her", - "here", - "heres", - "hers", - "herself", - "hey", - "he’s", - "hi", - "hid", - "hidden", - "hide", - "hides", - "hiding", - "hidings", - "high", - "higher", - "highest", - "highs", - "hill", - "hilled", - "hilling", - "hills", - "him", - "himself", - "his", - "histories", - "history", - "hit", - "hits", - "hitter", - "hitters", - "hitting", - "hold", - "holder", - "holders", - "holding", - "holdings", - "holds", - "hole", - "holed", - "holes", - "holing", - "home", - "homed", - "homes", - "homing", - "hope", - "hoped", - "hopes", - "hoping", - "horse", - "horses", - "hospital", - "hospitals", - "hot", - "hotel", - "hotels", - "hotter", - "hottest", - "hour", - "hours", - "house", - "housed", - "houses", - "housing", - "housings", - "how", - "however", - "huge", - "huger", - "hugest", - "human", - "humans", - "hundred", - "hundreds", - "hung", - "hurried", - "hurries", - "hurry", - "hurrying", - "hurt", - "hurting", - "hurts", - "husband", - "husbanded", - "husbanding", - "husbands", - "i", - "i'd", - "i'll", - "i'm", - "ice", - "iced", - "ices", - "idea", - "ideas", - "if", - "ignore", - "ignored", - "ignorer", - "ignorers", - "ignores", - "ignoring", - "image", - "imaged", - "images", - "imagine", - "imagined", - "imaginer", - "imaginers", - "imagines", - "imaging", - "imagining", - "imaginings", - "immediately", - "important", - "in", - "information", - "informations", - "ins", - "inside", - "insides", - "instead", - "interest", - "interested", - "interesting", - "interests", - "into", - "is", - "isn't", - "isn’t", - "it", - "its", - "itself", - "i’d", - "i’ll", - "i’m", - "jacket", - "jacketed", - "jackets", - "job", - "jobs", - "join", - "joined", - "joiner", - "joiners", - "joining", - "joins", - "joke", - "joked", - "jokes", - "joking", - "jump", - "jumped", - "jumper", - "jumpers", - "jumping", - "jumps", - "just", - "keep", - "keeper", - "keepers", - "keeping", - "keepings", - "keeps", - "kept", - "key", - "keyed", - "keying", - "keys", - "kick", - "kicked", - "kicker", - "kickers", - "kicking", - "kicks", - "kid", - "kidded", - "kidding", - "kids", - "kill", - "killed", - "killer", - "killers", - "killing", - "killings", - "kills", - "kind", - "kinder", - "kindest", - "kinds", - "kiss", - "kissed", - "kisses", - "kissing", - "kissings", - "kitchen", - "kitchens", - "knee", - "knees", - "knew", - "knife", - "knifed", - "knifes", - "knifing", - "knives", - "knock", - "knocked", - "knocking", - "knockings", - "knocks", - "know", - "knowing", - "knowings", - "known", - "knows", - "ladies", - "lady", - "laid", - "land", - "landed", - "lander", - "landers", - "landing", - "landings", - "lands", - "language", - "languages", - "large", - "larger", - "largest", - "last", - "lasted", - "lasting", - "lasts", - "late", - "later", - "laugh", - "laughed", - "laughing", - "laughs", - "law", - "laws", - "lay", - "layer", - "layered", - "layers", - "laying", - "lays", - "lead", - "leaded", - "leader", - "leaders", - "leading", - "leadings", - "leads", - "leaf", - "leafing", - "leafs", - "lean", - "leaned", - "leaning", - "learn", - "learned", - "learning", - "learns", - "least", - "leave", - "leaved", - "leaves", - "leaving", - "led", - "left", - "leg", - "legs", - "less", - "lesser", - "let", - "lets", - "letter", - "lettered", - "lettering", - "letterings", - "letters", - "letting", - "lettings", - "liar", - "liars", - "lie", - "lied", - "lies", - "life", - "lift", - "lifted", - "lifter", - "lifters", - "lifting", - "lifts", - "light", - "lighted", - "lighter", - "lighters", - "lightest", - "lighting", - "lightings", - "lights", - "like", - "liked", - "liker", - "likers", - "likes", - "liking", - "likings", - "line", - "lined", - "lines", - "lining", - "linings", - "lip", - "lips", - "listen", - "listened", - "listening", - "listens", - "lit", - "little", - "littler", - "littlest", - "live", - "lived", - "lives", - "living", - "local", - "locals", - "lock", - "locked", - "locking", - "lockings", - "locks", - "long", - "longed", - "longer", - "longest", - "longing", - "longings", - "longs", - "look", - "looked", - "looker", - "lookers", - "looking", - "looks", - "lose", - "loses", - "losing", - "lost", - "lot", - "lots", - "loud", - "louder", - "loudest", - "love", - "loved", - "lover", - "lovers", - "loves", - "loving", - "low", - "lower", - "lowered", - "lowering", - "lowers", - "lowest", - "lowing", - "lows", - "luckier", - "luckiest", - "lucky", - "lunch", - "lunched", - "lunches", - "lunching", - "lying", - "machine", - "machined", - "machines", - "machining", - "mad", - "made", - "main", - "mains", - "make", - "maker", - "makers", - "makes", - "making", - "makings", - "man", - "manage", - "managed", - "manages", - "managing", - "manned", - "manning", - "mans", - "many", - "map", - "mapped", - "mapping", - "maps", - "mark", - "marked", - "marking", - "markings", - "marks", - "marriage", - "marriages", - "married", - "marrieds", - "marries", - "marry", - "marrying", - "matter", - "mattered", - "mattering", - "matters", - "may", - "maybe", - "mays", - "me", - "mean", - "meanest", - "meaning", - "meanings", - "means", - "meant", - "meet", - "meeting", - "meetings", - "meets", - "member", - "members", - "memories", - "memory", - "men", - "mens", - "mention", - "mentioned", - "mentioning", - "mentions", - "message", - "messaged", - "messages", - "messaging", - "met", - "metal", - "metals", - "middle", - "middled", - "middles", - "middling", - "middlings", - "might", - "mights", - "mind", - "minded", - "minding", - "minds", - "mine", - "mined", - "mining", - "minings", - "minute", - "minutes", - "mirror", - "mirrored", - "mirroring", - "mirrors", - "miss", - "missed", - "misses", - "missing", - "moment", - "moments", - "money", - "moneys", - "monies", - "month", - "months", - "moon", - "mooned", - "mooning", - "moons", - "more", - "mores", - "morning", - "mornings", - "most", - "mostly", - "mother", - "mothered", - "mothering", - "mothers", - "mountain", - "mountains", - "mouth", - "mouthed", - "mouthing", - "mouths", - "move", - "moved", - "mover", - "movers", - "moves", - "movie", - "movies", - "moving", - "much", - "music", - "musics", - "must", - "musts", - "my", - "myself", - "name", - "named", - "namer", - "namers", - "names", - "naming", - "narrow", - "narrowed", - "narrower", - "narrowest", - "narrowing", - "narrows", - "near", - "neared", - "nearer", - "nearest", - "nearing", - "nearly", - "nears", - "neck", - "necked", - "necking", - "neckings", - "necks", - "need", - "needed", - "needing", - "needs", - "neighbor", - "neighbors", - "never", - "new", - "newer", - "newest", - "news", - "next", - "nice", - "nicer", - "nicest", - "night", - "nights", - "no", - "nobodies", - "nobody", - "nod", - "nodded", - "nodding", - "nods", - "noes", - "noise", - "noised", - "noises", - "noising", - "none", - "nones", - "nor", - "normal", - "normals", - "north", - "norths", - "nos", - "nose", - "nosed", - "noses", - "nosing", - "not", - "note", - "noted", - "notes", - "nothing", - "nothings", - "notice", - "noticed", - "noticer", - "noticers", - "notices", - "noticing", - "noting", - "now", - "nows", - "numb", - "numbed", - "number", - "numbered", - "numbering", - "numberings", - "numbers", - "numbing", - "numbs", - "nurse", - "nursed", - "nurses", - "nursing", - "of", - "off", - "offed", - "offer", - "offered", - "offering", - "offerings", - "offers", - "office", - "officer", - "officered", - "officering", - "officers", - "offices", - "offing", - "offings", - "offs", - "often", - "oh", - "ohs", - "ok", - "ok'd", - "ok'ing", - "okay", - "okay'd", - "okayed", - "okaying", - "okays", - "okay’d", - "ok’d", - "ok’ing", - "old", - "older", - "oldest", - "olds", - "on", - "once", - "one", - "ones", - "only", - "onto", - "open", - "opened", - "opener", - "openers", - "opening", - "openings", - "opens", - "or", - "order", - "ordered", - "ordering", - "orderings", - "orders", - "ors", - "other", - "others", - "our", - "ours", - "out", - "outed", - "outer", - "outing", - "outings", - "outs", - "outside", - "outsides", - "over", - "overs", - "own", - "owned", - "owner", - "owners", - "owning", - "owns", - "page", - "paged", - "pages", - "paging", - "paid", - "pain", - "pained", - "paining", - "pains", - "paint", - "painted", - "painting", - "paintings", - "paints", - "pair", - "paired", - "pairing", - "pairings", - "pairs", - "pale", - "paled", - "paler", - "pales", - "palest", - "palm", - "palmed", - "palming", - "palms", - "pants", - "paper", - "papers", - "parent", - "parented", - "parenting", - "parents", - "part", - "parted", - "partied", - "parties", - "parting", - "partings", - "parts", - "party", - "partying", - "pass", - "passed", - "passes", - "passing", - "past", - "pasts", - "path", - "paths", - "pause", - "paused", - "pauses", - "pausing", - "pay", - "payed", - "paying", - "pays", - "people", - "peopled", - "peoples", - "peopling", - "perfect", - "perfected", - "perfecting", - "perfects", - "perhaps", - "person", - "personal", - "personals", - "persons", - "phone", - "phoned", - "phones", - "phoning", - "photo", - "photos", - "pick", - "picked", - "picking", - "pickings", - "picks", - "picture", - "pictured", - "pictures", - "picturing", - "piece", - "pieced", - "pieces", - "piecing", - "pile", - "piled", - "piles", - "piling", - "pilings", - "pink", - "pinked", - "pinker", - "pinking", - "pinks", - "place", - "placed", - "places", - "placing", - "plan", - "planned", - "planning", - "plans", - "plastic", - "plastics", - "plate", - "plated", - "plates", - "plating", - "platings", - "play", - "played", - "player", - "players", - "playing", - "plays", - "plea", - "pleas", - "please", - "pleased", - "pleases", - "pleasing", - "pleasings", - "pocket", - "pocketed", - "pocketing", - "pockets", - "point", - "pointed", - "pointer", - "pointers", - "pointing", - "points", - "pointy", - "police", - "policed", - "polices", - "policing", - "pool", - "pooled", - "pooling", - "pools", - "poor", - "poorer", - "poorest", - "pop", - "popped", - "popper", - "poppers", - "popping", - "pops", - "porch", - "porches", - "position", - "positioned", - "positioning", - "positions", - "possible", - "possibles", - "pour", - "poured", - "pourer", - "pourers", - "pouring", - "pours", - "power", - "powered", - "powering", - "powers", - "prepare", - "prepared", - "prepares", - "preparing", - "press", - "pressed", - "presser", - "pressers", - "presses", - "pressing", - "pressings", - "pretend", - "pretended", - "pretending", - "pretends", - "prettier", - "prettiest", - "pretty", - "probably", - "problem", - "problems", - "promise", - "promised", - "promiser", - "promisers", - "promises", - "promising", - "prove", - "proved", - "proven", - "prover", - "proves", - "proving", - "pull", - "pulled", - "puller", - "pullers", - "pulling", - "pullings", - "pulls", - "push", - "pushed", - "pusher", - "pushers", - "pushes", - "pushing", - "put", - "puts", - "putting", - "question", - "questioned", - "questioner", - "questioners", - "questioning", - "questionings", - "questions", - "quick", - "quicker", - "quickest", - "quickly", - "quicks", - "quiet", - "quieted", - "quieter", - "quieters", - "quietest", - "quieting", - "quietly", - "quiets", - "quite", - "radio", - "radios", - "rain", - "rained", - "raining", - "rains", - "raise", - "raised", - "raises", - "raising", - "ran", - "rang", - "rather", - "reach", - "reached", - "reacher", - "reachers", - "reaches", - "reaching", - "read", - "reader", - "readers", - "readied", - "readier", - "readies", - "readiest", - "reading", - "readings", - "reads", - "ready", - "readying", - "real", - "realer", - "realest", - "realize", - "realized", - "realizes", - "realizing", - "really", - "reason", - "reasoned", - "reasoning", - "reasons", - "receive", - "received", - "receives", - "receiving", - "recognize", - "recognized", - "recognizer", - "recognizers", - "recognizes", - "recognizing", - "red", - "redder", - "reddest", - "reds", - "refuse", - "refused", - "refuses", - "refusing", - "remain", - "remained", - "remaining", - "remains", - "remember", - "remembered", - "rememberer", - "rememberers", - "remembering", - "remembers", - "remind", - "reminded", - "reminding", - "reminds", - "remove", - "removed", - "removes", - "removing", - "repeat", - "repeated", - "repeating", - "repeatings", - "repeats", - "replied", - "replier", - "repliers", - "replies", - "reply", - "replying", - "rest", - "rested", - "resting", - "rests", - "return", - "returned", - "returning", - "returns", - "reveal", - "revealed", - "revealing", - "revealings", - "reveals", - "rich", - "richer", - "riches", - "richest", - "rid", - "ridden", - "ride", - "rider", - "riders", - "rides", - "riding", - "ridings", - "right", - "righted", - "righter", - "righting", - "rights", - "ring", - "ringed", - "ringing", - "ringings", - "rings", - "rise", - "risen", - "rises", - "rising", - "risings", - "river", - "rivers", - "road", - "roads", - "rock", - "rocked", - "rocking", - "rocks", - "rode", - "roll", - "rolled", - "rolling", - "rollings", - "rolls", - "roof", - "roofed", - "roofing", - "roofings", - "roofs", - "room", - "roomed", - "rooming", - "rooms", - "rooves", - "rose", - "roses", - "round", - "rounded", - "rounder", - "rounders", - "rounding", - "rounds", - "row", - "rowed", - "rowing", - "rowings", - "rows", - "rub", - "rubbed", - "rubbing", - "rubs", - "run", - "rung", - "runner", - "runners", - "running", - "runnings", - "runs", - "rush", - "rushed", - "rushes", - "rushing", - "sad", - "sadder", - "saddest", - "safe", - "safer", - "safes", - "safest", - "said", - "same", - "sames", - "sand", - "sanded", - "sanding", - "sands", - "sang", - "sat", - "save", - "saved", - "saver", - "savers", - "saves", - "saving", - "savings", - "saw", - "saws", - "say", - "saying", - "sayings", - "says", - "scare", - "scared", - "scarer", - "scarers", - "scares", - "scaring", - "scene", - "scenes", - "school", - "schooled", - "schooling", - "schoolings", - "schools", - "scream", - "screamed", - "screaming", - "screams", - "screen", - "screened", - "screening", - "screenings", - "screens", - "sea", - "search", - "searched", - "searches", - "searching", - "seas", - "seat", - "seated", - "seating", - "seatings", - "seats", - "second", - "seconded", - "seconding", - "seconds", - "see", - "seeing", - "seeings", - "seem", - "seemed", - "seeming", - "seems", - "seen", - "sees", - "sell", - "seller", - "sellers", - "selling", - "sells", - "send", - "sender", - "senders", - "sending", - "sends", - "sens", - "sense", - "sensed", - "senses", - "sensing", - "sent", - "serious", - "seriously", - "serve", - "served", - "serves", - "service", - "serviced", - "services", - "servicing", - "serving", - "servings", - "set", - "sets", - "setting", - "settings", - "settle", - "settled", - "settles", - "settling", - "settlings", - "seven", - "sevens", - "several", - "sex", - "sexed", - "sexes", - "sexing", - "shadow", - "shadowed", - "shadowing", - "shadows", - "shake", - "shaken", - "shaker", - "shakers", - "shakes", - "shaking", - "shape", - "shaped", - "shaper", - "shapers", - "shapes", - "shaping", - "share", - "shared", - "sharer", - "sharers", - "shares", - "sharing", - "sharp", - "sharper", - "sharpers", - "sharpest", - "sharps", - "shat", - "she", - "sheet", - "sheeted", - "sheeting", - "sheetings", - "sheets", - "ship", - "shipped", - "shipping", - "ships", - "shirt", - "shirted", - "shirting", - "shirts", - "shit", - "shits", - "shitting", - "shod", - "shoe", - "shoeing", - "shoes", - "shook", - "shoot", - "shooter", - "shooters", - "shooting", - "shootings", - "shoots", - "shop", - "shopped", - "shopping", - "shoppings", - "shops", - "short", - "shorter", - "shortest", - "shorts", - "shot", - "shots", - "should", - "shoulder", - "shoulders", - "shout", - "shouted", - "shouting", - "shouts", - "shove", - "shoved", - "shoves", - "shoving", - "show", - "showed", - "shower", - "showered", - "showering", - "showers", - "showing", - "showings", - "shown", - "shows", - "shrug", - "shrugged", - "shrugging", - "shrugs", - "shut", - "shuts", - "shutting", - "sick", - "sicked", - "sicker", - "sickest", - "sicking", - "sicks", - "side", - "sided", - "sides", - "siding", - "sigh", - "sighed", - "sighing", - "sighs", - "sight", - "sighted", - "sighting", - "sightings", - "sights", - "sign", - "signed", - "signing", - "signings", - "signs", - "silence", - "silenced", - "silences", - "silencing", - "silent", - "silver", - "silvered", - "silvering", - "silvers", - "simple", - "simpler", - "simples", - "simplest", - "simply", - "since", - "sing", - "singe", - "singing", - "singings", - "single", - "singled", - "singles", - "singling", - "sings", - "sir", - "sirs", - "sister", - "sisters", - "sit", - "sits", - "sitting", - "sittings", - "situation", - "situations", - "six", - "sixes", - "size", - "sized", - "sizes", - "sizing", - "skies", - "skin", - "skinned", - "skinning", - "skins", - "sky", - "slam", - "slammed", - "slamming", - "slams", - "sleep", - "sleeper", - "sleepers", - "sleeping", - "sleeps", - "slept", - "slid", - "slide", - "slider", - "sliders", - "slides", - "sliding", - "slightly", - "slip", - "slipped", - "slipping", - "slips", - "slow", - "slowed", - "slower", - "slowest", - "slowing", - "slowly", - "slows", - "small", - "smaller", - "smallest", - "smalls", - "smell", - "smelled", - "smelling", - "smells", - "smelly", - "smile", - "smiled", - "smiler", - "smilers", - "smiles", - "smiling", - "smoke", - "smoked", - "smoker", - "smokers", - "smokes", - "smoking", - "smokings", - "snap", - "snapped", - "snapping", - "snaps", - "snow", - "snowed", - "snowing", - "snows", - "so", - "soft", - "softer", - "softest", - "softly", - "sold", - "soldier", - "soldiered", - "soldiering", - "soldiers", - "some", - "somebodies", - "somebody", - "somehow", - "someone", - "someones", - "something", - "sometimes", - "somewhere", - "somewheres", - "son", - "song", - "songs", - "sons", - "soon", - "sorrier", - "sorriest", - "sorry", - "sort", - "sorted", - "sorting", - "sorts", - "sos", - "soul", - "souls", - "sound", - "sounded", - "sounder", - "sounders", - "soundest", - "sounding", - "soundings", - "sounds", - "south", - "southest", - "space", - "spaced", - "spaces", - "spacing", - "spacings", - "speak", - "speaker", - "speakers", - "speaking", - "speaks", - "special", - "specials", - "spend", - "spender", - "spenders", - "spending", - "spendings", - "spends", - "spent", - "spin", - "spinner", - "spinners", - "spinning", - "spinnings", - "spins", - "spirit", - "spirited", - "spiriting", - "spirits", - "spoke", - "spoken", - "spot", - "spots", - "spotted", - "spotting", - "sprang", - "spread", - "spreader", - "spreaders", - "spreading", - "spreadings", - "spreads", - "spring", - "springing", - "springs", - "sprung", - "spun", - "stage", - "stages", - "stair", - "stairs", - "stand", - "standing", - "standings", - "stands", - "star", - "stare", - "stared", - "starer", - "starers", - "stares", - "staring", - "starred", - "starring", - "stars", - "start", - "started", - "starter", - "starters", - "starting", - "starts", - "state", - "stated", - "states", - "stating", - "station", - "stationed", - "stationing", - "stations", - "stay", - "stayed", - "staying", - "stays", - "steal", - "stealer", - "stealers", - "stealing", - "steals", - "step", - "stepped", - "stepping", - "steps", - "stick", - "sticker", - "stickers", - "sticking", - "sticks", - "still", - "stole", - "stolen", - "stomach", - "stomached", - "stomaches", - "stomachs", - "stone", - "stones", - "stood", - "stop", - "stopped", - "stopper", - "stoppers", - "stopping", - "stops", - "store", - "stored", - "stores", - "stories", - "storing", - "storm", - "stormed", - "storming", - "storms", - "story", - "straight", - "straighter", - "straightest", - "straights", - "strange", - "stranger", - "strangers", - "strangest", - "street", - "streets", - "stretch", - "stretched", - "stretches", - "stretching", - "strike", - "strikes", - "striking", - "strikings", - "strong", - "stronger", - "strongest", - "struck", - "stuck", - "student", - "students", - "studied", - "studies", - "study", - "studying", - "stuff", - "stuffed", - "stuffing", - "stuffings", - "stuffs", - "stupid", - "stupider", - "stupidest", - "stupids", - "such", - "suddenly", - "suggest", - "suggested", - "suggesting", - "suggests", - "suit", - "suite", - "suited", - "suites", - "suiting", - "suitings", - "suits", - "summer", - "summers", - "sun", - "sung", - "sunned", - "sunning", - "suns", - "suppose", - "supposed", - "supposes", - "supposing", - "sure", - "surer", - "surest", - "surface", - "surfaced", - "surfaces", - "surfacing", - "surprise", - "surprised", - "surprises", - "surprising", - "sweet", - "sweeter", - "sweetest", - "sweets", - "swing", - "swinger", - "swingers", - "swinging", - "swings", - "swung", - "system", - "systems", - "table", - "tables", - "take", - "taken", - "taker", - "takers", - "takes", - "taking", - "takings", - "talk", - "talked", - "talker", - "talkers", - "talking", - "talks", - "tall", - "taller", - "tallest", - "taught", - "tea", - "teach", - "teacher", - "teachers", - "teaches", - "teaching", - "teachings", - "team", - "teamed", - "teaming", - "teams", - "tear", - "teared", - "tearing", - "tears", - "teas", - "teeth", - "teethed", - "teething", - "television", - "televisions", - "tell", - "telling", - "tellings", - "tells", - "ten", - "tens", - "terrible", - "than", - "thank", - "thanked", - "thanking", - "thanks", - "that", - "the", - "their", - "them", - "themselves", - "then", - "thens", - "there", - "these", - "they", - "thick", - "thicker", - "thickest", - "thicks", - "thin", - "thing", - "things", - "think", - "thinking", - "thinkings", - "thinks", - "thinned", - "thinner", - "thinners", - "thinnest", - "thinning", - "thins", - "third", - "thirds", - "thirties", - "thirty", - "this", - "those", - "though", - "thought", - "thoughts", - "three", - "threes", - "threw", - "throat", - "throats", - "through", - "throw", - "thrower", - "throwers", - "throwing", - "thrown", - "throws", - "tie", - "tied", - "ties", - "time", - "timed", - "timer", - "timers", - "times", - "timing", - "timings", - "tinier", - "tiniest", - "tiny", - "tire", - "tired", - "tires", - "tiring", - "to", - "today", - "todays", - "together", - "told", - "tomorrow", - "tomorrows", - "tone", - "toned", - "tones", - "tongue", - "tongued", - "tonguer", - "tonguers", - "tongues", - "tonguing", - "tonight", - "tonights", - "toning", - "too", - "took", - "tooth", - "toothed", - "toothy", - "top", - "topped", - "topping", - "toppings", - "tops", - "tore", - "torn", - "toss", - "tossed", - "tosses", - "tossing", - "touch", - "touched", - "toucher", - "touchers", - "touches", - "touching", - "touchings", - "toward", - "towards", - "town", - "towns", - "track", - "tracked", - "tracking", - "tracks", - "train", - "trained", - "training", - "trains", - "travel", - "traveled", - "traveler", - "travelers", - "traveling", - "travelings", - "travelled", - "traveller", - "travellers", - "travelling", - "travellings", - "travels", - "tree", - "treed", - "treeing", - "trees", - "tried", - "tries", - "trip", - "tripe", - "tripped", - "tripping", - "trips", - "trouble", - "troubled", - "troubles", - "troubling", - "truck", - "trucked", - "trucking", - "truckings", - "trucks", - "true", - "trued", - "truer", - "trues", - "truest", - "trust", - "trusted", - "truster", - "trusters", - "trusting", - "trusts", - "truth", - "truths", - "try", - "trying", - "turn", - "turned", - "turning", - "turnings", - "turns", - "tv", - "tvs", - "twenties", - "twenty", - "twice", - "two", - "twos", - "tying", - "uncle", - "uncles", - "under", - "understand", - "understanding", - "understandings", - "understands", - "understood", - "unless", - "until", - "up", - "upon", - "upped", - "upping", - "ups", - "us", - "use", - "used", - "uses", - "using", - "usual", - "usually", - "very", - "view", - "viewed", - "viewing", - "viewings", - "views", - "village", - "villages", - "visit", - "visited", - "visiting", - "visitor", - "visitors", - "visits", - "voice", - "voiced", - "voices", - "voicing", - "wait", - "waited", - "waiting", - "waitings", - "waits", - "wake", - "waked", - "wakes", - "waking", - "wakings", - "walk", - "walked", - "walker", - "walkers", - "walking", - "walkings", - "walks", - "wall", - "walled", - "walling", - "walls", - "want", - "wanted", - "wanter", - "wanters", - "wanting", - "wants", - "war", - "waring", - "warm", - "warmed", - "warmer", - "warmers", - "warmest", - "warming", - "warms", - "warred", - "warring", - "wars", - "was", - "wash", - "washed", - "washes", - "washing", - "washings", - "wasn't", - "wasn’t", - "watch", - "watched", - "watches", - "watching", - "watchings", - "water", - "watered", - "watering", - "waterings", - "waters", - "watery", - "wave", - "waved", - "waver", - "wavers", - "waves", - "waving", - "way", - "ways", - "we", - "wear", - "wearing", - "wearings", - "wears", - "wed", - "wedded", - "wedding", - "weddings", - "weds", - "week", - "weeks", - "weight", - "weighted", - "weighting", - "weightings", - "weights", - "well", - "wells", - "went", - "were", - "west", - "westest", - "wests", - "wet", - "wets", - "wetter", - "wetters", - "wettest", - "wetting", - "what", - "whatever", - "wheel", - "wheeled", - "wheeling", - "wheelings", - "wheels", - "when", - "where", - "whether", - "which", - "while", - "whisper", - "whispered", - "whispering", - "whispers", - "white", - "whited", - "whiter", - "whites", - "whitest", - "whiting", - "who", - "who's", - "whole", - "wholes", - "whom", - "whose", - "who’s", - "why", - "whys", - "wide", - "wider", - "widest", - "wife", - "wild", - "wilder", - "wildest", - "wilds", - "will", - "willed", - "willing", - "wills", - "win", - "wind", - "winded", - "winding", - "windings", - "window", - "windows", - "winds", - "windy", - "wine", - "wines", - "wing", - "winged", - "winging", - "wings", - "winning", - "wins", - "winter", - "wintered", - "wintering", - "winters", - "wipe", - "wiped", - "wiper", - "wipers", - "wipes", - "wiping", - "wish", - "wished", - "wishes", - "wishing", - "with", - "within", - "without", - "wives", - "woke", - "woken", - "woman", - "womans", - "women", - "womens", - "won", - "won't", - "wonder", - "wondered", - "wondering", - "wonders", - "won’t", - "wood", - "wooden", - "woods", - "word", - "worded", - "wording", - "wordings", - "words", - "wore", - "work", - "worked", - "worker", - "workers", - "working", - "workings", - "works", - "world", - "worlds", - "worn", - "worried", - "worries", - "worry", - "worrying", - "worse", - "worst", - "would", - "wouldn't", - "wouldn’t", - "wound", - "wrap", - "wrapped", - "wrapping", - "wrappings", - "wraps", - "write", - "writer", - "writers", - "writes", - "writing", - "writings", - "written", - "wrong", - "wronged", - "wronging", - "wrongs", - "wrote", - "yard", - "yards", - "yeah", - "year", - "years", - "yell", - "yelled", - "yelling", - "yellow", - "yellowed", - "yellower", - "yellowing", - "yellows", - "yells", - "yes", - "yeses", - "yet", - "you", - "young", - "younger", - "youngest", - "youngling", - "younglings", - "your", - "yourself", -] diff --git a/futaba/cogs/optional/simplewriter/words/core_words_list.txt b/futaba/cogs/optional/simplewriter/words/core_words_list.txt new file mode 100644 index 00000000..c03705e9 --- /dev/null +++ b/futaba/cogs/optional/simplewriter/words/core_words_list.txt @@ -0,0 +1 @@ +a,able,about,above,aboves,accept,accepted,accepting,accepts,across,act,acted,acting,actings,acts,actually,add,added,adding,adds,admit,admits,admitted,admitting,afraid,after,afternoon,afternoons,again,against,age,aged,ageing,ages,aging,ago,agree,agreed,agreeing,agrees,ahead,air,aired,airing,airings,airs,alive,all,allow,allowed,allower,allowers,allowing,allows,almost,alone,along,already,also,although,always,am,among,an,and,angrier,angriest,angry,animal,animals,another,answer,answered,answering,answers,any,anybody,anymore,anyone,anything,anyway,anyways,anywhere,apartment,apartments,appear,appeared,appearing,appears,approach,approached,approaches,approaching,are,area,areas,aren't,arm,armed,arming,arms,around,arrive,arrived,arrives,arriving,art,arts,as,ask,asked,asking,asks,asleep,at,ate,attack,attacked,attacking,attacks,attention,aunt,aunts,avoid,avoided,avoiding,avoids,away,babies,baby,back,backed,backing,backings,backs,bad,bag,bagged,bagger,baggers,bagging,bags,ball,balled,balling,balls,bank,banked,banking,bankings,banks,bar,bars,barely,bathroom,bathrooms,be,beach,beached,beaches,beaching,bear,bearing,bears,beat,beaten,beater,beaters,beating,beatings,beats,beautiful,because,became,become,becomes,becoming,bed,bedded,bedding,beddings,bedroom,bedrooms,beds,been,beer,beers,before,began,begin,beginning,beginnings,begins,begun,behind,being,belief,beliefs,believe,believed,believer,believers,believes,believing,belong,belonged,belonging,belongings,belongs,below,bend,bended,bender,benders,bending,bends,beneath,bent,bents,beside,best,bested,besting,bests,better,bettered,bettering,betters,between,beyond,big,bigger,biggest,bird,birded,birding,birds,bit,bite,biter,biters,bites,bitey,biting,bits,black,blacker,blackest,blacking,blacks,blew,block,blocked,blocker,blockers,blocking,blocks,blood,blooded,bloods,blow,blower,blowers,blowing,blown,blows,blue,blued,bluer,blues,bluest,board,boarded,boarding,boardings,boards,boat,boated,boating,boatings,boats,bodies,body,bone,boned,bones,boning,book,booked,booking,bookings,books,boot,booted,booting,boots,bore,bored,boring,born,both,bother,bothered,botherer,botherers,bothering,bothers,bottle,bottled,bottles,bottling,bottom,bottomed,bottoming,bottoms,bought,box,boxed,boxes,boxing,boxings,boy,boys,brain,brained,braining,brains,branch,branched,branches,branching,branchings,break,breaker,breakers,breaking,breaks,breast,breasted,breasting,breasts,breath,breathe,breathed,breather,breathers,breathes,breathing,breathings,breaths,bridge,bridged,bridges,bridging,bright,brighter,brightest,bring,bringer,bringers,bringing,brings,broke,broken,brother,brothers,brought,brown,browned,browner,browning,brownings,browns,build,builder,builders,building,buildings,builds,built,burn,burned,burner,burners,burning,burnings,burns,burnt,bus,bused,buses,busied,busier,busiest,business,businesses,busing,busy,busying,but,buy,buyer,buyers,buying,buys,by,call,called,calling,callings,calls,calm,calmed,calmer,calmest,calming,calms,came,camera,cameras,can,can't,cannot,cans,car,cars,card,carded,carding,cards,care,cared,careful,carefully,cares,caring,carried,carrier,carriers,carries,carry,carrying,case,cased,cases,casing,casings,cat,cats,catted,catting,catch,catcher,catchers,catches,catching,catchings,caught,cause,caused,causer,causers,causes,causing,ceiling,ceilings,center,centered,centering,centers,certain,certainly,chair,chairs,chance,chanced,chancer,chances,chancing,change,changed,changer,changers,changes,changing,check,checked,checker,checkers,checking,checks,cheek,cheeked,cheeking,cheeks,chest,chests,child,children,choice,choicer,choices,choicest,choose,chooser,choosers,chooses,choosing,chose,chosen,church,churches,cigarette,cigarettes,circle,circled,circles,circling,cities,city,class,classes,clean,cleaned,cleaner,cleaners,cleanest,cleaning,cleanings,cleans,clear,cleared,clearer,clearest,clearing,clearings,clearly,clears,climb,climbed,climber,climbers,climbing,climbings,climbs,close,closed,closer,closers,closes,closest,closing,closings,clothe,clothed,clothes,clothing,clothings,cloud,clouded,clouding,clouds,coat,coated,coating,coatings,coats,coffee,coffees,cold,colder,coldest,colds,college,colleges,color,colored,colorer,colorers,colorful,coloring,colorings,colors,come,comes,coming,comings,companied,companies,company,companying,completely,computer,computers,confuse,confused,confuses,confusing,consider,considered,considering,considers,continue,continued,continues,continuing,control,controlled,controller,controllers,controlling,controls,conversation,conversations,cool,cooled,cooler,coolers,coolest,cooling,coolings,cools,cop,copped,copping,cops,corner,cornered,cornering,corners,could,couldn't,count,counted,counter,countered,countering,counters,counting,counts,countries,country,couple,couples,course,coursed,courses,coursing,cover,covered,covering,coverings,covers,crazier,crazies,craziest,crazy,create,created,creates,creating,creature,creatures,cried,cries,cry,crying,cross,crossed,crosser,crosses,crossing,crossings,crowd,crowded,crowding,crowds,cup,cupped,cupping,cups,cut,cuts,cutter,cutters,cutting,cuttings,dad,dads,dance,danced,dances,dancing,dancings,dark,darker,darkest,darkness,darknesses,darks,daughter,daughters,day,days,dead,deader,deadest,death,deaths,decide,decided,decider,deciders,decides,deciding,deep,deeper,deepest,deeps,desk,desks,despite,despites,did,didn't,die,died,dies,different,dinner,dinners,direction,directions,dirt,dirts,disappear,disappeared,disappearing,disappears,discover,discovered,discovering,discovers,distance,distanced,distances,distancing,do,doctor,doctored,doctoring,doctors,doer,doers,does,doesn't,dog,dogged,dogging,dogs,doing,doings,don't,done,door,doors,doorway,doorways,down,downed,downing,downs,dozen,dozens,drag,dragged,dragging,drags,drank,draw,drawing,drawings,drawn,draws,drew,dream,dreamed,dreaming,dreams,dress,dressed,dresses,dressing,dressings,dried,drier,driers,dries,driest,drink,drinker,drinkers,drinking,drinks,drive,driven,driver,drivers,drives,driving,drivings,drop,dropped,dropper,droppers,dropping,drops,drove,droves,drunk,drunks,dry,dryer,dryers,drying,during,dust,dusted,dusting,dusts,dying,dyings,each,ear,earlier,earliest,early,ears,earth,earthed,earthing,earths,easier,easiest,easily,east,eastest,easts,easy,eat,eaten,eater,eaters,eating,eats,edge,edged,edges,edging,edgings,effort,efforts,egg,egged,egging,eggs,eight,eights,either,else,emptied,emptier,empties,emptiest,empty,emptying,end,ended,ender,enders,ending,endings,ends,engine,engines,enjoy,enjoyed,enjoyer,enjoyers,enjoying,enjoys,enough,enoughs,enter,entered,entering,enters,entire,entires,especially,even,evened,evens,event,events,ever,every,everybody,everyone,everything,everywhere,exactly,except,excepted,excepting,excepts,excite,excited,excites,exciting,expect,expected,expecting,expects,explain,explained,explainer,explainers,explaining,explains,expression,expressions,extra,extras,eye,eyed,eyes,eying,face,faced,faces,facing,facings,fact,facts,fade,faded,fades,fading,fail,failed,failer,failers,failing,failings,fails,fall,fallen,faller,fallers,falling,falls,familiar,familiars,families,family,far,farther,farthest,fast,faster,fastest,father,fathered,fathering,fathers,fear,feared,fearing,fears,fed,feds,fee,feed,feeding,feedings,feeds,feeing,feel,feeling,feelings,feels,fees,feet,fell,felt,few,fewer,fewest,fews,field,fields,fight,fighter,fighters,fighting,fightings,fights,figure,figured,figures,figuring,figurings,fill,filled,filling,fillings,fills,final,finally,finals,find,finder,finders,finding,findings,finds,fine,fined,finer,fines,finest,finger,fingered,fingering,fingers,fining,finish,finished,finishes,finishing,finishings,fire,fired,fires,firing,firings,first,firsts,fish,fished,fishes,fishing,fit,fits,fitted,fitter,fitters,fittest,fitting,fittings,five,fiver,fives,fix,fixed,fixer,fixers,fixes,fixing,fixings,flash,flashed,flashes,flashing,flashings,flat,flats,flatted,flatter,flattest,flatting,flew,flier,fliers,flies,flight,flighted,flighting,flights,floor,floors,flower,flowered,flowering,flowers,flown,fly,flyer,flyers,flying,follow,followed,following,followings,follows,food,foods,foot,footed,footing,foots,for,force,forced,forces,forcing,forehead,foreheads,forest,forested,foresting,forests,forever,forget,forgets,forgetter,forgetters,forgetting,forgot,forgotten,form,formed,forming,forms,forward,forwarded,forwarding,forwards,fought,found,four,fours,free,freed,freeing,freeings,freer,freers,frees,freest,fresh,fresher,freshest,friend,friends,from,front,fronted,fronting,fronts,fuck,fucked,fucking,fuckings,fucks,full,fuller,fullest,fun,funnier,funnies,funniest,funny,further,furthest,future,futures,game,gamed,gamer,gamers,games,gaming,gamings,garden,gardened,gardening,gardens,gate,gated,gates,gather,gathered,gathering,gatherings,gathers,gating,gave,gently,get,gets,getter,getters,getting,gift,gifted,gifting,gifts,girl,girls,give,given,givens,gives,giving,glance,glanced,glances,glancing,glass,glassed,glasses,go,god,gods,goer,goers,goes,going,goings,gold,golder,goldest,golds,gone,good,goods,got,gotten,grab,grabbed,grabber,grabbers,grabbing,grabs,grandfather,grandfathers,grandmother,grandmothers,grass,grasses,gray,grayed,grayer,graying,grays,great,greater,greatest,greats,green,greened,greener,greenest,greening,greens,grew,grey,greyed,greyer,greying,greys,ground,grounds,group,grouped,grouping,groupings,groups,grow,growing,grown,grows,guard,guarded,guarding,guards,guess,guessed,guesses,guessing,gun,gunned,gunning,guns,guy,guyed,guying,guys,ha,had,hair,hairs,hairy,half,hall,halls,hallway,hallways,halve,halved,halves,halving,hand,handed,handing,hands,hang,hanger,hangers,hanging,hangings,hangs,happen,happened,happening,happenings,happens,happier,happiest,happy,hard,harder,hardest,hardly,has,hat,hate,hated,hates,hating,hats,hatted,hatting,have,haves,having,he,he's,head,headed,heading,headings,heads,hear,heard,hearing,hearings,hears,heart,hearts,heat,heated,heater,heaters,heating,heatings,heats,heavier,heavies,heaviest,heavy,held,hell,hello,hellos,hells,help,helped,helper,helpers,helping,helpings,helps,her,here,heres,hers,herself,hey,he’s,hi,hid,hidden,hide,hides,hiding,hidings,high,higher,highest,highs,hill,hilled,hilling,hills,him,himself,his,histories,history,hit,hits,hitter,hitters,hitting,hold,holder,holders,holding,holdings,holds,hole,holed,holes,holing,home,homed,homes,homing,hope,hoped,hopes,hoping,horse,horses,hospital,hospitals,hot,hotel,hotels,hotter,hottest,hour,hours,house,housed,houses,housing,housings,how,however,huge,huger,hugest,human,humans,hundred,hundreds,hung,hurried,hurries,hurry,hurrying,hurt,hurting,hurts,husband,husbanded,husbanding,husbands,i,i'd,i'll,i'm,ice,iced,ices,idea,ideas,if,ignore,ignored,ignorer,ignorers,ignores,ignoring,image,imaged,images,imagine,imagined,imaginer,imaginers,imagines,imaging,imagining,imaginings,immediately,important,in,information,informations,ins,inside,insides,instead,interest,interested,interesting,interests,into,is,isn't,isn’t,it,its,itself,i’d,i’ll,i’m,jacket,jacketed,jackets,job,jobs,join,joined,joiner,joiners,joining,joins,joke,joked,jokes,joking,jump,jumped,jumper,jumpers,jumping,jumps,just,keep,keeper,keepers,keeping,keepings,keeps,kept,key,keyed,keying,keys,kick,kicked,kicker,kickers,kicking,kicks,kid,kidded,kidding,kids,kill,killed,killer,killers,killing,killings,kills,kind,kinder,kindest,kinds,kiss,kissed,kisses,kissing,kissings,kitchen,kitchens,knee,knees,knew,knife,knifed,knifes,knifing,knives,knock,knocked,knocking,knockings,knocks,know,knowing,knowings,known,knows,ladies,lady,laid,land,landed,lander,landers,landing,landings,lands,language,languages,large,larger,largest,last,lasted,lasting,lasts,late,later,laugh,laughed,laughing,laughs,law,laws,lay,layer,layered,layers,laying,lays,lead,leaded,leader,leaders,leading,leadings,leads,leaf,leafing,leafs,lean,leaned,leaning,learn,learned,learning,learns,least,leave,leaved,leaves,leaving,led,left,leg,legs,less,lesser,let,lets,letter,lettered,lettering,letterings,letters,letting,lettings,liar,liars,lie,lied,lies,life,lift,lifted,lifter,lifters,lifting,lifts,light,lighted,lighter,lighters,lightest,lighting,lightings,lights,like,liked,liker,likers,likes,liking,likings,line,lined,lines,lining,linings,lip,lips,listen,listened,listening,listens,lit,little,littler,littlest,live,lived,lives,living,local,locals,lock,locked,locking,lockings,locks,long,longed,longer,longest,longing,longings,longs,look,looked,looker,lookers,looking,looks,lose,loses,losing,lost,lot,lots,loud,louder,loudest,love,loved,lover,lovers,loves,loving,low,lower,lowered,lowering,lowers,lowest,lowing,lows,luckier,luckiest,lucky,lunch,lunched,lunches,lunching,lying,machine,machined,machines,machining,mad,made,main,mains,make,maker,makers,makes,making,makings,man,manage,managed,manages,managing,manned,manning,mans,many,map,mapped,mapping,maps,mark,marked,marking,markings,marks,marriage,marriages,married,marrieds,marries,marry,marrying,matter,mattered,mattering,matters,may,maybe,mays,me,mean,meanest,meaning,meanings,means,meant,meet,meeting,meetings,meets,member,members,memories,memory,men,mens,mention,mentioned,mentioning,mentions,message,messaged,messages,messaging,met,metal,metals,middle,middled,middles,middling,middlings,might,mights,mind,minded,minding,minds,mine,mined,mining,minings,minute,minutes,mirror,mirrored,mirroring,mirrors,miss,missed,misses,missing,moment,moments,money,moneys,monies,month,months,moon,mooned,mooning,moons,more,mores,morning,mornings,most,mostly,mother,mothered,mothering,mothers,mountain,mountains,mouth,mouthed,mouthing,mouths,move,moved,mover,movers,moves,movie,movies,moving,much,music,musics,must,musts,my,myself,name,named,namer,namers,names,naming,narrow,narrowed,narrower,narrowest,narrowing,narrows,near,neared,nearer,nearest,nearing,nearly,nears,neck,necked,necking,neckings,necks,need,needed,needing,needs,neighbor,neighbors,never,new,newer,newest,news,next,nice,nicer,nicest,night,nights,no,nobodies,nobody,nod,nodded,nodding,nods,noes,noise,noised,noises,noising,none,nones,nor,normal,normals,north,norths,nos,nose,nosed,noses,nosing,not,note,noted,notes,nothing,nothings,notice,noticed,noticer,noticers,notices,noticing,noting,now,nows,numb,numbed,number,numbered,numbering,numberings,numbers,numbing,numbs,nurse,nursed,nurses,nursing,of,off,offed,offer,offered,offering,offerings,offers,office,officer,officered,officering,officers,offices,offing,offings,offs,often,oh,ohs,ok,ok'd,ok'ing,okay,okay'd,okayed,okaying,okays,okay’d,ok’d,ok’ing,old,older,oldest,olds,on,once,one,ones,only,onto,open,opened,opener,openers,opening,openings,opens,or,order,ordered,ordering,orderings,orders,ors,other,others,our,ours,out,outed,outer,outing,outings,outs,outside,outsides,over,overs,own,owned,owner,owners,owning,owns,page,paged,pages,paging,paid,pain,pained,paining,pains,paint,painted,painting,paintings,paints,pair,paired,pairing,pairings,pairs,pale,paled,paler,pales,palest,palm,palmed,palming,palms,pants,paper,papers,parent,parented,parenting,parents,part,parted,partied,parties,parting,partings,parts,party,partying,pass,passed,passes,passing,past,pasts,path,paths,pause,paused,pauses,pausing,pay,payed,paying,pays,people,peopled,peoples,peopling,perfect,perfected,perfecting,perfects,perhaps,person,personal,personals,persons,phone,phoned,phones,phoning,photo,photos,pick,picked,picking,pickings,picks,picture,pictured,pictures,picturing,piece,pieced,pieces,piecing,pile,piled,piles,piling,pilings,pink,pinked,pinker,pinking,pinks,place,placed,places,placing,plan,planned,planning,plans,plastic,plastics,plate,plated,plates,plating,platings,play,played,player,players,playing,plays,plea,pleas,please,pleased,pleases,pleasing,pleasings,pocket,pocketed,pocketing,pockets,point,pointed,pointer,pointers,pointing,points,pointy,police,policed,polices,policing,pool,pooled,pooling,pools,poor,poorer,poorest,pop,popped,popper,poppers,popping,pops,porch,porches,position,positioned,positioning,positions,possible,possibles,pour,poured,pourer,pourers,pouring,pours,power,powered,powering,powers,prepare,prepared,prepares,preparing,press,pressed,presser,pressers,presses,pressing,pressings,pretend,pretended,pretending,pretends,prettier,prettiest,pretty,probably,problem,problems,promise,promised,promiser,promisers,promises,promising,prove,proved,proven,prover,proves,proving,pull,pulled,puller,pullers,pulling,pullings,pulls,push,pushed,pusher,pushers,pushes,pushing,put,puts,putting,question,questioned,questioner,questioners,questioning,questionings,questions,quick,quicker,quickest,quickly,quicks,quiet,quieted,quieter,quieters,quietest,quieting,quietly,quiets,quite,radio,radios,rain,rained,raining,rains,raise,raised,raises,raising,ran,rang,rather,reach,reached,reacher,reachers,reaches,reaching,read,reader,readers,readied,readier,readies,readiest,reading,readings,reads,ready,readying,real,realer,realest,realize,realized,realizes,realizing,really,reason,reasoned,reasoning,reasons,receive,received,receives,receiving,recognize,recognized,recognizer,recognizers,recognizes,recognizing,red,redder,reddest,reds,refuse,refused,refuses,refusing,remain,remained,remaining,remains,remember,remembered,rememberer,rememberers,remembering,remembers,remind,reminded,reminding,reminds,remove,removed,removes,removing,repeat,repeated,repeating,repeatings,repeats,replied,replier,repliers,replies,reply,replying,rest,rested,resting,rests,return,returned,returning,returns,reveal,revealed,revealing,revealings,reveals,rich,richer,riches,richest,rid,ridden,ride,rider,riders,rides,riding,ridings,right,righted,righter,righting,rights,ring,ringed,ringing,ringings,rings,rise,risen,rises,rising,risings,river,rivers,road,roads,rock,rocked,rocking,rocks,rode,roll,rolled,rolling,rollings,rolls,roof,roofed,roofing,roofings,roofs,room,roomed,rooming,rooms,rooves,rose,roses,round,rounded,rounder,rounders,rounding,rounds,row,rowed,rowing,rowings,rows,rub,rubbed,rubbing,rubs,run,rung,runner,runners,running,runnings,runs,rush,rushed,rushes,rushing,sad,sadder,saddest,safe,safer,safes,safest,said,same,sames,sand,sanded,sanding,sands,sang,sat,save,saved,saver,savers,saves,saving,savings,saw,saws,say,saying,sayings,says,scare,scared,scarer,scarers,scares,scaring,scene,scenes,school,schooled,schooling,schoolings,schools,scream,screamed,screaming,screams,screen,screened,screening,screenings,screens,sea,search,searched,searches,searching,seas,seat,seated,seating,seatings,seats,second,seconded,seconding,seconds,see,seeing,seeings,seem,seemed,seeming,seems,seen,sees,sell,seller,sellers,selling,sells,send,sender,senders,sending,sends,sens,sense,sensed,senses,sensing,sent,serious,seriously,serve,served,serves,service,serviced,services,servicing,serving,servings,set,sets,setting,settings,settle,settled,settles,settling,settlings,seven,sevens,several,sex,sexed,sexes,sexing,shadow,shadowed,shadowing,shadows,shake,shaken,shaker,shakers,shakes,shaking,shape,shaped,shaper,shapers,shapes,shaping,share,shared,sharer,sharers,shares,sharing,sharp,sharper,sharpers,sharpest,sharps,shat,she,sheet,sheeted,sheeting,sheetings,sheets,ship,shipped,shipping,ships,shirt,shirted,shirting,shirts,shit,shits,shitting,shod,shoe,shoeing,shoes,shook,shoot,shooter,shooters,shooting,shootings,shoots,shop,shopped,shopping,shoppings,shops,short,shorter,shortest,shorts,shot,shots,should,shoulder,shoulders,shout,shouted,shouting,shouts,shove,shoved,shoves,shoving,show,showed,shower,showered,showering,showers,showing,showings,shown,shows,shrug,shrugged,shrugging,shrugs,shut,shuts,shutting,sick,sicked,sicker,sickest,sicking,sicks,side,sided,sides,siding,sigh,sighed,sighing,sighs,sight,sighted,sighting,sightings,sights,sign,signed,signing,signings,signs,silence,silenced,silences,silencing,silent,silver,silvered,silvering,silvers,simple,simpler,simples,simplest,simply,since,sing,singe,singing,singings,single,singled,singles,singling,sings,sir,sirs,sister,sisters,sit,sits,sitting,sittings,situation,situations,six,sixes,size,sized,sizes,sizing,skies,skin,skinned,skinning,skins,sky,slam,slammed,slamming,slams,sleep,sleeper,sleepers,sleeping,sleeps,slept,slid,slide,slider,sliders,slides,sliding,slightly,slip,slipped,slipping,slips,slow,slowed,slower,slowest,slowing,slowly,slows,small,smaller,smallest,smalls,smell,smelled,smelling,smells,smelly,smile,smiled,smiler,smilers,smiles,smiling,smoke,smoked,smoker,smokers,smokes,smoking,smokings,snap,snapped,snapping,snaps,snow,snowed,snowing,snows,so,soft,softer,softest,softly,sold,soldier,soldiered,soldiering,soldiers,some,somebodies,somebody,somehow,someone,someones,something,sometimes,somewhere,somewheres,son,song,songs,sons,soon,sorrier,sorriest,sorry,sort,sorted,sorting,sorts,sos,soul,souls,sound,sounded,sounder,sounders,soundest,sounding,soundings,sounds,south,southest,space,spaced,spaces,spacing,spacings,speak,speaker,speakers,speaking,speaks,special,specials,spend,spender,spenders,spending,spendings,spends,spent,spin,spinner,spinners,spinning,spinnings,spins,spirit,spirited,spiriting,spirits,spoke,spoken,spot,spots,spotted,spotting,sprang,spread,spreader,spreaders,spreading,spreadings,spreads,spring,springing,springs,sprung,spun,stage,stages,stair,stairs,stand,standing,standings,stands,star,stare,stared,starer,starers,stares,staring,starred,starring,stars,start,started,starter,starters,starting,starts,state,stated,states,stating,station,stationed,stationing,stations,stay,stayed,staying,stays,steal,stealer,stealers,stealing,steals,step,stepped,stepping,steps,stick,sticker,stickers,sticking,sticks,still,stole,stolen,stomach,stomached,stomaches,stomachs,stone,stones,stood,stop,stopped,stopper,stoppers,stopping,stops,store,stored,stores,stories,storing,storm,stormed,storming,storms,story,straight,straighter,straightest,straights,strange,stranger,strangers,strangest,street,streets,stretch,stretched,stretches,stretching,strike,strikes,striking,strikings,strong,stronger,strongest,struck,stuck,student,students,studied,studies,study,studying,stuff,stuffed,stuffing,stuffings,stuffs,stupid,stupider,stupidest,stupids,such,suddenly,suggest,suggested,suggesting,suggests,suit,suite,suited,suites,suiting,suitings,suits,summer,summers,sun,sung,sunned,sunning,suns,suppose,supposed,supposes,supposing,sure,surer,surest,surface,surfaced,surfaces,surfacing,surprise,surprised,surprises,surprising,sweet,sweeter,sweetest,sweets,swing,swinger,swingers,swinging,swings,swung,system,systems,table,tables,take,taken,taker,takers,takes,taking,takings,talk,talked,talker,talkers,talking,talks,tall,taller,tallest,taught,tea,teach,teacher,teachers,teaches,teaching,teachings,team,teamed,teaming,teams,tear,teared,tearing,tears,teas,teeth,teethed,teething,television,televisions,tell,telling,tellings,tells,ten,tens,terrible,than,thank,thanked,thanking,thanks,that,the,their,them,themselves,then,thens,there,these,they,thick,thicker,thickest,thicks,thin,thing,things,think,thinking,thinkings,thinks,thinned,thinner,thinners,thinnest,thinning,thins,third,thirds,thirties,thirty,this,those,though,thought,thoughts,three,threes,threw,throat,throats,through,throw,thrower,throwers,throwing,thrown,throws,tie,tied,ties,time,timed,timer,timers,times,timing,timings,tinier,tiniest,tiny,tire,tired,tires,tiring,to,today,todays,together,told,tomorrow,tomorrows,tone,toned,tones,tongue,tongued,tonguer,tonguers,tongues,tonguing,tonight,tonights,toning,too,took,tooth,toothed,toothy,top,topped,topping,toppings,tops,tore,torn,toss,tossed,tosses,tossing,touch,touched,toucher,touchers,touches,touching,touchings,toward,towards,town,towns,track,tracked,tracking,tracks,train,trained,training,trains,travel,traveled,traveler,travelers,traveling,travelings,travelled,traveller,travellers,travelling,travellings,travels,tree,treed,treeing,trees,tried,tries,trip,tripe,tripped,tripping,trips,trouble,troubled,troubles,troubling,truck,trucked,trucking,truckings,trucks,true,trued,truer,trues,truest,trust,trusted,truster,trusters,trusting,trusts,truth,truths,try,trying,turn,turned,turning,turnings,turns,tv,tvs,twenties,twenty,twice,two,twos,tying,uncle,uncles,under,understand,understanding,understandings,understands,understood,unless,until,up,upon,upped,upping,ups,us,use,used,uses,using,usual,usually,very,view,viewed,viewing,viewings,views,village,villages,visit,visited,visiting,visitor,visitors,visits,voice,voiced,voices,voicing,wait,waited,waiting,waitings,waits,wake,waked,wakes,waking,wakings,walk,walked,walker,walkers,walking,walkings,walks,wall,walled,walling,walls,want,wanted,wanter,wanters,wanting,wants,war,waring,warm,warmed,warmer,warmers,warmest,warming,warms,warred,warring,wars,was,wash,washed,washes,washing,washings,wasn't,wasn’t,watch,watched,watches,watching,watchings,water,watered,watering,waterings,waters,watery,wave,waved,waver,wavers,waves,waving,way,ways,we,wear,wearing,wearings,wears,wed,wedded,wedding,weddings,weds,week,weeks,weight,weighted,weighting,weightings,weights,well,wells,went,were,west,westest,wests,wet,wets,wetter,wetters,wettest,wetting,what,whatever,wheel,wheeled,wheeling,wheelings,wheels,when,where,whether,which,while,whisper,whispered,whispering,whispers,white,whited,whiter,whites,whitest,whiting,who,who's,whole,wholes,whom,whose,who’s,why,whys,wide,wider,widest,wife,wild,wilder,wildest,wilds,will,willed,willing,wills,win,wind,winded,winding,windings,window,windows,winds,windy,wine,wines,wing,winged,winging,wings,winning,wins,winter,wintered,wintering,winters,wipe,wiped,wiper,wipers,wipes,wiping,wish,wished,wishes,wishing,with,within,without,wives,woke,woken,woman,womans,women,womens,won,won't,wonder,wondered,wondering,wonders,won’t,wood,wooden,woods,word,worded,wording,wordings,words,wore,work,worked,worker,workers,working,workings,works,world,worlds,worn,worried,worries,worry,worrying,worse,worst,would,wouldn't,wouldn’t,wound,wrap,wrapped,wrapping,wrappings,wraps,write,writer,writers,writes,writing,writings,written,wrong,wronged,wronging,wrongs,wrote,yard,yards,yeah,year,years,yell,yelled,yelling,yellow,yellowed,yellower,yellowing,yellows,yells,yes,yeses,yet,you,young,younger,youngest,youngling,younglings,your,yourself diff --git a/futaba/cogs/optional/simplewriter/words/words.py b/futaba/cogs/optional/simplewriter/words/words.py new file mode 100644 index 00000000..ce3de87e --- /dev/null +++ b/futaba/cogs/optional/simplewriter/words/words.py @@ -0,0 +1,24 @@ +# +# cogs/optional/simplewriter/words/words.py +# +# futaba - A Discord Mod bot for the Programming server +# Copyright (c) 2017-2020 Jake Richardson, Ammon Smith, jackylam5 +# +# futaba is available free of charge under the terms of the MIT +# License. You are free to redistribute and/or modify it under those +# terms. It is distributed in the hopes that it will be useful, but +# WITHOUT ANY WARRANTY. See the LICENSE file for more details. +# + +import os + +__all__ = ["core_words_list"] + +core_words_list = None +core_words_list_path = os.path.join( + os.path.dirname(__file__), + "core_words_list.txt" +) + +with open(core_words_list_path, "r") as f: + core_words_list = f.read().split(",") From 778b4ceb38865199a211490567ba84e128c2385f Mon Sep 17 00:00:00 2001 From: Josh Stockin Date: Thu, 30 Jul 2020 22:55:29 -0500 Subject: [PATCH 10/15] Run pylint and black on simplewriter cog --- futaba/cogs/optional/simplewriter/simple_filter.py | 3 ++- futaba/cogs/optional/simplewriter/words/words.py | 5 +---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/futaba/cogs/optional/simplewriter/simple_filter.py b/futaba/cogs/optional/simplewriter/simple_filter.py index a67cd5a5..704e4841 100644 --- a/futaba/cogs/optional/simplewriter/simple_filter.py +++ b/futaba/cogs/optional/simplewriter/simple_filter.py @@ -67,7 +67,8 @@ async def simple_filter(cog, message): bad_words = [] for word in split: cleaned = word.strip() - if not cleaned: continue + if not cleaned: + continue if not cleaned.lower() in core_words_list: if not cleaned in bad_words: try: # test to see if input is a number diff --git a/futaba/cogs/optional/simplewriter/words/words.py b/futaba/cogs/optional/simplewriter/words/words.py index ce3de87e..e178765d 100644 --- a/futaba/cogs/optional/simplewriter/words/words.py +++ b/futaba/cogs/optional/simplewriter/words/words.py @@ -15,10 +15,7 @@ __all__ = ["core_words_list"] core_words_list = None -core_words_list_path = os.path.join( - os.path.dirname(__file__), - "core_words_list.txt" -) +core_words_list_path = os.path.join(os.path.dirname(__file__), "core_words_list.txt") with open(core_words_list_path, "r") as f: core_words_list = f.read().split(",") From e03260a212acd181bb2a9a37478be83433278130 Mon Sep 17 00:00:00 2001 From: Josh Stockin Date: Thu, 30 Jul 2020 22:57:41 -0500 Subject: [PATCH 11/15] Set default core_words_list value to [] instead of None --- futaba/cogs/optional/simplewriter/words/words.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/futaba/cogs/optional/simplewriter/words/words.py b/futaba/cogs/optional/simplewriter/words/words.py index e178765d..c6d7034e 100644 --- a/futaba/cogs/optional/simplewriter/words/words.py +++ b/futaba/cogs/optional/simplewriter/words/words.py @@ -14,7 +14,7 @@ __all__ = ["core_words_list"] -core_words_list = None +core_words_list = [] core_words_list_path = os.path.join(os.path.dirname(__file__), "core_words_list.txt") with open(core_words_list_path, "r") as f: From a9d3462948811fb6817a56a4453c898a1b28a471 Mon Sep 17 00:00:00 2001 From: Josh Stockin Date: Thu, 30 Jul 2020 23:13:33 -0500 Subject: [PATCH 12/15] Make channel_id a member of the cog for easy access --- futaba/cogs/optional/simplewriter/core.py | 3 ++- futaba/cogs/optional/simplewriter/simple_filter.py | 4 +--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/futaba/cogs/optional/simplewriter/core.py b/futaba/cogs/optional/simplewriter/core.py index c3e9ddd1..e27b116d 100644 --- a/futaba/cogs/optional/simplewriter/core.py +++ b/futaba/cogs/optional/simplewriter/core.py @@ -24,13 +24,14 @@ class SimplewriterCog(AbstractCog): - __slots__ = ("journal", "on_message", "on_message_edit") + __slots__ = ("journal", "on_message", "on_message_edit", "channel_id") def __init__(self, bot): super().__init__(bot) self.on_message = async_partial(on_message, self) self.on_message_edit = async_partial(on_message_edit, self) self.journal = bot.get_broadcaster("/simplewriter") + self.channel_id = int(bot.config.optional_cogs["simplewriter"]["channel-id"]) def setup(self): pass diff --git a/futaba/cogs/optional/simplewriter/simple_filter.py b/futaba/cogs/optional/simplewriter/simple_filter.py index 704e4841..b3d68ab3 100644 --- a/futaba/cogs/optional/simplewriter/simple_filter.py +++ b/futaba/cogs/optional/simplewriter/simple_filter.py @@ -51,9 +51,7 @@ async def simple_filter(cog, message): if message.author.id == cog.bot.user.id: return - if message.channel.id != int( - cog.bot.config.optional_cogs["simplewriter"]["channel-id"] - ): + if message.channel.id != cog.channel_id: return logger.debug( From 09a4b99fcd4a345f7f5d518982e84c74f6a68e31 Mon Sep 17 00:00:00 2001 From: Josh Stockin Date: Thu, 30 Jul 2020 23:27:02 -0500 Subject: [PATCH 13/15] Don't filter contractions in simplewriter --- futaba/cogs/optional/simplewriter/simple_filter.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/futaba/cogs/optional/simplewriter/simple_filter.py b/futaba/cogs/optional/simplewriter/simple_filter.py index b3d68ab3..8f12e299 100644 --- a/futaba/cogs/optional/simplewriter/simple_filter.py +++ b/futaba/cogs/optional/simplewriter/simple_filter.py @@ -26,6 +26,7 @@ from .words import core_words_list logger = logging.getLogger(__name__) +REGEX_SPLIT = r"[^a-zA-Z0-9_']" __all__ = ["simple_filter"] @@ -61,7 +62,7 @@ async def simple_filter(cog, message): message.author.id, ) - split = re.split(r"\W+", message.content) + split = re.split(REGEX_SPLIT, message.content) bad_words = [] for word in split: cleaned = word.strip() From c8aae0b25e6285212e5ddc7c81e908670780f404 Mon Sep 17 00:00:00 2001 From: Josh Stockin Date: Fri, 31 Jul 2020 13:50:59 -0500 Subject: [PATCH 14/15] Update code formatting, expand journal event --- futaba/cogs/optional/simplewriter/core.py | 2 +- .../optional/simplewriter/simple_filter.py | 26 +++++++++++-------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/futaba/cogs/optional/simplewriter/core.py b/futaba/cogs/optional/simplewriter/core.py index e27b116d..57b5e9c9 100644 --- a/futaba/cogs/optional/simplewriter/core.py +++ b/futaba/cogs/optional/simplewriter/core.py @@ -28,9 +28,9 @@ class SimplewriterCog(AbstractCog): def __init__(self, bot): super().__init__(bot) + self.journal = bot.get_broadcaster("/simplewriter") self.on_message = async_partial(on_message, self) self.on_message_edit = async_partial(on_message_edit, self) - self.journal = bot.get_broadcaster("/simplewriter") self.channel_id = int(bot.config.optional_cogs["simplewriter"]["channel-id"]) def setup(self): diff --git a/futaba/cogs/optional/simplewriter/simple_filter.py b/futaba/cogs/optional/simplewriter/simple_filter.py index 8f12e299..f4573551 100644 --- a/futaba/cogs/optional/simplewriter/simple_filter.py +++ b/futaba/cogs/optional/simplewriter/simple_filter.py @@ -36,8 +36,12 @@ async def simple_filter(cog, message): Filter Discord messages for the simplewriter channel """ - # Not DMs - if message.guild is None: + # Message is in designated channel + if message.channel.id != cog.channel_id: + return + + # Don't filter bot messages + if message.author.id == cog.bot.user.id: return # Not a special message type @@ -48,15 +52,8 @@ async def simple_filter(cog, message): if not message.channel.permissions_for(message.guild.me).manage_messages: return - # Don't filter bot messages - if message.author.id == cog.bot.user.id: - return - - if message.channel.id != cog.channel_id: - return - logger.debug( - "Message in simplewriter channel. Checking message id %d (by '%s' (%d)) against simplewriter core words list", + "Checking message id %d (by '%s' (%d)) against simplewriter core words list", message.id, message.author.name, message.author.id, @@ -82,7 +79,14 @@ async def simple_filter(cog, message): f"Message id {message.id} (by '{message.author.name}' ({message.author.id})) filtered from " "simplewriter channel" ) - cog.journal.send("message/delete", message.guild, content) + cog.journal.send( + "message/delete", + message.guild, + content, + icon="delete", + channel=message.channel, + message=message, + ) bad_words_plural = plural(len(bad_words)) article = "some" if len(bad_words) > 1 else "a" From 33b7c359cd2e5229d7fe26a0eecb5ed2f1d15b52 Mon Sep 17 00:00:00 2001 From: Josh Stockin Date: Sat, 1 Aug 2020 09:30:29 -0500 Subject: [PATCH 15/15] Merge listener methods into cog Instead of making them partials --- futaba/cogs/optional/simplewriter/core.py | 14 ++++++---- .../cogs/optional/simplewriter/listeners.py | 28 ------------------- 2 files changed, 9 insertions(+), 33 deletions(-) delete mode 100644 futaba/cogs/optional/simplewriter/listeners.py diff --git a/futaba/cogs/optional/simplewriter/core.py b/futaba/cogs/optional/simplewriter/core.py index 57b5e9c9..d8d61daa 100644 --- a/futaba/cogs/optional/simplewriter/core.py +++ b/futaba/cogs/optional/simplewriter/core.py @@ -17,20 +17,17 @@ (https://xkcd.com/simplewriter) """ -from futaba.utils import async_partial from futaba.cogs.abc import AbstractCog -from .listeners import on_message, on_message_edit +from .simple_filter import simple_filter class SimplewriterCog(AbstractCog): - __slots__ = ("journal", "on_message", "on_message_edit", "channel_id") + __slots__ = ("journal", "channel_id") def __init__(self, bot): super().__init__(bot) self.journal = bot.get_broadcaster("/simplewriter") - self.on_message = async_partial(on_message, self) - self.on_message_edit = async_partial(on_message_edit, self) self.channel_id = int(bot.config.optional_cogs["simplewriter"]["channel-id"]) def setup(self): @@ -39,3 +36,10 @@ def setup(self): def cog_unload(self): self.bot.remove_listener(self.on_message, "on_message") self.bot.remove_listener(self.on_message_edit, "on_message_edit") + + async def on_message(self, message): + await simple_filter(self, message) + + async def on_message_edit(self, before, after): + if after: + await simple_filter(self, after) diff --git a/futaba/cogs/optional/simplewriter/listeners.py b/futaba/cogs/optional/simplewriter/listeners.py deleted file mode 100644 index d6d94cd1..00000000 --- a/futaba/cogs/optional/simplewriter/listeners.py +++ /dev/null @@ -1,28 +0,0 @@ -# -# cogs/optional/simplewriter/listeners.py -# -# futaba - A Discord Mod bot for the Programming server -# Copyright (c) 2017-2020 Jake Richardson, Ammon Smith, jackylam5 -# -# futaba is available free of charge under the terms of the MIT -# License. You are free to redistribute and/or modify it under those -# terms. It is distributed in the hopes that it will be useful, but -# WITHOUT ANY WARRANTY. See the LICENSE file for more details. -# - -""" -discord.py listeners for simplewriter -""" - -from .simple_filter import simple_filter - -__all__ = ["on_message", "on_message_edit"] - - -async def on_message(cog, message): - await simple_filter(cog, message) - - -async def on_message_edit(cog, before, after): - if after: - await simple_filter(cog, after)