Compare commits

..

No commits in common. "master" and "master" have entirely different histories.

44 changed files with 56 additions and 1899 deletions

4
.gitignore vendored
View File

@ -96,7 +96,3 @@ ENV/
# configuration
channels.txt
state.*.json
*.secret
.password

View File

@ -1,5 +1,3 @@
# cosmicbot
Handles some cosmic.voyage stuff.
Trello board: [here](https://trello.com/b/w7huMYp6/cosmicbot).
Handles some cosmic.voyage stuff

File diff suppressed because one or more lines are too long

View File

@ -1,15 +0,0 @@
{
"names": {
"thing": ["one", "shadow", "dragon", "knight", "wizard", "mage", "witch", "hunter", "thief", "warrior", "soldier", "assassin", "magician", "sorcerer", "saint", "prophet", "wolf", "monster", "lion", "creature", "light", "demon", "angel", "world", "star", "king", "queen", "prince", "princess", "lord", "lady", "god", "goddess", "heart", "eye", "hand", "moon", "sword", "city", "wheel", "rune", "empire", "ash", "bone", "war", "dream", "book", "storm", "gate", "wind", "rain", "blade", "year", "apprentice", "maid", "servant", "teacher", "man", "woman", "tree", "throne", "desert", "daylight", "ghost", "crystal", "mountain", "glacier", "sea", "soul", "mind", "magic", "shard", "guardian", "snake", "army", "ruin"],
"things": ["ones", "shadows", "dragons", "knights", "wizards", "mages", "witches", "hunters", "thieves", "warriors", "soldiers", "assassins", "magicians", "sorcerers", "saints", "prophets", "wolves", "monsters", "lions", "creatures", "lights", "demons", "angels", "worlds", "stars", "kings", "queens", "princes", "princesses", "lords", "ladies", "gods", "goddesses", "hearts", "eyes", "hands", "moons", "swords", "cities", "wheels", "runes", "empires", "ashes", "bones", "wars", "dreams", "books", "storms", "gates", "winds", "rains", "blades", "years", "apprentices", "maids", "servants", "teachers", "men", "women", "trees", "thrones", "deserts", "ghosts", "crystals", "mountains", "glaicers", "seas", "souls", "minds", "magics", "shards", "guardians", "snakes", "armies", "ruins"],
"suf": ["of night", "of light", "of day", "of darkness", "of autumn", "of winter", "of summer", "of spring", "of shadows", "of dawn", "of dusk", "of twilight", "of desire", "of despair", "of doom", "of fire", "of eternity", "of fortune", "of gold", "of blood", "of hope", "of ice", "of infinity", "of all", "of sorrow", "of power", "of stone", "of the king", "of the queen", "of the forsaken", "of the land", "of the night", "of the skull", "of the stars", "of the sky", "of the wind", "of the void", "of the end", "of time", "of tomorrow", "of whispers", "of yesterday", "of old"],
"verb": ["rising", "falling", "accepting", "awakening", "dying", "dreaming", "binding", "forsaking", "losing", "painting", "whispering"],
"adj": ["blue", "white", "black", "red", "green", "emerald", "ruby", "sapphire", "violet", "orange", "yellow", "gold", "silver", "gray", "old", "new", "painted", "warded", "novice", "lost", "broken", "unseen"],
"rand": ["feast", "legacy", "cycle", "end", "beginning", "watching", "time", "colour", "sound"]
},
"formats": ["$things and $things", "The $thing and the $things", "$thing $suf", "$things $suf", "$things of the $thing", "The $adj $thing", "$rand $suf", "$verb $thing"]
}

View File

@ -1,13 +0,0 @@
{
"names": {
"noun": ["dead", "undead", "outside", "bite", "blight", "curse", "death", "grave", "madness", "nightmare", "prey", "night", "wood", "forest", "cavern", "cave", "house", "crypt", "library", "castle", "village", "attic", "mirror", "knife", "blade", "blood", "hill", "hills", "mountain", "hospital", "cabin", "street", "song", "whisper", "tree", "sky", "eye", "hand", "sound", "garden", "monster", "room", "road", "exit", "school", "island", "shock", "painting", "museum", "picture", "photograph", "ice", "snow", "winter", "summer", "day", "breath", "beat", "heart", "game", "bridge", "circus", "fire", "bone", "train", "plane", "boat", "water", "air", "mist", "fog", "embrace"],
"ppl": ["man", "boy", "woman", "girl", "ghost", "wolf", "raven", "spider", "snake", "butcher", "demon", "figure", "beast", "creature", "predator", "one", "outsider", "stranger"],
"adj": ["dark", "black", "dead", "undead", "evil", "beautiful", "white", "blue", "red", "violet", "forsaken", "savage", "naked", "cold", "freezing", "burning", "unknown", "empty", "invisible", "apex", "thin", "young", "old", "ancient", "slow", "fast", "forbidden", "sleeping", "waking", "damned"],
"prep": ["who", "in", "in the", "on the", "of the", "beyond the", "before the"]
},
"formats": ["$adj $noun", "The $adj $ppl", "The $ppl $prep $noun", "The $noun $prep $noun"]
}

View File

@ -1,12 +0,0 @@
{
"names": {
"obj": ["sword", "shield", "staff", "lute", "banjo", "hat", "shoes", "cloak", "jacket", "gloves", "chamber", "corridor", "room", "castle", "tower", "clock", "bed", "chair", "stone", "gemstone", "crystal", "ruby", "diamond", "prisoner", "warden", "wizard", "muggle", "forest", "mountain", "sea", "night", "day", "cabin", "shack", "art", "law", "cave", "hallows", "snake", "griffin", "spider", "monster", "unicorn", "orb", "sphere", "crown", "torch", "school", "medallion", "mirror", "window", "secrets", "voice", "silence", "hero", "protector", "spectre", "demon", "rock", "dragon", "wyrm", "basilisk", "sigil", "serpent", "parents", "houseelf"],
"of": ["secrets", "shadows", "uncertainty", "virginity", "fire", "ice", "death", "life", "time", "knowledge", "azkaban", "forever", "desire", "erised", "darkness", "light", "tomorrow", "yesterday", "hogwarts", "Gryffyndor", "Hufflepuff", "Ravenclaw", "Slytherin", "the dark lord", "requirement", "tears"],
"desc": ["silent", "deathly", "huge", "first", "last", "other", "whirling", "distant", "dark", "light", "mysterious", "twisted", "abandoned", "cold", "wizard's", "inquisitor's", "spy's", "professor's", "dead"]
},
"formats": ["Harry Potter and the $obj of $of", "Harry Potter and the $desc $obj"]
}

View File

@ -1,15 +0,0 @@
{
"names": {
"noun": ["wind", "air", "water", "eye", "heart", "gift", "love", "door", "gate", "maid", "butler", "servant", "storm", "flower", "flame", "spark", "dream", "secret", "light", "lover", "soul", "mist", "slave", "thorn", "scent", "stream", "lake", "river", "wave", "tears", "stone", "star", "stars", "tale", "sex", "pleasure", "bed", "touch", "embrace"],
"ppl": ["man", "boy", "woman", "girl", "one", "outsider", "stranger", "consort", "teacher"],
"place": ["village", "town", "city", "library", "musuem", "garden", "beach"],
"adj": ["secret", "silent", "white", "black", "blue", "red", "yellow", "green", "invisible", "undying", "hidden", "forbidden", "missing", "stolen", "beautiful", "loving", "last", "first", "only", "name of the", "sound of the", "touch of the"],
"prep": ["who"],
"verb": ["stole", "left", "ran", "walked", "swum", "had", "broke", "killed", "took"]
},
"formats": ["The $adj $noun", "$noun and $noun", "The $adj $ppl", "The $adj $place", "The $ppl $prep $verb the $noun", "A $ppl's $noun", "The $ppl of the $noun"]
}

View File

@ -1,14 +0,0 @@
{
"names": {
"thing": ["star", "sky", "planet", "moon", "agent", "robot", "house", "enemy", "child", "space", "ark", "earth", "wake", "sun", "rain", "night", "day", "world", "sunlight", "starlight", "noise", "time", "sleep", "snow", "dust", "flower", "dream", "memory", "pod", "ship", "bullet", "map", "player", "game", "detail", "weapon", "expanse", "hammer", "fire", "bubble", "slip", "vortex", "dimension", "portal", "machine", "end", "beginning", "orbit", "nest", "fall", "nebula", "war", "exile", "journey", "dusk", "daybreak", "word", "eye", "cascade", "horizon"],
"things": ["stars", "skies", "planets", "moons", "agents", "robots", "houses", "enemies", "children", "arks", "wakes", "suns", "rains", "nights", "days", "worlds", "noises", "times", "sleeps", "snows", "dusts", "flowers", "dreams", "memories", "pods", "ships", "bullets", "maps", "players", "games", "details", "weapons", "expanses", "hammers", "fires", "bubbles", "slips", "vortexes", "dimensions", "portals", "machines", "ends", "beginnings", "orbits", "nests", "falls", "nebulas", "wars", "words", "eyes", "cascades", "horizons"],
"verb": ["rising", "falling", "awakening", "dying", "dreaming", "whispering", "blinding", "everlasting", "burning", "living"],
"adj": ["black", "white", "diamond", "emerald", "ruby", "blue", "red", "dark", "light", "new", "old", "broken", "blighted", "corrupt", "bronze", "cascading", "gleaming", "remembered", "forgotten"],
"rand": ["revelation", "aurora", "redemption", "century", "millenium", "terminal", "eternal", "trauma", "transition", "raven", "tiger", "lion", "leviathon", "satellite", "celestial", "crescent", "deep", "gravity", "nova", "lunar", "parallel", "phase", "solar", "zenith", "understanding", "forgetting", "annihilation"]
},
"formats": ["$thing of $things", "$verb $thing", "The $verb $thing", "$adj $thing", "$rand $thing", "$rand $verb"]
}

File diff suppressed because one or more lines are too long

View File

@ -1,15 +0,0 @@
{
"names": {
"setting": ["Afterlife", "Airport", "Airplane", "Amsterdam", "Animal Shelter", "Animal Research Facility", "Art Gallery", "Athens", "Aquarium", "Back of a Cab", "Bakery", "Bank", "Bangkok", "Barcelona", "Basement", "Beach", "Beijing", "Barber Shop", "Beauty Salon", "Blood Bank", "Bridge", "Bookstore", "Borneo", "Botanical Garden", "Bridal Store", "Cabin", "Cape Town", "Car", "Castle", "Casino", "Cathedral", "Cave", "Church", "Cinema", "Circus", "College Dorm", "Club/Bar", "Coffeeshop/cafe", "College", "Concert Hall", "Dublin", "Dystopia", "Edge of a Cliff", "Eiffel Tower", "Elevator", "Empire State Building", "Fair", "Farm", "Fast Food Restaurant", "Florence", "Flowershop", "Football Field", "Forbidden City", "Galapagos", "Garden", "Greece", "Grocery Store", "Gym", "Haunted House", "Hospital", "Hotel", "Inside a Dream", "Iceland", "Ireland", "Italy", "Kitchen", "Laboratory", "London", "Library", "Lighthouse", "Madrid", "Maldives", "Medical Laboratory", "Metro", "Mosque", "Mumbai", "Munich", "Museum", "National Park", "Office", "Observatory", "Opera House", "Palace", "Park", "Paris", "Pirate Ship", "Post-Apocolypse", "Prague", "Prison", "Previously Undiscovered Island", "Principals Office", "Police Station", "Pyramids", "Racetrack", "Rainforest", "Restaurant", "Rome", "Sex Shop", "Shack", "School", "Secret Hideaway", "Seoul", "Sewer", "Shopping Centre", "Ship", "Shower", "Singapore", "Space", "Spaceship", "Stadium", "Strip Club", "Stonehenge", "Supermarket", "Switzerland", "Taj Mahal", "Taxi", "Tattoo Shop", "Theatre", "Temple", "Train", "Treehouse", "Tokyo", "Tower", "Vegas", "Venice", "Versailles", "Wildlife Ranch", "Windmill", "Woods", "Zoo" ],
"period": ["the Middle Ages", "the Viking Ages", "World War 1", "World War 2", "the Cold War", "the Modern Era", "the Future", "the Victorian Era", "the Anglo-Saxon Era"],
"theme": ["Beauty of simplicity", "Abuse of power", "Arrogance", "Art", "Autonomy", "Beating the odds", "Beauty", "Beliefs", "Betrayal", "Bible", "Bravery", "Capitalism effect on the individual", "Celebration", "Chance", "Change", "Change of power necessity", "Change versus tradition", "Chaos and order", "Chaos and order", "Character destruction, building up", "Children", "Circle of life", "Circle of life", "Coming of age", "Coming of age", "Common sense", "Communication verbal and nonverbal", "Companionship as salvation", "Conservation", "Conspiracy", "Convention and rebellion", "Courage", "Creation", "Crime", "Dangers of ignorance", "Darkness and light", "Darkness and lightness", "Death", "Death inevitable or tragedy", "Dedication", "Democracy", "Desire to escape", "Desire to escape", "Despair", "Destruction of beauty", "Disillusionment", "Disillusionment and dreams", "Displacement", "Economics", "Effects from the past", "Empowerment", "Empowerment", "Emptiness of attaining false dream", "Everlasting love", "Everlasting love", "Evils by humanity", "Evils of racism", "Facing darkness", "Facing reality", "Facing reality", "Fading beauty", "Failure", "Faith versus doubt", "Family", "Family blessing or curse", "Fate", "Fate and free will", "Fear", "Fear of failure", "Female roles", "Feminism", "Freedom", "Friendship", "Fulfillment", "Future", "Gay, Lesbian, Bisexual, and Transgender rights", "God", "Good versus bad", "Good vs Evil", "Government", "Greed", "Greed as downfall", "Growing Up", "Growing up pain or pleasure", "Happiness", "Hate", "Hazards of passing judgment", "Heartbreak of betrayal", "Heritage", "Hero", "Heroism", "Heroism real and perceived", "Hierarchy in nature", "Hope", "Human Nature", "Humor", "Identity", "Identity crisis", "Ideology", "Ignorance", "Illusion of power", "Illusion of power", "Immortality", "Individual versus society", "Individuality", "Injustice", "Inner peace", "Inner versus outer strength", "Innocence", "Isolation", "Isolation", "Isolationism hazards", "Jealousy", "Justice", "Kindness", "Knowledge", "Knowledge versus ignorance", "Law", "Leadership", "Liberty", "Life", "Logic", "Loneliness as destructive force", "Losing hope", "Losing hope", "Loss of innocence", "Loss of innocence", "Lost honor", "Lost love", "Lost love", "Love and sacrifice", "Love and sacrifice", "Loyalty", "Man against nature", "Man vs machine", "Man vs man", "Man vs nature", "Man vs self", "Manipulation", "Mankind", "Materialism as downfall", "Maturity", "Medicine", "Mercy", "Morality", "Motherhood", "Names power and significance", "Nationalism", "Nationalism complications", "Nature", "Nature as beauty", "Necessity", "Necessity of work", "Neglect", "Normality", "Opportunity", "Oppression of women", "Optimism", "Optimism", "Optimism power or folly", "Overcoming", "Overcoming fear, weakness, vice", "Passion", "Patience", "Patriotism", "Patriotism positive side or complications", "Peace", "Peer pressure", "Perfection", "Perseverance", "Power and corruption", "Power and corruption", "Power of silence", "Power of tradition", "Power of wealth", "Power of words", "Prejudice", "Pride", "Pride and downfall", "Progress", "Progress real or illusion", "Purpose", "Quest for discovery", "Quest for power", "Quests", "Race", "Reality", "Rebirth", "Redemption", "Regret", "Religion", "Resistance", "Reunion", "Reunion", "Revenge", "Revolution", "Role of Religion virtue or hypocrisy", "Role of men", "Role of women", "Sanity", "Secrecy", "Segregation", "Self inner and outer", "Self-awareness", "Self-awareness", "Self-discipline", "Self-preservation", "Self-reliance", "Simplicity", "Social Construct", "Social mobility", "Society", "Solitude", "Soul", "Suicide", "Survival", "Technology", "Technology in society good or bad", "Temporary nature of physical beauty", "Temptation", "Temptation and destruction", "Time", "Tolerance", "Totalitarianism", "Travel", "Trust", "Truth", "Universe", "Unselfishness", "Valor", "Vanity as downfall", "Vices", "Violence", "Virtue", "Vulnerability of the meek", "Vulnerability of the strong", "War", "War glory, necessity, pain, tragedy", "Waste", "Wealth", "Will to survive", "Willpower", "Winning and losing", "Wisdom", "Wisdom of experience", "Working class struggles", "Xenophobia", "Youth", "Youth and beauty"],
"profession":["accountant","actor","administrative assistant","advertising manager","aerobics instructor","aerospace engineer","agent","air conditioning mechanic","air traffic controller","aircraft mechanic","aircraft service technician","airline pilot","ambulance dispatcher","ambulance driver","amusement machine servicer","anesthesiologist","animal breeder","animal trainer","anthropologist","archeologist","architect","artist","astronaut","astronomer","athlete","audiologist","auditor","author","bailiff","baker","barber","bartender","bicycle repairer","biochemist","biophysicist","bookkeeper","brickmason","budget analyst","builder","building inspector","bus driver","butcher","cafeteria attendant","carpenter","cartographer","cashier","chauffeur","chef","chemist","chemistry teacher","chief executive","childcare worker","chiropractor","choreographer","cleaner","composer","computer programmer","computer support specialist","computer systems administrator","computer systems analyst","concierge","conservation worker","construction worker","cook","copy marker","correctional officer","cosmetologist","counsellor","courier","court reporter","crane operator","criminal investigator","crossing guard","curator","dancer","data entry temp","database administrator","delivery services driver","dentist","detective","dietitian","director","doctor","door-to-door sales worker","dressmaker","economist","editor","electrician","embalmer","engineer","english language teacher","engraver","environmental scientist","epidemiologist","escort","etcher","event planner","explosives worker","fabricator","family therapist","farmer","farmworker","fashion designer","film and video editor","financial analyst","fire investigator","fire-fighter","fisherman","fitness trainer","flight attendant","floral designer","forester","funeral director","general manager","general practitioner","geologist","glazier","graphic designer","grounds-keeper","gynecologist","hairdresser","health and safety engineer","historian","hotel desk clerk","hunter","hydrologist","janitor","jeweler","judge","landscape architect","lawyer","legal secretary","legislator","librarian","lifeguard","locksmith","locomotive engineer","maid","makeup artist","manicurist","marriage therapist","massage therapist","mathematician","mental health social worker","messenger","microbiologist","model maker","model","museum technician","music director","musician","nuclear technician","nurse","nutritionist","obstetrician","occupational therapist","office clerk","optician","optometrist","orthodontist","painter ","paralegal","paramedic","parking attendant","pediatrician","pedicurist","pest control worker","pharmacist","photographer","physical therapist","physicist","plasterer","plumber","podiatrist","police officer","politician","postman","priest","private detective","probation officer","producer","proofreader","property manager","psychiatrist","psychologist","radio announcer","receptionist","record clerk","refuse collector","reporter","roofer","sailor","secretary","singer","social worker","sociologist","software developer","sports entertainer","surgeon","tailor","taxi driver","teacher","telemarketer","translator","travel agent","typist","undertaker","veterinarian","veterinary technician","waiter","waitress","web developer","welder","woodworker","writer","zoologist"],
"trait": ["absent-minded", "adventurous","affectionate","aimless","alcoholic","ambitious","anxious","arrogant","assertive","astute","attentive","attractive","audacious","bigoted","blunt","bold","brave","bumbling","callous","calm","candid","capable","charismatic","childish","clear-headed","clumsy","committed","compassionate","competent","complex","confident","connected","conscientious","considerate","cooperative","courageous","creative","cruel","curious","cursed","deceitful","dedicated","dependent","deranged","determined","devout","diplomatic","disciplined","dishonest","disloyal","disturbed","dubious","dying","dynamic","easy-going","efficient","egotistical","emotionless","empathetic","empowered","energetic","enthusiastic","enthusiastic","envious","erratic","ethical","excited","expressive","extraverted","fair-minded","faithful","fanatical","fashionable","fearless","fickle","fierce","finicky","fixated","flexible","flirtatious","focused","forward-thinking","friendly","generous","gluttonous","grateful","gruff","gullible","happy","hard-headed","hard-working","headstrong","hedonistic","helpful","hoity-toity","honest","honorable","humourless","hypocritical","idealistic","ignorant","imaginative","immature","impatient","impious","impish","incompetent","indecisive","independent","indifferent","innovative","inquisitive","intelligent","interested","intolerant","introverted","jocular","joyful","judgemental","knowledgeable","lazy","lewd","lively","logical","loud-mouthed","loving","loyal","lucky","lustful","masochistic","meddlesome","meek","megalomaniacal","naïve","nervous","non-violent","nosy","nurturing","observant","obsessive","open-minded","optimistic","organized","overambitious","overconfident","overemotional","overprotective","overzealous","pacifist","paranoid","patient","peaceful","peevish","perfectionist","pessimist","phobic","playful","poised","polite","powerful","practical","predictable","prim","prissy","proactive","productive","proficient","proud","punctual","purposeful","put-upon","rebellious","reckless","reliable","remorseless","reserved","resourceful","rigorous","sadistic","sadomasochistic","sarcastic","sceptical","seductive","self-aware","self-confident","self-generating","self-reliant","self-righteous","self-sacrificing","selfish","selfless","senile","sensual","shallow","sincere","skillful","smart ass","soft-hearted","solemn","spineless","spiritual","spiteful","spoiled","spontaneous","squeamish","stable","strong","stubborn","successful","super-efficient","superstitious","supportive","tactful","tactless","talkative","temperamental","theatrical","timid","troublemaking","trusting","trustworthy","truthful","unlucky","unpredictable","untrustworthy","unyeilding","vain","versatile","vibrant","warm","watchful","weak-willed","willing","wise-cracking","wise","withdrawn","zealous"]
},
"formats": ["Write a story about a $trait $profession, with the underlying theme $theme.", "Write a story set in a/the $setting, during $period, with the underlying theme $theme."]
}

View File

@ -1,21 +0,0 @@
{
"names": {
"1": ["b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z", "d", "r", "t", "n", "d", "r", "n", "m", "t"],
"2": ["a", "e", "i", "o", "u", "a", "e"],
"3": ["br", "by", "bl", "cr", "ch", "cl", "dr", "fr", "fl", "gr", "gl", "kr", "pr", "pl", "st", "sl", "sh", "sm", "sy", "tr", "th", "wr"],
"4": ["a", "ae", "au", "ao", "ai", "ea", "eo", "eu", "e", "ua", "ue", "uo", "u", "ia", "io", "ie", "i", "oa", "oe", "ou", "oi", "o"],
"5": ["ral", "ver", "len", "he", "hei", "str", "po", "ol", "oli", "vis", "mar", "mard", "an", "ros", "cal", "ber", "mer", "dak", "pro", "prom", "sha", "shar", "von", "sun", "car", "cara", "jas", "na", "nau", "pen", "ros", "ava", "ken", "len", "ny", "nin", "yel", "aar", "at", "ate", "aten", "mor", "sky", "cyr", "nyx", "syr", "mov", "alen", "tam", "ald", "els", "val", "ara", "ata", "ala", "ale", "are", "ate", "ada", "ala", "ata", "atu", "alt", "aln", "eca", "ece", "eda", "ede", "ela", "eli", "elo", "era", "ero", "er", "eta", "eto", "eti", "eys", "eyl", "eo", "eon", "aeo", "ae", "arn", "art", "ent", "eno", "ena", "enu", "ex", "exr", "esa", "est", "ese", "il", "in", "it", "ord", "orb", "orn", "orl", "ola", "olo", "opa", "ope", "oda", "ode", "odi", "ola", "olo", "oli", "ole", "oly", "ona", "oma", "ono", "omo", "one", "ome", "oni", "omi", "lor", "sum", "ner", "sep", "jag", "yok", "ka", "kam", "tan", "rem", "mez", "elv", "og", "ser", "am", "bes", "bet", "mad", "end", "isr", "eul", "san", "lis", "har", "lem", "kin", "un", "shal", "shan", "dov"],
"6": ["dra", "rim", "run", "riel", "ra", "ceta", "ty", "the", "nia", "sal", "lor", "ca", "lan", "ren", "ron", "roth", "rin", "run", "tan", "ten", "ton", "tin", "tun", "ven", "vin", "von", "wan", "win", "won", "yon", "yan", "yn", "pan", "dan", "don", "din", "lan", "len", "lon", "lin", "lun", "man", "men", "mon", "so", "za", "na", "ma", "la", "lo", "ro", "ra", "ta", "to", "holm", "kin", "let"],
"7": ["our", "ania", "ia", "oria", "ana", "ena", "era", "ara", "am", "ar", "er", "ir", "or", "ur", "ad", "ed", "od", "et", "at", "eta", "ota", "on", "en", "in", "em", "on", "ol", "ian", "ith", "undr", "un"]
},
"formats": ["$5$6", "$5$7", "$3$2$6", "$3$4$6", "$3$2$6", "$1$2$3$6", "$2$3$7", "$5$2$7", "$5$1$2$6", "$5$2$1$6"],
"limit": 20
}

View File

@ -1,18 +0,0 @@
{
"names": {
"0": ["kings", "queens", "dragons", "blue", "green", "red", "white", "yellow", "black", "grey", "violet", "gold", "silver", "light", "dark", "day", "night", "shadow", "sun", "moon", "pine", "oak", "birch", "river", "raven", "wolf", "dawn", "night", "star", "stone", "wood", "iron", "blood", "great", "little", "emerald", "ruby", "rose", "skull", "death", "deep", "ash", "north", "south", "west", "east", "rain", "sea", "new", "old", "sword", "arrow", "frost", "flame", "fire", "ice", "myth", "myst", "slow", "quick", "hammer"],
"1": ["morn", "ton", "town", "dale", "pale", " city", "caster", "cester", "chester", "haven", "cott", "dean", "den", "don", "field", "firth", "helm", "ham", "mouth", "set", "star", "pool", "stead", "wick", "worth", "down", "downs", "springs", "ford", "forth", "ville", "bridge", "market", "land", "cliff", "gate", "port", "avon", "walk", "ash", "glen", "grove", "acre", "wood", "ward", "hill", "water", "born", "tree", "falls", "watch", "peak", "run", "hold", "spire", "shield", "fell", "glade", "shore"],
"2": ["ral", "ver", "len", "he", "hei", "str", "po", "ol", "oli", "vis", "mar", "mard", "an", "ros", "cal", "ber", "mer", "dak", "pro", "prom", "sha", "shar", "von", "sun", "car", "cara", "jas", "na", "nau", "pen", "ros", "ava", "ken", "len", "ny", "nin", "yel", "aar", "at", "ate", "aten", "mor", "sky", "cyr", "nyx", "syr", "mov", "alen", "tam", "ald", "els", "val", "ara", "ata", "ala", "ale", "are", "ate", "ada", "ala", "ata", "atu", "alt", "aln", "eca", "ece", "eda", "ede", "ela", "eli", "elo", "era", "ero", "er", "eta", "eto", "eti", "eys", "eyl", "eo", "eon", "aeo", "ae", "arn", "art", "ent", "eno", "ena", "enu", "ex", "exr", "esa", "est", "ese", "il", "in", "it", "ord", "orb", "orn", "orl", "ola", "olo", "opa", "ope", "oda", "ode", "odi", "ola", "olo", "oli", "ole", "oly", "ona", "oma", "ono", "omo", "one", "ome", "oni", "omi", "lor", "sum", "ner", "sep", "jag", "yok", "ka", "kam", "tan", "rem", "mez", "elv", "og", "ser", "am", "bes", "bet", "mad", "end", "isr", "eul", "san", "lis", "har", "lem", "kin", "un", "shal", "shan"],
"3": ["a", "e", "i", "o", "u", "a", "e"],
"4": ["dra", "rim", "run", "riel", "ra", "ceta", "ty", "the", "nia", "sal", "lor", "ca", "lan", "ren", "ron", "roth", "rin", "run", "tan", "ten", "ton", "tin", "tun", "ven", "vin", "von", "wan", "win", "won", "yon", "yan", "yn", "pan", "dan", "don", "din", "lan", "len", "lon", "lin", "lun", "man", "men", "mon", "so", "za", "na", "ma", "la", "lo", "ro", "ra", "ta", "to", "holm", "kin", "let", "ris", "hus"],
"5": ["reach", "leap", "stand", "brink", "rift", "pale", "sadness", "sacrifice", "embrace", "ascent", "desolation", "dream", "heart", "end", "rest", "refuge", "tears"],
"6": ["arch", "forest", "wood", "hollow", "fen", "coast", "wildlands", "shore", "mountain", "cove", "grove", "pass", "keep", "camp", "ridge", "crossing", "gorge", "passage", "watch", "palace", "castle", "farm", "throne", "rock", "ruins", "barrow", "citadel", "tower", "causeway", "desert", "jungle", "wastes", "lair", "bridge", "labyrinth", "swamp", "lands", "vale", "valley", "highlands", "lowlands", "foothills", "glade", "peak", "mesa", "altar", "temple", "church", "gate", "post", "bay", "shrine", "mine", "cave", "cavern"],
"7": ["king's", "queen's", "dragon's", "empire's", "divinity's", "divine's", "sky's", "ocean's", "dawn's", "twilight's", "giant's", "heroes'", "death's"]
},
"formats": ["$0$1", "$0$1 $6", "$2$3$4 $6", "$7 $5", "$0 $6", "$2$3$4's $5"]
}

View File

@ -1,282 +0,0 @@
{
"prompts": [
"A child's imaginary friend needs to convince the child they're real so they don't disappear.",
"Choking on ash, I watched helplessly as the great tree Yggdrasil burned.",
"The protagonist starts a job in a psychiatric unit and is transported into the clients' hallucinations. Can they get back?",
"In a world where magic is gained through one's interactions with others, how does your antagonist acquire power?",
"They ran through the countryside, spreading out in all directions. We watched in horror as the battle was lost.",
"Technology-less, humans find themselves evolved with shrunk tongues and brains due to their lack of use.",
"The acrid smell of burnt wood hung in the air, making their eyes water as they stumbled along the deserted sidewalk.",
"Your hair, features and skin are gradually disappearing. What do you see when you look in the mirror?",
"You are cursed every Wednesday to endure a tragedy, but on Thursday no one remembers. Convince a friend to help.",
"You realise that a shop you walk past every day is only visible to you and no one else. What awaits you inside?",
"In a remote town in the North of England, a veil between worlds opens once a year on Halloween.",
"A mysterious merchant in a station sells all kinds of tickets to anywhere, fictional or not -- where do you go?",
"You awake in a still battlefield, under a pile of bodies, blind in one eye. You recall fighting; nothing else.",
"You run after someone who left a strange book on the bus and they go into a house. Through the window you see...",
"A monarch stands in front of their Court and commands that their child be executed. What events lead to this point?",
"You find a handwritten manifesto for your life in your old diary. You can't remember when it was written.",
"Their jeans grew damp from the wet grass as they watched the fireworks light up the night sky.",
"Cathedral walls writhed and heaved as the gargoyles were roused from a millennia of static malevolence.",
"You are given a skill at birth, but all the good ones are gone. Now you've got to save people with card shuffling.",
"My mother only had two basic rules. Don't ever fall in love, and never summon a demon. I couldn't honour either.",
"I stood by the graveside. We were burying Uncle Eric. Again.",
"It was a rainy day in the Garden of Cosmic Speculation.",
"Death is retiring and needs to find a replacement for the job.",
"An exhibit in a famous museum becomes bored with its cramped and unstimulating lifestyle.",
"Pizza as a religion.",
"Every emotion a human feels becomes written on their body. One day someone is found with blank skin.",
"The day the sharks took to the air began like any other day.",
"A child slips into a pond, resurfacing in a parallel world where good is bad. There, they make a surprising friend.",
"In the basement the marble floor was cold under their feet. They wondered why the basement door was kept locked.",
"Imagine you are a wild animal. Describe your first interaction with a human.",
"When a dreamer dies, what happens to the dream?",
"You wake up, only to find that the dragons have returned and have claimed you as their leader in the upcoming war.",
"Bored at college you start tapping inaudibly under your seat. You find a note stuck to the bottom of it.",
"A story of forbidden love set in a world where gender doesn't exist, but other dividing factors and prejudices do.",
"After living your whole life as an atheist, you die and arrive at The Pearly Gates confronted by St. Peter.",
"Describe being a pollen grain on a flying bee. Flowers are ahead but a plastic bag suddenly intercepts your flight.",
"Green smoke swirled inside the only jar among the empty bottles. Its label read: Don't open. Or do. It's up to you.",
"Write about a character who can no longer recognise faces or objects. Describe their normal journey to work.",
"An evacuee living in Cornwall to escape the Blitz finds the family they never had in a wild tribe of pixies.",
"The stars were shining brightly when the child climbed out of bed, and tiptoed to the window.",
"The Onkidonk of Erleigh Reach has left Baracu. They carry the Cron of Gal, their Javlik, and the stolen Neamosst.",
"An urchin child accidentally murders the King's religious minister. The King's advisor takes him in.",
"Being chased through time and space, your only escape is to find portal after portal, wherever they might appear.",
"They took off their hat, along with their hand.",
"You wake up. Everyone has disappeared apart from you and your best friend. What does the world feel like?",
"You fall asleep a second after noticing your dream catcher fell and cracked on the floor. A trapped dream escapes.",
"Write about a world in which humans have evolved to be able to communicate without spoken language.",
"Write about a world where eyes are a gateway to other dimensions, and eye colour determines the dimension within.",
"A child writes about a fantasy world and one night is transported there. They have until dawn to find a way out.",
"They looked back through the portal and then at the new horizon before them. The two worlds were so different.",
"They knew that jumping forward from this vast red rock would be their final jump; a step to their new home.",
"What if when we die, we start our lives again in an alternate reality?",
"An unemployed millennial chooses daring quests and giant slaying over yet another Thursday sitting in the job centre.",
"A soldier has to rethink their strategy after a spelling error proves it wasn't a dragoon terrorising the local villa.",
"Today your kingdom was prophesized to crumble. Everything changes, but not quite how you thought.",
"You find a musical instrument, unlike any other. Where has it come from? More importantly, how does it sound?",
"On the eve of your coronation you receive a gift: a severed hand clutching a scroll sealed with your enemy's crest.",
"By all means point your gun at me if it helps you to relax -- it's not like you're actually going to use it.",
"It was strange walking in through the front gate. Usually I'd be breaking in to a place like this.",
"Make each person in your family into a deity of a new pantheon -- and construct the full mythology around them.",
"The tree in your backyard kneels down and begins a conversation.",
"Most men die once. But my father isn't like most men.",
"Everyone is named alphabetically according to social class. Your name is Z---- (slums). You meet A---- (royalty).",
"Hidden by the shadow of an oak tree, You wait. Your quarry comes into view just as a hand grabs you from behind.",
"A teen looks in their bedroom mirror. Nothing is reflected back at them except darkness.",
"You have exclusive use of a private jet and unlimited means. Where do you go? What if you can't come back?",
"The Death Houses, where the sick and destitute spent their last days, had been pulled down years ago.",
"The camera could steal people's souls. On the walls, the portraits wailed and begged for freedom.",
"I try to lift my wrists, but the straps are too tight. I watch them take her away: my baby, born for their purpose.",
"As our eyes met for the first time I imagined how it would feel to peel away their skin with my fingers.",
"Since your sibling died you've heard their voice in your head, then other people begin to mistake you for them.",
"I spotted the first mark on Sunday; a tiny purple bruise on my knee. By Tuesday my whole leg had turned black.",
"You're lying on a cold metal table in a morgue. And you're awake.",
"Yesterday I stopped screaming -- all that was left was the silence.",
"You come home to find an old-fashioned phone sitting in the middle of your table. No wires lead to it. It rings.",
"Friends take a shortcut through a dark wood each telling a scary story as, unbeknownst to them, something follows.",
"The apocalypse has come and gone, and society is rebuilding. How will the main character handle civilisation?",
"Stretching out, the bony hand clasped and ripped at the air, desperate to wrench them into its abyss.",
"Like clockwork, the scrabbling in the attic stopped and the screaming started.",
"At first, they thought that nothing had happened at all. Then they looked down and saw the blood, and screamed.",
"They live in the old asylum now, mumbling incoherently. No one had believed their story -- how wrong they all were.",
"I woke again with that desperate feeling of panic. It had happened again: the bloody blade lay beside me.",
"A sadistic serial murderer is on the hunt, but what happens when fate has them choose a victim who feels no pain?",
"'14th Century' read the sign by the pub. Odd. The building looked old, but definitely hadn't been here yesterday.",
"The face stared out at me; wide-eyed and hollow-cheeked and instantly unforgettable.",
"The crying at night doesn't stop. Living alone, on an abandoned rig in the North Sea, I am afraid.",
"The lights of every house in the town were on that night, except for one...",
"A parent raises their child to fend for themself; they become a cannibal.",
"The archaeologists were amazed to find a perfectly preserved human in that ice cave -- but why did it have my face?",
"An abandoned storage locker has been emanating a sickly sweet smell for weeks. What's inside?",
"Your villain has to go to therapy to discuss their issues. Write about what transpires during the session.",
"You find yourself lost in the woods. You see arrows on the floor leading you further into the trees.",
"They thought the employees in costume at the theme park were only pretending -- they could not have been more wrong.",
"You awake alone and get ready for work. You go to unlock the door and notice a strange pair of shoes by the doormat.",
"Late one night you hear a knock at the door. You open it to see Death waiting. Death offers you a bargain...",
"What if you fabricated a past only to start suffering the emotional and physical trauma associated with that life?",
"Still life paintings at a holiday villa depict familiar scenes from your past. But you've never been here before.",
"You never open the door when they're knocking. Never.",
"Half-starved, I almost didn't notice m fries weren't fries at all... but something far more sinister.",
"An incurable virus has been stolen from a top security research lab and been placed in a town's drinking water.",
"I pressed my palm to the glass. My breath caught as my reflection gripped my hand & bared its teeth in a grin.",
"Its evil red eyes burned into mine. I froze with cold terror as I realised the face staring back at me was my own.",
"The savage way the new lodgers gorged themselves at our welcome dinner told me that we, like our home, were theirs now.",
"As we walked through the wood the trees leaned inwards, and my hands became sticky not with sap... but with blood.",
"Your bare feet pound the forest floor as you realise you are not the hunted, you are the hunter.",
"You find a duffel bag beside the road and stop to investigate. What's in it? What happens next?",
"Imagine living in the dark deep past, when only a few million people exist on the entire planet. And monsters.",
"I expected the knock at the door would come eventually, but I didn't expect it to happen at midnight.",
"You get a call in the middle of the night: it's a lawyer. You've inherited an estate, but there's a catch.",
"I seldom found time for reflection but now, alone at sea; I'm inundated with re-emerging memories from my past.",
"They lived alone, so they were alarmed to see flowers and a sweating glass of champagne on the table when they arrived home.",
"A band goes on a tour in 1982. In every new town oddities occur that seem to be connected to the band somehow.",
"Five people meet over dinner. All their deaths are scheduled for two weeks' time. Some want to die, some do not.",
"An innocent tweet about your breakfast spirals out of control, when a strange police squad arrests you for treason.",
"The door to the yoga studio was wide open when it should have been closed. But I had locked it myself last night.",
"Imagine your protagonist finds a loved one acting completely out of character, for no explicable reason. Why is it?",
"As the elevator door is about to close, you lock eyes with someone on the other side -- someone from the past.",
"The protagonist lives a normal life until they adopt a cat, unaware that it ran away from its previous owner -- the devil.",
"We all have deep, dark secrets. Something we saw, did, or heard. Write about that thing you've never told anyone.",
"The proprietor of the trattoria was puzzled by the customer who arrived every Tuesday at exactly 12.30.",
"You stand accused of killing the Queen. The only person who can vouch for you is her ghost. No one can see her.",
"You're preparing for bed, you glance outside & there's a car you don't recognise. Then your doorbell rings...",
"A character needs help, but there's a catch: they need to keep their goal a total secret from the helper.",
"If only, they thought, they had spelled my name right in my obituary, then this might have been a brighter day.",
"You wake, uneasy. There's a soft, regular sound coming from downstairs. The baby is gone, your home altered...",
"Whilst walking your dog in the snow, you notice the tracks it leaves behind are human footprints.",
"You come to work one day to find all emails & social media accounts logged in to another person. Who are they?",
"A local take-away doesn't have a menu or serve food, but weird customers come and go. You get a job to investigate.",
"I don't know what made me follow them. They looked just like any other couple...",
"A mirror in the protagonist's new house allows them to see into the life of someone murdered there fifty years ago.",
"If the people of the town had not been so eager to avoid eye contact they might've had an idea of what was coming.",
"The skull I'd placed in the kitchen window to deter unwanted visitors may not have helped.",
"Playing the message for the second time, they shivered. They hadn't been known by that name for years.",
"In a train station, you see someone interesting and steal their bag and ticket. Where will your new items take you?",
"Nobody at the funeral was sure what had killed him, but they all had theories.",
"Write about a murder in a bouncy castle.",
"You suspect your partner is an online troll. How do you find out for sure, and what do you do?",
"The week before your home is due to be repossessed, your new boss calls you with an intriguing offer.",
"You are alone. Where are you? You are curious, fearless. What will you do? You can explore. What will you find?",
"What kind of person brings a toddler to a funeral? And who the hell leaves one there?",
"A man you faintly recognise is glaring at you as though he wished you dead. Who is he and why is he so angry?",
"Only one box was left in the attic. I had no idea what it was -- or even if I had packed it up and put it there.",
"It had been stupid of me to even suggest it, but they committed a sin when they agreed. Everything had changed.",
"You wake up after a successful date, in a room decorated almost identically to your own.",
"People either fall for me or try to kill me. Little did I know that today, it would be both.",
"A beautiful letter to 'the current occupant' arrives. Inside is a red, silk handkerchief and an address on a card.",
"It all began the day I found myself on my knees cleaning out a dead man's fridge.",
"You are mistaken for a member of a cult when you accidentally imitate their secret greeting.",
"A detective finally hunts down a notorious killer, only to realise upon their arrest that they agree with the killer's motive.",
"The knife had missed by an inch. This had to be the last time. Gently she took it from him, holding her breath.",
"In a bookshop, you see a book with your name on the spine. Your picture is on the book jacket. YOu did not write it.",
"Alone, the protagonist waits. Today, after twenty five years, they will finally meet their daughter.",
"Every year on the same day a new letter comes: 'They're alive, and they're waiting for you.'",
"I saw them across the room, their arm around a new lover. The first person I ever loved. The first person I'd ever kill.",
"Mother had been dead for eleven years when I saw her on a packed train.",
"The pizza chef was dead, smothered in mozzarella and tomatoes. Was it murder? Or had he topped himself?",
"I stood there waiting for the door to open, my heart thumping, my eyes burning. I knew it was the only way.",
"While checking the post you find that a letter has been sent to you from your deceased partner. What does it say?",
"You awaken encircled by eleven skeletons, your hand stamped with the number 12. What does this mean? Are you next?",
"The wind blew hard, and as the waves crept further up the beach the evidence slowly disappeared from the sand.",
"You stumble across your headstone at your local cemetery. Someone has written your epitaph. What does it say?",
"Then, very faintly, from the house next door, came the sound of breaking glass.",
"You sail back to land after a storm. No one remember who you are -- neither spouse, nor friends, nor children.",
"A murder at a secluded crime writing retreat leads to some unusual methods of detecting the killer.",
"They had the party all planned out; a night of luxury, games, and twisted schemes.",
"The car sped away; they'd left me for dead by the roadside. Stupid of them, when I was alive and furious.",
"Every morning I had to hide my ex's shoes; because every morning they came back from the grave and reappeared under my bed.",
"Recount the story of a family name, as told by the ghosts who bore it.",
"You awake with a jellyfish tattoo on your palm. Turning on the news, everyone has one. You set out to find out why.",
"Your spouse disappears for two weeks, then returns with a newborn.",
"The moonlight is so bright it wakes you. Looking out your window, you see the taxidermist working.",
"The protagonist investigates a murder, only to find out they were the one who committed it.",
"You're a valet driver parking a car. Inside you find a crumpled note with your own address on it. What do you do?",
"They took the same seat they always did. This time, there was someone with them.",
"I knew it was over the day they shouted for mushrooms.",
"Two days after the proposal, they found a card at their doorstep, written in messy handwriting: 'DON'T MARRY THEM.'",
"In order to merge their businesses, two wealthy people are forced into an unwanted arranged marriage.",
"An unattached billionaire wants to find a worthwhile heir, so they pretend to be broke.",
"Write a story from the point of view of a 100 year old mirror.",
"The street lamp seemed brighter with them standing underneath. She looked at me and there was just the two of us.",
"We'd matched on Tinder, and arranged to meet. I was happy until I saw the slogan on their t-shirt.",
"The babysitter was late, her shoes hurt and she wasn't a bit hungry after finishing the girls leftovers.",
"They've never met outside of a dream, but they are in love. One is the Moon and one the Sun.",
"I climbed to the top of the mountain, and then I knew I would be free.",
"They began to run, faster and faster, as quickly as their short legs could carry them. There was no turning back now.",
"Carefully you lift the quill and open the small vial of ink. This is the most difficult letter to write...",
"Two gay puffins want to adopt an egg. Will the RSPB help them in their quest for responsible parenthood?",
"A blind person falls in love with the scent of a train passenger. How do they find them?",
"The protagonist nervously awaits their turn for an interview but discovers the interviewer is an ex-lover. What happens next?",
"Your estranged sibling unexpectedly dies and would like you to become guardian to their child.",
"\"I love you\", they said, but it came out like a scream. Mucus glistened from their nose and mouth. \"You're crazy.\"",
"The lead can't use the word love or an equivalent. What terms/actions do they use instead to express this feeling?",
"Someone is arrested for a murder they didn't commit. Their lover becomes a lawyer to clear them.",
"The protaginist finds notes in books they borrows from library. They searches for the sender.",
"They were the last person you expected to see standing there. It had been twelve long years. What do you do?",
"\"Give me one good reason why I should wear a dress.\" They stuck their chin out defiantly. \"You're the bride.\"",
"Two people connect on a singles app. A virtual romance begins, despite living locally they haven't met...",
"Chaos ensues when a charming newcomer moves into a retirement block.",
"You should have called them 5 years ago but didn't. You dial the number now; they pick up...",
"The congregation stifled giggles as it grew clear that what the vicar was reading aloud was definitely not the intended sermon.",
"As I hung desperately onto the barrier, watching your train depart, I realised that I'd made a huge mistake.",
"They was standing outside the building again, cap low, head down.",
"A couple react to a tragic event -- it doesn't involve them but it alters their relationship in a significant way.",
"The blind one's ideas are as seductive as they are unsettling.",
"Write about the storm that started the day they disappeared.",
"Write a dystopian romance about someone whose memory has been extracted trying to find their way back to the truth.",
"They were beginning to wish they had not worn their buttoned-up camel-haired coat on such a warm day.",
"Think of the person you hate most. Why did their partner fall in love with them?",
"A couple fall in love in a place one is otherwise unhappy. Write about their search for somewhere that suits both.",
"The passenger next to me asked my name. I lied.",
"My hand hesitated before clicking 'submit'. No going back on it now. Online dating: how difficult could it be?",
"I'd waited three years, I could wait another hour.",
"My fingers traced the glass bottle in front of me and eventually pulled out the bundle of papers stuffed inside.",
"Your character falls for the person who scares them the most.",
"An important meal occurs between a couple, but only one knows the meal is important beforehand.",
"They were the one person I hated more than anything. And now I was stuck on an elevator with them.",
"I had my first seizure when I was four days old. I flew my first spaceship at seventeen.",
"Your toddler died 20 years ago. At the annual memorial dinner, someone comes up to you and says they are your child's spouse.",
"The window in the garden wall has been boarded up forever, but tonight a dull, violet light pulses in the cracks...",
"Another day dawned at the facility. Gaunt faces haunted windows -- visceral, hungry and waiting for the end.",
"A ghost town, frozen in time since 1957, plays Elvis Presley records non-stop. Nobody wants to talk about it.",
"The spaceships landed slowly on the grass a little way across from you. Why are they here? And why in front of you?",
"Three legged aliens were not uncommon but these were wearing stiletto heels. Who was selling sets of three shoes?",
"It was the 30th of February when I stopped the clocks; I needed more time.",
"You have one chance to speak to an alien population. Write the speech.",
"You are a robot who wants to be human, you mimic human emotions in an attempt to transform. How do you mimic?",
"You're the world's first sentient robot. Decide whether to use your super-intelligence to help or enslave humanity.",
"A scientist unexpectedly discovers that gravity is not a force of nature but vanishes before the big reveal...",
"You wake up one morning to find everything has changed. Your family, your house; even your face in the mirror.",
"What if the sun doesn't rise tomorrow?",
"All of your body's functions (breathing, digestion etc.) require constant conscious effort.",
"A deep space crew find an alien object. They violently argue over who owns it. They realise it is observing them.",
"There was nothing left of home. So I walked, and I found myself far from where our house once stood.",
"A psychologist, traversing through the mind of their patient in a CBT session, uncovers some unsettling truths.",
"Earth is facing destruction, and only one person can save it. The only problem is, they've been dead for 100 years...",
"The sun is going down and taking Earth with it. What will happen to those left behind on the doomed planet?",
"The fantasy of eternal youth had been reduced to a medical procedure. At least for those deemed worthy of its gift.",
"You've unexpectedly entered a dimension in which your actions have no consequences. You've just committed a murder.",
"You discover that your partner is an AI-enabled humanoid whose characteristics have been selected by your parents.",
"In the future we can 3D print body parts using stem cells.The body parts don't HAVE to replace conventional ones.",
"The protagonist has two choices. Neither is good.They must choose one. They have three minutes.",
"Humans and an alien race make first contact. Write about it from the distant perspective of another alien race.",
"You find a note from yourself telling you to meet someone you've never heard of at 28 o'clock. It's dated yesterday",
"There will be a huge earthquake tomorrow, but nobody will listen because today is April Fool's Day.",
"Implanted Nanobots track your movements and monitor your conversations. How would you keep and maintain a secret?",
"After being invaded 50 years ago, a group of scientists set out to create a child that's half human and half alien.",
"Post nuclear-apocalypse. Rebuild the world.",
"The night sky was ablaze with light but this went unnoticed by the couple kissing in the back of the car.",
"An intergalactic manhunt for a mass murderer: you. Only thing is, you're innocent, and didn't think aliens existed.",
"A scientist discovers that a distant star cluster is actually a system of satellites. Who put them there and why?",
"The Earth becomes so polluted that the atmosphere starts to block the sun out. How will they survive?",
"You have never seen it so dark. Normally there'd be at least a few stars shining in the galaxy but not tonight.",
"AI overlords took charge 20 years ago, on the day you were born. You discover an anti-AI leaflet your parents kept.",
"Four playwrights are abducted by aliens and must use their talents to entertain their captives and stay alive.",
"Every day, the strength of Earth's gravity increases by 1%. The protagonist keeps a diary as the world ends.",
"The daughter of a brilliant quantum physicist gets sucked into her mother's latest top secret experiment.",
"The development of artificial intelligence has left the world void of faces. What were they? Where did they go?",
"I had never woken up in the middle of an impact crater before.",
"How does one know if a robot has actually learnt to love, and how does one go about proving it?",
"At the fairground, a child begs to go on a carousel... when the ride stops, they find themselves in World War Two.",
"In the future, it is possible to communicate instantly with everyone on Earth. Why does this cause problems?",
"To see if they are mentally fit to colonize Mars, a commercial space mogul runs psychological tests on millennials.",
"Today you're cutting down the tree in your backyard. For the last time you go up to your childhood tree house where you used to spend every afternoon with a bunch of friends. There you find a forgotten piece of paper that brings back a lot of memories.",
"Every human has a 'luck rating' - a number from 1-100 that defines how lucky they can be. Born with a rating of 100, you're confined in a maximum security prison. You think your luck should get you out easily - that is, until you see that all the other inmates also have luck ratings of 100.",
"When you die, you appear in a cinema with a number of other people who look like you. You find out that they are your previous reincarnations, and soon you all begin watching your next life on the big screen.",
"It's 3 AM. An official phone alert wakes you up. It says \"DO NOT LOOK AT THE MOON\". You have hundreds of notifications. Hundreds of random numbers are sending \"It's a beautiful night tonight. Look outside.\"",
"Humans once wielded formidable magical power but with over 7 billion of us on the planet now Mana has spread far too thinly to have any effect. When hostile aliens reduces humanity to a mere fraction the survivors discover an old power has begun to reawaken once again.",
"Whenever you speak, people hear you speaking in their native language. Most people are surprised and delighted. The cashier at McDonalds you've just talked to is horrified. \"Nobody's spoken that language in thousands of years.\"",
"Your entire life, you've been told you're deathly allergic to bees. You've always had people protecting you from them, be it your mother or a hired hand. Today, one slips through and lands on your shoulder. You hear a tiny voice say \"Your Majesty, what are your orders?\"",
"You never kill the spiders in your home, you just whisper \"today you, tomorrow me\" when you set them outside. Now, in your most dire moment, an army of spiders arrives to have your back.",
"You are the world's greatest detective. With your near superhuman intellect, you have never failed to solve a case before. But one day, you finally meet your match: a criminal so unbelievably stupid that you cannot possibly comprehend and predict what they're going to do next.",
"You don't sleep. Instead you die every day and 8 hours later you wake up in the body of a person who has 16 hours left to live.",
"Your butler has served you faithfully for twenty years, working hard, offering sage advice and never complaining. One day, you see his bank balance. He's a billionaire.",
"You discovered the ability to time travel. You go 30 years into the future expecting to meet your future self only to discover that you've been missing for 30 years.",
"Every night, you enter into an alternate reality, a connected dreamworld that every person experiences.",
"You're just drifting off to sleep when you hear a faint whisper in your ear. \"Well...hello again.\"",
"There was blood everywhere, and I sure as hell wasn't going to clean it up!",
"As you breathe your last breath and the light begins to fade, the looming figure of death appears before you and says: \"Oh for fuck sake, not you again.\""
]
}

View File

@ -1,194 +0,0 @@
[
"First name?",
"Surname?",
"Middle names?",
"Nicknames?",
"Date of birth?",
"Age?",
"Height?",
"Weight?",
"Build?",
"Hair colour?",
"Hair style?",
"Eye colour?",
"Eye Shape?",
"Glasses or contact lenses?",
"Distinguishing facial features? ",
"Which facial feature is most prominent?",
"Which bodily feature is most prominent?",
"Other distinguishing features?",
"Skin?",
"Hands?",
"Make up?",
"Scars?",
"Birthmarks?",
"Tattoos?",
"Physical handicaps?",
"Type of clothes?",
"How do they wear their clothes?",
"What are their feet like? (type of shoes, state of shoes, socks, feet, pristine, dirty, worn, etc)",
"Race / Ethnicity?",
"Mannerisms?",
"Are they in good health?",
"Do they have any disabilities?",
"What words or phrases do they overuse?",
"Do they have a catchphrase?",
"Are they more optimistic or pessimistic?",
"Are they introverted or extroverted?",
"Do they ever put on airs?",
"What bad habits do they have?",
"What makes them laugh out loud?",
"How do they display affection?",
"Mental handicaps?",
"How do they want to be seen by others?",
"How do they see themselves?",
"How are they seen by others?",
"Strongest character trait?",
"Weakest character trait?",
"How competitive are they?",
"Do they make snap judgements or take time to consider?",
"How do they react to praise?",
"How do they react to criticism?",
"What is their greatest fear?",
"What are their biggest secrets?",
"What is their philosophy of life?",
"When was the last time they cried?",
"What haunts them?",
"What are their political views?",
"What will they stand up for?",
"Who do they quote?",
"Are they indoorsy or outdoorsy?",
"What is their sinful little habit?",
"What sense do they most rely on?",
"How do they treat people better than them?",
"How do they treat people worse than them?",
"What quality do they most value in a friend?",
"What do they consider an overrated virtue?",
"If they could change one thing about themselves, what would it be?",
"What is their obsession?",
"What are their pet peeves?",
"What are their idiosyncrasies?",
"Is their family big or small? Who does it consist of?",
"What is their perception of family?",
"Do they have siblings? Older or younger?",
"Describe their best friend.",
"Ideal best friend?",
"Describe their other friends.",
"Describe their acquaintances.",
"Do they have any pets?",
"Who are their natural allies?",
"Who are their surprising allies?",
"What was your character like as a baby? As a child?",
"Did they grow up rich or poor?",
"Did they grow up nurtured or neglected?",
"What is the most offensive thing they ever said?",
"What is their greatest achievement?",
"What was their first kiss like?",
"What is the worst thing they did to someone they loved?",
"What are their ambitions?",
"What advice would they give their younger self?",
"What smells remind them of their childhood?",
"What was their childhood ambition?",
"What is their best childhood memory?",
"What is their worst childhood memory?",
"Did they have an imaginary childhood friend?",
"When was the last time they were crushed with disappointment?",
"What past act are they most ashamed of?",
"What past act are they most proud of?",
"Has anyone ever saved their life?",
"Strongest childhood memory?",
"Do they believe in love at first sight?",
"Are they in a relationship?",
"How do they behave in a relationship?",
"When did you character last have sex?",
"What sort of sex do they have?",
"Has your character ever been in love?",
"Have they ever had their heart broken?",
"How do they respond to a threat?",
"Are they most likely to fight with their fists or their tongue?",
"What is your characters kryptonite?",
"If your character could only save one thing from their burning house, what would it be?",
"How do they perceive strangers?",
"What do they love to hate?",
"What are their phobias?",
"What is their choice of weapon?",
"What living person do they most despise?",
"Have they ever been bullied or teased?",
"Where do they go when theyre angry?",
"Who are their enemies and why?",
"What is their current job?",
"What do they think about their current job?",
"What are some of their past jobs?",
"What are their hobbies?",
"Educational background?",
"Intelligence level?",
"Do they have any specialist training?",
"Do they have a natural talent for something?",
"Do they play a sport? Are they any good?",
"What is their socioeconomic status? ",
"What is their favourite animal?",
"Which animal to they dislike the most?",
"What place would they most like to visit?",
"What is the most beautiful thing theyve ever seen?",
"What is their favourite song?",
"Music, art, reading preferred?",
"What is their favourite colour?",
"What is their password?",
"Favourite food?",
"What is their favourite work of art?",
"Who is their favourite artist?",
"What is their favourite day of the week?",
"What is in their fridge?",
"What is on their bedside table?",
"What is in their car?",
"What is in their bin?",
"What is in their purse or wallet?",
"What is in their pockets?",
"What is their most treasured possession?",
"Who or what is your characters guardian angel?",
"Do they believe in the afterlife?",
"What are their religious views?",
"What do they think heaven is?",
"What do they think hell is?",
"Are they superstitious?",
"What would they like to be reincarnated as?",
"How would they like to die?",
"What is your characters spirit animal?",
"What is their zodiac sign?",
"What do they think is the worst thing that can be done to a person?",
"What is their view of freedom?",
"When did they last lie?",
"Whats their view of lying?",
"When did they last make a promise?",
"Did they keep or break their last promise?",
"What are their eating habits?",
"Do they have any allergies?",
"Describe their home.",
"Are they minimalist or a clutter hoarder?",
"What do they do first thing on a weekday morning?",
"What do they do on a Sunday afternoon?",
"What do they do on a Friday night?",
"What is the soft drink of choice?",
"What is their alcoholic drink of choice?",
"What is their character archetype? (Innocent, Orphan, Hero, Caregiver, Explorer, Rebel, Lover, Creator, Jester, Sage, Magician, Ruler)",
"Who is their hero?",
"What or who would your character dress up as for Halloween?",
"Are they comfortable with technology?",
"If they could save one person, who would it be?",
"If they could call one person for help, who would it be?",
"What is their favourite proverb?",
"What is their greatest extravagance?",
"What is their greatest regret?",
"What is their perception of redemption?",
"What would they do if they won the lottery?",
"What is their favourite fairytale?",
"What fairytale do they hate?",
"Do they believe in happy endings?",
"What is their idea of perfect happiness?",
"What would they ask a fortune teller?",
"If your character could travel through time, where would they go?",
"What sport do they excel at?",
"What sport do they suck at?",
"If they could have a superpower, what would they choose?",
"What would your character do if they met you their creator?"
]

View File

@ -1,133 +0,0 @@
[
"Are the laws of nature / physics different to earth? Elaborate.",
"Are there multiple suns / moons?",
"Describe the sky during the day.",
"Describe the night sky.",
"What is the climate like?",
"What is the weather like?",
"What are the seasons like? How many / how long?",
"What are the birds like?",
"What are the small animals like?",
"What are the large animals like?",
"How are the continents laid out?",
"How are the countries laid out?",
"How much land is temperate, equatorial or polar?",
"Are there forests?",
"Are there tropical areas?",
"Are there grasslands / plains?",
"What natural resources are available in different regions?",
"Which natural resources are scarce?",
"Does magic exist? What constrains it?",
"What can magic not do?",
"Do people believe in one God, many or none?",
"Is there more than one religion?",
"Do people make sacrifices to Gods?",
"Do an elite control religion / magic or is it accessible to all?",
"Are there any magical creatures? Describe them.",
"To what extent is magic a learned skill or an innate talent?",
"Is magic a specialist, elite skill or is it used easily by commoners?",
"What is the price / cost of using magic?",
"Do magicians need to meet any specific criteria? Be celibate? Go through a ritual?",
"Does magic requires tools and props?",
"How is one magician stronger than another?",
"Can magic be combined to increase its strength?",
"What defeats magic?",
"Is magic admired / respected / feared / something else?",
"Is any magic illegal?",
"What is magic generally used for?",
"What are temples like?",
"Are there non-human sentient species? Describe them.",
"Did the people evolve on this planet or come from elsewhere?",
"What is the relationship between the different species?",
"Where and when did civilization begin?",
"What is the total population (of the planet / the country / the city, etc.)",
"What is the level of technology (stone age, hi tech)?",
"What languages to people speak?",
"Do most people speak more than one language?",
"Is there a common language? For trade?",
"How do people greet each other?",
"What is considered a rude gesture?",
"How do they curse? Gods? Body parts?",
"What titles / formalities are used?",
"What is a gesture of respect (bowing, saluting)?",
"Do people live in happiness or fear?",
"Does the culture value strength or compassion more highly?",
"Does the culture value wealth or generosity more highly?",
"What are the common superstitions?",
"Are the people diverse or uniform?",
"How big is the gap between rich and poor?",
"What do people wear?",
"What is in fashion this year?",
"What was in fashion last year?",
"What topics of conversation are controversial?",
"Which topics of conversation are safe?",
"What constitutes a social faux pas?",
"What forms of art are there?",
"Is there theatre? Is it common or reserved for the wealthy?",
"What is a highly desirable job?",
"What is a lowly job?",
"What are the cities like, if any?",
"What are the houses like?",
"Do most people live in rural or urban areas?",
"Are there any domesticated animals?",
"Are there professional guilds / institutes/ etc?",
"How do you get into a professional guild?",
"What benefits do you gain from being a member of a guild?",
"Are criminals common or rare?",
"What calendar is used?",
"What are the major festivals?",
"Describe a wedding.",
"Describe a funeral.",
"What are special celebratory foods?",
"What sort of clothes do people wear on special occasions?",
"Is there any formal education?",
"At what age do children start school?",
"Is education available to all or only certain groups?",
"Are different groups of people educated separately?",
"Is there a written language?",
"Are most people literate or illiterate?",
"What are schools like?",
"What are there different types of school for?",
"What is a normal family unit?",
"Do people marry for love or other reasons? What reasons?",
"Are the genders treated differently?",
"Who raises the children?",
"What is the monetary system?",
"Are there multiple currencies?",
"Is there widespread trade?",
"Is there widespread conflict?",
"How long ago was the most recent war?",
"How damaging was the most recent war?",
"What was the cause of the most recent war?",
"What is the system of government? Democracy? Dictatorship? Administration?",
"Is it a matriarchy or a patriarchy?",
"Does the leader have special protection (Kingsguard, secret service)?",
"How long has the system of government been in place?",
"Is there a class system? Different levels of citizenship?",
"Is there slavery?",
"Is there a form of police?",
"Is there a formal army?",
"How are wrongdoers tried and punished?",
"Does the government provide social assistance?",
"Is there any centralised healthcare?",
"Is there public transport?",
"Are there publicly run communications systems?",
"Do people trust the government?",
"Do the majority of people approve of or disapprove of the government?",
"Is social mobility easy or hard?",
"What is the system or taxation?",
"Does the government spy on its enemies? Its people?",
"What does a feast look like?",
"What does a basic paupers meal look like?",
"Do people mostly eat meat, fish or vegetables?",
"Do people eat plain or heavily flavoured food?",
"Do people eat together or separately?",
"Do people eat in small or large groups?",
"What utensils do people use to eat?",
"Are there many restaurants? Who goes to them?",
"Are there street food sellers?",
"What do people drink?",
"Is the water generally clean enough to drink?",
"Are some foods poisonous to certain people?",
"What are the tables like? Shape? High or low?"
]

View File

@ -1,410 +0,0 @@
[
{
"quote" : "Life isnt about getting and having, its about giving and being.",
"name": "Kevin Kruse"
},
{
"quote" : "Whatever the mind of man can conceive and believe, it can achieve.",
"name" : "Napoleon Hill"
},
{
"quote" : "Strive not to be a success, but rather to be of value.",
"name" : "Albert Einstein"
},
{
"quote" : "Two roads diverged in a wood, and I—I took the one less traveled by, And that has made all the difference.",
"name" : "Robert Frost"
},
{
"quote" : "I attribute my success to this: I never gave or took any excuse.",
"name" : "Florence Nightingale"
},
{
"quote" : "You miss 100% of the shots you dont take.",
"name" : "Wayne Gretzky"
},
{
"quote" : "Ive missed more than 9000 shots in my career. Ive lost almost 300 games. 26 times Ive been trusted to take the game winning shot and missed. Ive failed over and over and over again in my life. And that is why I succeed.",
"name" : "Michael Jordan"
},
{
"quote" : "The most difficult thing is the decision to act, the rest is merely tenacity.",
"name" : "Amelia Earhart"
},
{
"quote" : "Every strike brings me closer to the next home run.",
"name" : "Babe Ruth"
},
{
"quote" : "Definiteness of purpose is the starting point of all achievement.",
"name" : "W. Clement Stone"
},
{
"quote" : "We must balance conspicuous consumption with conscious capitalism.",
"name" : "Kevin Kruse"
},
{
"quote" : "Life is what happens to you while youre busy making other plans.",
"name" : "John Lennon"
},
{
"quote" : "We become what we think about.",
"name" : "Earl Nightingale"
},
{
"quote" : "Twenty years from now you will be more disappointed by the things that you didnt do than by the ones you did do, so throw off the bowlines, sail away from safe harbor, catch the trade winds in your sails. Explore, Dream, Discover.",
"name" : "Mark Twain"
},
{
"quote" : "Life is 10% what happens to me and 90% of how I react to it.",
"name" : "Charles Swindoll"
},
{
"quote" : "The most common way people give up their power is by thinking they dont have any.",
"name" : "Alice Walker"
},
{
"quote" : "The mind is everything. What you think you become.",
"name" : "Buddha"
},
{
"quote" : "The best time to plant a tree was 20 years ago. The second best time is now.",
"name" : "Chinese Proverb"
},
{
"quote" : "An unexamined life is not worth living.",
"name" : "Socrates"
},
{
"quote" : "Eighty percent of success is showing up.",
"name" : "Woody Allen"
},
{
"quote" : "Your time is limited, so dont waste it living someone elses life.",
"name" : "Steve Jobs"
},
{
"quote" : "Winning isnt everything, but wanting to win is.",
"name" : "Vince Lombardi"
},
{
"quote" : "I am not a product of my circumstances. I am a product of my decisions.",
"name" : "Stephen Covey"
},
{
"quote" : "Every child is an artist. The problem is how to remain an artist once he grows up.",
"name" : "Pablo Picasso"
},
{
"quote" : "You can never cross the ocean until you have the courage to lose sight of the shore.",
"name" : "Christopher Columbus"
},
{
"quote" : "Ive learned that people will forget what you said, people will forget what you did, but people will never forget how you made them feel.",
"name" : "Maya Angelou"
},
{
"quote" : "Either you run the day, or the day runs you.",
"name" : "Jim Rohn"
},
{
"quote" : "Whether you think you can or you think you cant, youre right.",
"name" : "Henry Ford"
},
{
"quote" : "The two most important days in your life are the day you are born and the day you find out why.",
"name" : "Mark Twain"
},
{
"quote" : "Whatever you can do, or dream you can, begin it. Boldness has genius, power and magic in it.",
"name" : "Johann Wolfgang von Goethe"
},
{
"quote" : "The best revenge is massive success.",
"name" : "Frank Sinatra"
},
{
"quote" : "People often say that motivation doesnt last. Well, neither does bathing. Thats why we recommend it daily.",
"name" : "Zig Ziglar"
},
{
"quote" : "Life shrinks or expands in proportion to ones courage.",
"name" : "Anais Nin"
},
{
"quote" : "If you hear a voice within you say “you cannot paint,” then by all means paint and that voice will be silenced.",
"name" : "Vincent Van Gogh"
},
{
"quote" : "There is only one way to avoid criticism: do nothing, say nothing, and be nothing.",
"name" : "Aristotle"
},
{
"quote" : "Ask and it will be given to you; search, and you will find; knock and the door will be opened for you.",
"name" : "Jesus"
},
{
"quote" : "The only person you are destined to become is the person you decide to be.",
"name" : "Ralph Waldo Emerson"
},
{
"quote" : "Go confidently in the direction of your dreams. Live the life you have imagined.",
"name" : "Henry David Thoreau"
},
{
"quote" : "When I stand before God at the end of my life, I would hope that I would not have a single bit of talent left and could say, I used everything you gave me.",
"name" : "Erma Bombeck"
},
{
"quote" : "Few things can help an individual more than to place responsibility on him, and to let him know that you trust him.",
"name" : "Booker T. Washington"
},
{
"quote" : "Certain things catch your eye, but pursue only those that capture the heart.",
"name" : "Ancient Indian Proverb"
},
{
"quote" : "Believe you can and youre halfway there.",
"name" : "Theodore Roosevelt"
},
{
"quote" : "Everything youve ever wanted is on the other side of fear.",
"name" : "George Addair"
},
{
"quote" : "We can easily forgive a child who is afraid of the dark; the real tragedy of life is when men are afraid of the light.",
"name" : "Plato"
},
{
"quote" : "Teach thy tongue to say, “I do not know,” and thous shalt progress.",
"name" : "Maimonides"
},
{
"quote" : "Start where you are. Use what you have. Do what you can.",
"name" : "Arthur Ashe"
},
{
"quote" : "When I was 5 years old, my mother always told me that happiness was the key to life. When I went to school, they asked me what I wanted to be when I grew up. I wrote down happy. They told me I didnt understand the assignment, and I told them they didnt understand life.",
"name" : "John Lennon"
},
{
"quote" : "Fall seven times and stand up eight.",
"name" : "Japanese Proverb"
},
{
"quote" : "When one door of happiness closes, another opens, but often we look so long at the closed door that we do not see the one that has been opened for us.",
"name" : "Helen Keller"
},
{
"quote" : "Everything has beauty, but not everyone can see.",
"name" : "Confucius"
},
{
"quote" : "How wonderful it is that nobody need wait a single moment before starting to improve the world.",
"name" : "Anne Frank"
},
{
"quote" : "When I let go of what I am, I become what I might be.",
"name" : "Lao Tzu"
},
{
"quote" : "Life is not measured by the number of breaths we take, but by the moments that take our breath away.",
"name" : "Maya Angelou"
},
{
"quote" : "Happiness is not something readymade. It comes from your own actions.",
"name" : "Dalai Lama"
},
{
"quote" : "If youre offered a seat on a rocket ship, dont ask what seat! Just get on.",
"name" : "Sheryl Sandberg"
},
{
"quote" : "First, have a definite, clear practical ideal; a goal, an objective. Second, have the necessary means to achieve your ends; wisdom, money, materials, and methods. Third, adjust all your means to that end.",
"name" : "Aristotle"
},
{
"quote" : "If the wind will not serve, take to the oars.",
"name" : "Latin Proverb"
},
{
"quote" : "You cant fall if you dont climb. But theres no joy in living your whole life on the ground.",
"name" : "Unknown"
},
{
"quote" : "We must believe that we are gifted for something, and that this thing, at whatever cost, must be attained.",
"name" : "Marie Curie"
},
{
"quote" : "Too many of us are not living our dreams because we are living our fears.",
"name" : "Les Brown"
},
{
"quote" : "Challenges are what make life interesting and overcoming them is what makes life meaningful.",
"name" : "Joshua J. Marine"
},
{
"quote" : "If you want to lift yourself up, lift up someone else.",
"name" : "Booker T. Washington"
},
{
"quote" : "I have been impressed with the urgency of doing. Knowing is not enough; we must apply. Being willing is not enough; we must do.",
"name" : "Leonardo da Vinci"
},
{
"quote" : "Limitations live only in our minds. But if we use our imaginations, our possibilities become limitless.",
"name" : "Jamie Paolinetti"
},
{
"quote" : "You take your life in your own hands, and what happens? A terrible thing, no one to blame.",
"name" : "Erica Jong"
},
{
"quote" : "Whats money? A man is a success if he gets up in the morning and goes to bed at night and in between does what he wants to do.",
"name" : "Bob Dylan"
},
{
"quote" : "I didnt fail the test. I just found 100 ways to do it wrong.",
"name" : "Benjamin Franklin"
},
{
"quote" : "In order to succeed, your desire for success should be greater than your fear of failure.",
"name" : "Bill Cosby"
},
{
"quote" : "A person who never made a mistake never tried anything new.",
"name" : "Albert Einstein"
},
{
"quote" : "The person who says it cannot be done should not interrupt the person who is doing it.",
"name" : "Chinese Proverb"
},
{
"quote" : "There are no traffic jams along the extra mile.",
"name" : "Roger Staubach"
},
{
"quote" : "It is never too late to be what you might have been.",
"name" : "George Eliot"
},
{
"quote" : "You become what you believe.",
"name" : "Oprah Winfrey"
},
{
"quote" : "I would rather die of passion than of boredom.",
"name" : "Vincent van Gogh"
},
{
"quote" : "A truly rich man is one whose children run into his arms when his hands are empty.",
"name" : "Unknown"
},
{
"quote" : "It is not what you do for your children, but what you have taught them to do for themselves, that will make them successful human beings.",
"name" : "Ann Landers"
},
{
"quote" : "If you want your children to turn out well, spend twice as much time with them, and half as much money.",
"name" : "Abigail Van Buren"
},
{
"quote" : "Build your own dreams, or someone else will hire you to build theirs.",
"name" : "Farrah Gray"
},
{
"quote" : "The battles that count arent the ones for gold medals. The struggles within yourselfthe invisible battles inside all of usthats where its at.",
"name" : "Jesse Owens"
},
{
"quote" : "Education costs money. But then so does ignorance.",
"name" : "Sir Claus Moser"
},
{
"quote" : "I have learned over the years that when ones mind is made up, this diminishes fear.",
"name" : "Rosa Parks"
},
{
"quote" : "It does not matter how slowly you go as long as you do not stop.",
"name" : "Confucius"
},
{
"quote" : "If you look at what you have in life, youll always have more. If you look at what you dont have in life, youll never have enough.",
"name" : "Oprah Winfrey"
},
{
"quote" : "Remember that not getting what you want is sometimes a wonderful stroke of luck.",
"name" : "Dalai Lama"
},
{
"quote" : "You cant use up creativity. The more you use, the more you have.",
"name" : "Maya Angelou"
},
{
"quote" : "Dream big and dare to fail.",
"name" : "Norman Vaughan"
},
{
"quote" : "Our lives begin to end the day we become silent about things that matter.",
"name" : "Martin Luther King Jr."
},
{
"quote" : "Do what you can, where you are, with what you have.",
"name" : "Teddy Roosevelt"
},
{
"quote" : "If you do what youve always done, youll get what youve always gotten.",
"name" : "Tony Robbins"
},
{
"quote" : "Dreaming, after all, is a form of planning.",
"name" : "Gloria Steinem"
},
{
"quote" : "Its your place in the world; its your life. Go on and do all you can with it, and make it the life you want to live.",
"name" : "Mae Jemison"
},
{
"quote" : "You may be disappointed if you fail, but you are doomed if you dont try.",
"name" : "Beverly Sills"
},
{
"quote" : "Remember no one can make you feel inferior without your consent.",
"name" : "Eleanor Roosevelt"
},
{
"quote" : "Life is what we make it, always has been, always will be.",
"name" : "Grandma Moses"
},
{
"quote" : "The question isnt who is going to let me; its who is going to stop me.",
"name" : "Ayn Rand"
},
{
"quote" : "When everything seems to be going against you, remember that the airplane takes off against the wind, not with it.",
"name" : "Henry Ford"
},
{
"quote" : "Its not the years in your life that count. Its the life in your years.",
"name" : "Abraham Lincoln"
},
{
"quote" : "Change your thoughts and you change your world.",
"name" : "Norman Vincent Peale"
},
{
"quote" : "Either write something worth reading or do something worth writing.",
"name" : "Benjamin Franklin"
},
{
"quote" : "Nothing is impossible, the word itself says, “Im possible!”",
"name" : "Audrey Hepburn"
},
{
"quote" : "The only way to do great work is to love what you do.",
"name" : "Steve Jobs"
},
{
"quote" : "If you can dream it, you can achieve it.",
"name" : "Zig Ziglar"
}
]

View File

@ -1,43 +0,0 @@
[
"Relax, you're doing fine.",
"Keep going, it'll be worth it in the end!",
"Everybody has these moments.",
"You're a talented person!",
"Everyone gets scared, but you need to *choose* to be brave.",
"You lost your way, not your worth.",
"WOW! You're bloody amazing!!",
"It's okay to feel down sometimes.",
"You are awesome!",
"You are the most perfect you there is.",
"You should be proud of yourself.",
"You make me a happy bot.",
"You inspire me.",
"You're really something special.",
"You're a gift to those around you.",
"You don't deserve it.",
"You are strong.",
"You deserve a hug right now.",
"On a scale from 1 to 10, you're an 11.",
"You're even more beautiful on the inside than you are on the outside.",
"It's ok.",
"Youre not alone in this.",
"You are important to me. You matter to me and so do your feelings.",
"You will survive this. And when its over, I will be here and so will you.",
"Be kind and gentle with yourself. You are doing the best you can.",
"If you are 1% as nice in real life as you are here you'd be a wonderful person to spend time with.",
"You're one smart cookie",
"You bring out the best in other people.",
"You always know how to find that silver lining.",
"You're someone's reason to smile.",
"I appreciate you.",
"If I wasn't a bot, I'd be all over you right now",
"You're one of a kind.",
"At your absolute best, you still won't be good enough for the wrong person. At your worst, you'll still be worth it to the right person.",
"Don't allow someone to make you feel you're not good enough",
"Something will grow from all you are going through. And it will be you.",
"Be strong enough and patient enough to wait for what you deserv",
"You are amazing. You are important. You are special. You are unique. You are kind. You are precious. You are loved.",
"Life is ten percent what you experience and ninety percent how you respond to it.",
"Smile, breathe, and go slowly.",
"Everything will turn out okay in the end"
]

123
bot.py
View File

@ -1,8 +1,7 @@
import teambot,tasks,rss,time,sys,subprocess,re,plugin,impmod,traceback,os,atexit,toot
import teambot,tasks,rss,time,sys,subprocess,re
feed_url = "https://cosmic.voyage/rss.xml"
bot_op = ["khuxkm@fuckup.club","~tomasino@oper.tilde.chat","tomasino@oper.tilde.chat"]
PLUGIN_MODULES=dict()
bot_op = "khuxkm@sudoers.tilde.team"
def unhighlight_nick (nick):
return "_{}_".format(nick)
@ -18,13 +17,6 @@ def newpost(it):
date = datetimejoin('-', it.published_parsed[0:3]) + ' ' + datetimejoin(':', it.published_parsed[3:6])
)
PASSWORD="nada"
try:
with open(".password") as f:
PASSWORD=f.read().strip()
except:
pass
class CosmicBot(teambot.Handler):
def __init__(self,bot):
super(CosmicBot,self).__init__(bot)
@ -32,75 +24,70 @@ class CosmicBot(teambot.Handler):
self.tasks = tasks.TaskPool()
self.tasks.add_coroutine(self.check_rss,12,dict(url=feed_url,known=[],channel="#cosmic"))
self.tasks.load_state(0)
atexit.register(lambda: self.tasks.save_state(0))
def load_modules(self):
plugin.clear()
for module in os.listdir("commands"):
if module.endswith(".py"): self.load_module(module[:-3],os.path.join("commands",module))
def load_module(self,modname,path):
try:
if modname in PLUGIN_MODULES:
print("{} already imported, reloading".format(modname))
PLUGIN_MODULES[modname].reload()
return
try:
print("importing {}".format(modname))
PLUGIN_MODULES[modname]=impmod.Module(modname,path)
except:
print("error importing {}".format(modname))
traceback.print_exc()
except:
traceback.print_exc()
pass
self.commands = dict()
self.register_command("botlist",self.on_botlist)
self.register_command("roster",self.on_roster)
self.register_command("latest",self.on_latest)
self.register_command("fortune",self.on_fortune)
self.register_command("admin",self.on_admin,True)
def register_command(self,name,action,is_admin=False):
self.commands[name] = dict(action=action,is_admin=is_admin)
def on_connection_established(self):
self.load_modules()
self.tasks.run()
self._bot.conn.privmsg("NickServ","IDENTIFY "+PASSWORD)
def check_rss(self,state,base_state):
try:
newtrans = rss.fetchNew(state["url"],[x["guid"] for x in state["known"]])
if newtrans:
state["known"].extend(newpost(x) for x in newtrans)
for trans in newtrans:
self.say(state["channel"],"Transmission received: {transmission.title} ({transmission.link})".format(transmission=trans))
toot.toot("Transmission received: {transmission.title}\n\n{transmission.link}".format(transmission=trans))
time.sleep(1)
except:
print("Error occurred while loading feed, will try again...")
print("Traceback is below:")
traceback.print_exc()
pass
newtrans = rss.fetchNew(state["url"],[x["guid"] for x in state["known"]])
if newtrans:
state["known"].extend(newpost(x) for x in newtrans)
for trans in newtrans:
self.say(state["channel"],"Transmission received: {transmission.title} ({transmission.link})".format(transmission=trans))
time.sleep(1)
return state
def on_pubmsg(self,channel,nick,text):
self.is_admin = self.event.source.userhost in bot_op
try:
for listener in plugin.listeners:
try:
plugin.listeners[listener](self,channel,nick,message)
except:
print("{} had a bruh moment:".format(listener))
traceback.print_exc()
except:
print("KERNAL PANIC")
traceback.print_exc()
if not text.startswith(self.prefix):
return
args = text[len(self.prefix):].strip().split()
cmd = args.pop(0)
if cmd in plugin.cmds:
try:
plugin.cmds[cmd](self,channel,nick,*args)
except TypeError:
self.say(channel,"Usage: {}{} {}".format(self.prefix,cmd,plugin.help.get(cmd,"")).strip())
traceback.print_exc()
except Exception as e:
errcls,err,tb = sys.exc_info()
self.say(channel,"ACCESS VIOLATION: "+traceback.format_exception_only(errcls,err)[0].strip())
print("On command `{}{} {}` by {}:".format(self.prefix,cmd," ".join(args),self.event.source))
traceback.print_exc()
is_admin = self.event.source.userhost == bot_op
if cmd in self.commands:
if (not self.commands[cmd]["is_admin"]) or (self.commands[cmd]["is_admin"] and is_admin):
try:
self.commands[cmd]["action"](channel,nick,*args)
except Exception as e:
print("access violation "+str(e))
def on_botlist(self,channel,nick):
self.say(channel,nick+": Maintainer: khuxkm@cosmic.voyage | Utility bot")
def on_admin(self,channel,nick,subcmd,*args):
if subcmd=="down":
self.tasks.stop()
self.tasks.save_state(0)
self._bot.die("Stopping...")
sys.exit(0)
elif subcmd=="check":
self.tasks.states[0] = self.check_rss(self.tasks.states[0],self.tasks.base_state)
def on_roster(self,channel,nick,*namecnt):
output = subprocess.check_output(["/usr/local/bin/roster",' '.join(namecnt)]).decode("ascii").split("\n")
output = filter(None,output)
for line in output:
line = re.sub("\s+"," ",line).split(" ",1)
self.say(channel,"{}: {} (by {})".format(nick,line[1],unhighlight_nick(line[0])))
def on_latest(self,channel,nick,count=5):
count = int(count)
if count < 1:
count = 1 # ...nice try, smartass
if count > 5:
count = 5 # don't spam the channel
self.say(channel, "{}: Latest {} {}. (See cosmic.voyage for more!)".format(nick, count, (count == 1 and "entry" or "entries")))
output = subprocess.check_output(["/usr/local/bin/latest",str(count)]).decode("ascii").split("\n")
output = filter(None,output)
for line in output:
self.say(channel,"{}: {}".format(nick,line))
def on_fortune(self,channel,nick):
output = subprocess.check_output(["/usr/games/fortune"]).decode("ascii").split("\n")
output = filter(None,output)
for line in output:
self.say(channel,"{}".format(line))
if __name__=="__main__":
channels = "#cosmic".split()
bot = teambot.TeamBot(channels,"cosmicbot","localhost",chandler=CosmicBot)
bot.start()

View File

@ -1,30 +0,0 @@
import plugin, random
RNG = random.SystemRandom()
results = [
"It is certain",
"It is decidedly so",
"Without a doubt",
"Yes - definitely",
"You may rely on it",
"Of course",
"Most likely",
"Outlook good",
"Yes",
"Signs point to yes",
"Reply hazy, try again",
"Ask again later",
"Better not tell you now",
"Cannot predict now",
"Concentrate and ask again",
"Don't count on it",
"My reply is no",
"My sources say no",
"Outlook not so good",
"Very doubtful",
"Absolutely not"
]
@plugin.command("8ball","<question>")
def eightball(bot,channel,nick,*args):
bot.say(channel,"{}: {}".format(nick,RNG.choice(results)))

View File

@ -1,48 +0,0 @@
import plugin, subprocess, atexit
HOOKED=False
def saved(bot):
bot.tasks.save_state(0)
@plugin.listener
def hook(self,*args):
global HOOKED
if HOOKED: return
HOOKED=True
atexit.register(saved,self)
@plugin.group("admin")
def admin(self,channel,nick,subcmd,*args):
if not self.is_admin: return True
if subcmd not in "down pull save reload ping".split(): return True
return False
@admin.command("down")
def admin_down(self,channel,nick,subcmd,*args):
if HOOKED: atexit.unregister(saved)
self.tasks.stop()
self.tasks.save_state(0)
self._bot.die("Stopping...")
sys.exit(0)
@admin.command("pull")
def admin_pull(self,channel,nick,subcmd,*args):
if subprocess.run(["/usr/bin/git","pull"]).returncode==0:
self.say(channel,nick+": Pull successful!")
else:
self.say(channel,nick+": Pull failed!")
self.load_modules()
@admin.command("save")
def admin_save(self,channel,nick,subcmd,*args):
self.tasks.save_state(0)
@admin.command("reload")
def reloadPlugins(bot,channel,nick,*args):
if HOOKED: atexit.unregister(saved)
bot.load_modules()
@admin.command("ping")
def ping(self,channel,nick,*args):
self.say(channel,nick+": Pong!")

View File

@ -1,22 +0,0 @@
import plugin,utils,random,importlib
importlib.reload(utils)
chars = utils.get("https://github.com/mblake/discord-WriterBot/raw/master/assets/json/q_char.json")
world = utils.get("https://github.com/mblake/discord-WriterBot/raw/master/assets/json/q_world.json")
@plugin.group("ask","<c/w>")
def ask(bot,channel,nick,subcmd,*args):
if subcmd not in "cw":
bot.say(channel,"{}: Usage: !ask <c/w>".format(nick))
return True
return False
@ask.command("c")
def ask_char(bot,channel,nick,*args):
question = random.choice(chars)
bot.say(channel,"{}: {!s}. {}".format(nick,chars.index(question),question))
@ask.command("w")
def ask_world(bot,channel,nick,*args):
question = random.choice(world)
bot.say(channel,"{}: {!s}. {}".format(nick,world.index(question),question))

View File

@ -1,5 +0,0 @@
import plugin
@plugin.command("botlist")
def on_botlist(self,channel,nick,*args):
self.say(channel,nick+": Maintainer: khuxkm@cosmic.voyage | Utility bot")

View File

@ -1,32 +0,0 @@
import plugin
from pluralslib import plural
import random
WPMS = {
"easy": 5,
"normal": 10,
"hard": 20,
"hardcore": 40,
"insane": 60
}
def pick_random_wpm():
return random.randint(5,30)
def pick_random_time():
return random.randint(1,6)*5
@plugin.command("challenge","")
def challenge(bot,channel,nick,*args):
args = list(args)
wpm = pick_random_wpm()
time = pick_random_time()
for arg in args:
if arg in WPMS: # preset
wpm = WPMS[arg]
elif arg.isdigit(): # give specific WPM
wpm = int(arg)
elif arg[0]=="t" and arg[1:].isdigit(): # specific time
time = int(arg[1:])
words = wpm*time
bot.say(channel,"{}: Write {} in {}".format(nick,plural(words,"word"),plural(time,"minute")))

View File

@ -1,30 +0,0 @@
import plugin, re, random, traceback
DICE = re.compile("(\d)d(\d+)([+-]\d+)?")
RNG = random.SystemRandom()
@plugin.command("dndice","{NdS{+|-}MOD|NdS}")
def dndice(bot,channel,nick,roll,*args):
# print("dndice {}".format(roll))
# try:
m = DICE.match(roll)
if m is None:
bot.say(channel,"{}: Please input a roll in the form of NdS{{+|-}}MOD or simply NdS. (1d20+5 or 1d6; N can be up to 6)".format(nick))
return
num, sides, mod = m.groups()
num, sides = int(num), int(sides)
results = [RNG.randint(1,sides) for x in range(num)]
if mod==None:
bot.say(channel,"{}: Result: {} {}".format(nick,sum(results),"("+", ".join([str(res) for res in results])+")" if len(results)>1 else "").rstrip())
else:
mod = int(mod)
bot.say(channel,"{}: Result: {} ({}{:+})".format(nick,sum(results)+mod,"("+", ".join([str(res) for res in results])+")" if len(results)>1 else results[0],mod))
# except Exception:
# traceback.print_exc()
# raise Exception("minerobber check the logs")
plugin.alias("dice","dndice")
@plugin.command("flip")
def flip(bot,channel,nick,*args):
bot.say(channel,"{}: Coin lands {}".format(nick,RNG.choice(["Heads","Tails"])))

View File

@ -1,3 +0,0 @@
import utils
utils.register_command_call("feeds","/home/khuxkm/bin/feeds")

View File

@ -1,3 +0,0 @@
import utils
utils.register_command_call("fortune","/usr/games/fortune")

View File

@ -1,41 +0,0 @@
import plugin, utils, tracery, titlecase, re
from tracery.modifiers import base_english
NAME = re.compile(r'\$(\d+|[a-z]+)')
SUB = r"#\1#"
replace_name = lambda x: NAME.sub(SUB,x)
GENERATORS_LIST = [
"book_fantasy",
"book_horror",
"book_hp",
"book",
"book_rom",
"book_sf",
"char",
"idea",
"land",
"place"
]
GENERATOR_URL = "https://github.com/mblake/discord-WriterBot/raw/master/assets/json/gen_{}.json"
def get_generator(name):
generator = utils.get(GENERATOR_URL.format(name))
out = dict()
out.update(generator["names"])
out["origin"] = [replace_name(x) for x in generator["formats"]]
ret = tracery.Grammar(out)
ret.add_modifiers(base_english)
return (lambda: ret.flatten("#origin#"))
GENERATORS = utils.LazyLoadedDict(get_generator)
@plugin.command("generate","<{}>".format("|".join(GENERATORS_LIST)))
def generate(bot,channel,nick,generator,count="1"):
if generator not in GENERATORS_LIST:
bot.say(channel,"{}: Invalid generator!".format(nick))
return
count = int(count)
res = [GENERATORS[generator]() for x in range(count)]
if generator!="idea":
res = [titlecase.titlecase(x) for x in res]
bot.say(channel,"{}: {}".format(nick,", ".join(res)))

View File

@ -1,20 +0,0 @@
import plugin, time
from dictdata import DictData
from pluralslib import plural
goal = DictData("goals.json")
def set_goal(nick,goal_):
goal[nick] = [goal_,time.time()/1000]
@plugin.command("goal","[goal]")
def goal_cmd(bot,channel,nick,goal_=""):
if not goal_:
if nick in goal and ((time.time()/1000)-goal[nick][1])<(24*60*60):
bot.say(channel,"{}: Your goal is {}.".format(nick,plural(goal[nick][0],"word")))
else:
bot.say(channel,"{}: You haven't set a goal today!".format(nick))
else:
goal_ = int(goal_)
set_goal(nick,goal_)
bot.say(channel,"{}: Set your goal!".format(nick))

View File

@ -1,5 +0,0 @@
import plugin
@plugin.command("help")
def help(bot,channel,nick,*args):
bot.say(channel,nick+": https://khuxkm.tilde.team/cosmicbot_help.php")

View File

@ -1,17 +0,0 @@
import plugin, re, subprocess
@plugin.command("latest","<count/filter>")
def on_latest(self,channel,nick,count="5"):
if re.match(r"\d+",count):
count = int(count)
if count < 1:
count = 1 # ...nice try, smartass
if count > 5:
count = 5 # don't spam the channel
self.say(channel, "{}: Latest {} {}. (See cosmic.voyage for more!)".format(nick, count, (count == 1 and "entry" or "entries")))
else:
self.say(channel, "{}: Latest entries matching '{}'. (See cosmic.voyage for more!)".format(nick, count))
output = subprocess.check_output(["/usr/local/bin/latest",str(count)]).decode("utf-8").split("\n")
output = filter(None,output)
for line in output:
self.say(channel,"{}: {}".format(nick,line))

View File

@ -1,16 +0,0 @@
import plugin,requests,random
def get(*args,**kwargs):
r = requests.get(*args,**kwargs)
r.raise_for_status()
return r.json()
prompts = get("https://khuxkm.tilde.team/prompts.json")["prompts"]
@plugin.command("prompt","")
def prompt(bot,channel,nick,*args):
if len(args)==1:
prompt_ = prompts[int(args[0])-1]
else:
prompt_ = random.choice(prompts)
bot.say(channel,"{}: {!s}. {}".format(nick,prompts.index(prompt_)+1,prompt_))

View File

@ -1,16 +0,0 @@
import plugin,utils,random,importlib
importlib.reload(utils)
quotes = utils.get("https://github.com/mblake/discord-WriterBot/raw/master/assets/json/quotes.json")
reassure = utils.get("https://github.com/mblake/discord-WriterBot/raw/master/assets/json/reassure.json")
@plugin.command("quotes")
def _quotes(bot,channel,nick,*args):
quote = random.choice(quotes)
bot.say(channel,"{0}: {1!s}. \"{2[quote]}\" /{2[name]}/".format(nick,quotes.index(quote),quote))
@plugin.command("reassure")
def _reassure(bot,channel,nick,*args):
quote = random.choice(reassure)
bot.say(channel,"{}: {!s}. {}".format(nick,reassure.index(quote),quote))

View File

@ -1,3 +0,0 @@
import utils
utils.register_command_call("rate","/usr/local/bin/rate")

View File

@ -1,18 +0,0 @@
import plugin, re, subprocess
unhighlight_nick = lambda nick: "_{!s}_".format(nick)
@plugin.command("roster","<filter>")
def on_roster(self,channel,nick,*namecnt):
if not namecnt:
self.say(channel,"{}: Must supply a filter!".format(nick))
return
try:
output = subprocess.check_output(["/usr/local/bin/roster",' '.join(namecnt)]).decode("utf-8").split("\n")
except subprocess.CalledProcessError:
self.say(channel,"{}: No such ship/user!".format(nick))
return
output = filter(None,output)
for line in output:
line = re.sub("\s+"," ",line).split(" ",1)
self.say(channel,"{}: {} (by {})".format(nick,line[1],unhighlight_nick(line[0])))

View File

@ -1,29 +0,0 @@
import plugin, os.path, json, time
def water(user,by="cosmicbot"):
try:
with open(os.path.expanduser("~{}/.botany/visitors.json".format(user))) as f:
visitors = json.load(f)
visitors.append(dict(timestamp=int(time.time()),user=by))
with open(os.path.expanduser("~{}/.botany/visitors.json".format(user)),"w") as f:
json.dump(visitors,f,indent=2)
with open(os.path.expanduser("~{}/.botany/{}_plant_data.json".format(user,user))) as f:
return json.load(f)['description'] # Success
except:
return False # Failure
@plugin.command("water")
def cmd_water(bot,channel,nick,user=None):
if user is not None:
if plant := water(user,nick):
bot.say(channel,f"Watered _{user}_'s {plant}!")
else:
bot.say(channel,f"Unable to water _{user}_'s plant; are you sure they have one?")
else:
if plant := water(nick):
bot.say(channel,f"Watered _{nick}_'s {plant}!")
return
if plant := water(bot.event.source.user):
bot.say(channel,f"Watered _{bot.event.source.user}_'s {plant}!")
return
bot.say(channel,"I couldn't figure out which plant was yours. Give me your username as an argument.")

View File

@ -1,44 +0,0 @@
import plugin, subprocess, csv, io
unhighlight_nick = lambda nick: "_{!s}_".format(nick)
def safeint(n,d=0):
try:
return int(n)
except:
return d
def readcsv(s):
f = io.StringIO()
f.write(s)
f.seek(0)
ret = list(csv.reader(f))
f.close()
return ret
@plugin.command("wordcount","<username>")
def wordcount(bot,channel,nick,user):
output = subprocess.check_output(["/usr/local/bin/wordcount",user]).decode("utf-8").strip()
bot.say(channel,nick+": "+unhighlight_nick(user)+" has written "+output+" words on cosmic.voyage")
plugin.alias("wrote","wordcount")
@plugin.command("highscore","[count]")
def highscore(bot,channel,nick,*count):
if count:
count = safeint(count[0],5)
else:
count = 5
if count>10:
bot.say(channel,nick+": No more than 10 at once!")
return
if count<1:
bot.say(channel,nick+": Very funny.")
return
output = subprocess.check_output(["/usr/local/bin/scores"]).decode("utf-8").strip()
users = readcsv(output)
users = users[:count]
out = ""
for user in users:
out+="{} ({:,}), ".format(unhighlight_nick(user[0]),int(user[1]))
bot.say(channel,nick+": Top {} user{}: ".format(count,"s" if count!=1 else "")+out[:-2])

View File

@ -1,17 +0,0 @@
import plugin
class DictData(plugin.JSONData):
def __init__(self,filename,**kwargs):
plugin.JSONData.__init__(self,kwargs)
self.filename = filename
self.load(self.filename)
def __getitem__(self,k):
self.load(self.filename)
return self.value[k]
def __setitem__(self,k,v):
self.value[k]=v
self.save(self.filename)
def __contains__(self,k):
return k in self.value
def get(self,k,default=None):
self.load(self.filename)
return self.value.get(k,default)

View File

@ -1,19 +0,0 @@
import importlib, importlib.util, sys
class Module:
"""A module. Stores module object, spec object, and handles reloading."""
def __init__(self,modname,path=None):
if path is None:
path = modname+".py"
self.modname, self.path = modname, path
self.spec = importlib.util.spec_from_file_location(modname,path)
self.module = importlib.util.module_from_spec(self.spec)
self.spec.loader.exec_module(self.module)
def reload(self):
if self.modname not in sys.modules:
sys.modules[self.modname]=self.module
# Alright, this needs some explaining.
# When you do importlib.reload, it does some juju magic shist to find the spec and calls importlib._bootstrap._exec.
# When you dynamically import a module it won't do its magic correctly and it'll error.
# Luckily, we can skip all the juju magic since we can just store the spec.
importlib._bootstrap._exec(self.spec,self.module)

View File

@ -1,81 +0,0 @@
import json, traceback
cmds = {}
help = {}
listeners = {}
class CommandGroup:
def __init__(self,f,default="help"):
self.base = f
self.subcmds = {}
self.default = default
def command(self,name):
def _register_subcmd(f):
self.subcmds[name]=f
return f
return _register_subcmd
def __call__(self,bot,channel,nick,subcmd,*args):
print("Calling base")
if self.base(bot,channel,nick,subcmd,*args):
return
print("Calling subcommand {}".format(subcmd if subcmd in self.subcmds else self.default))
if subcmd in self.subcmds:
return self.subcmds[subcmd](bot,channel,nick,subcmd,*args)
else:
return self.subcmds[self.default](bot,channel,nick,subcmd,*args)
class Data:
"""A class for plugin data."""
def __init__(self,value):
self.value = value
def serialize(self):
return self.value
def deserialize(self,value):
self.value = value
def save(self,filename):
with open(filename,"w") as f:
f.write(self.serialize())
def load(self,filename):
try:
with open(filename) as f:
self.deserialize(f.read())
except:
print("Error loading data from {!r}:".format(filename))
traceback.print_exc()
pass # You should've initialized this with a sane default, so just keep the default on error
class JSONData(Data):
"""Data, but can be serialized to JSON (and should be)."""
def serialize(self):
return json.dumps(self.value)
def deserialize(self,value):
self.value = json.loads(value)
def clear():
cmds.clear()
help.clear()
listeners.clear()
def command(name,helptext="No help available for this command."):
def _register_cmd(func):
cmds[name]=func
help[name]=helptext
return func
return _register_cmd
def group(name,helptext=""):
def _register_group(f):
gr = CommandGroup(f)
cmds[name]=gr
help[name]=helptext
return gr
return _register_group
def listener(name):
def _register_cmd(func):
listeners[name]=func
return func
return _register_cmd
def alias(name,target):
cmds[name]=cmds[target]
help[name]=help[target]

View File

@ -1,10 +0,0 @@
def are(amount):
if amount == 1:
return 'is'
else:
return 'are'
def plural(amount, base, plural='s', singular=''):
if amount == 1:
return str(amount) + ' ' + base + singular
else:
return str(amount) + ' ' + base + plural

View File

@ -1,45 +0,0 @@
appdirs>=1.4.3
blurhash>=1.1.4
CacheControl>=0.12.6
certifi>=2020.6.20
chardet>=3.0.4
colorama>=0.4.3
contextlib2>=0.6.0
decorator>=4.4.2
distlib>=0.3.0
distro>=1.4.0
feedparser>=5.2.1
html5lib>=1.0.1
idna>=2.10
inflect>=4.1.0
ipaddr>=2.2.0
irc>=19.0.1
jaraco.classes>=3.1.0
jaraco.collections>=3.0.0
jaraco.functools>=3.0.1
jaraco.itertools>=5.0.0
jaraco.logging>=3.0.0
jaraco.stream>=3.0.0
jaraco.text>=3.2.0
lockfile>=0.12.2
Mastodon.py>=1.5.1
more-itertools>=8.5.0
msgpack>=0.6.2
packaging>=20.3
pep517>=0.8.2
progress>=1.5
pyparsing>=2.4.6
python-dateutil>=2.8.1
python-magic>=0.4.18
pytoml>=0.1.21
pytz>=2020.1
regex>=2020.7.14
requests>=2.24.0
retrying>=1.3.3
six>=1.14.0
teambot>=0.2.0
tempora>=4.0.0
titlecase>=1.1.1
tracery>=0.1.1
urllib3>=1.25.10
webencodings>=0.5.1

View File

@ -29,7 +29,6 @@ class TaskPool:
exit(0)
def run(self):
if self.thread.is_alive(): return # don't set up an already set-up thread
self.thread.daemon = True
self.thread.start()

25
toot.py
View File

@ -1,25 +0,0 @@
from mastodon import Mastodon
from os.path import exists
from os import chmod, stat
from stat import ST_MODE
def getmod(fn):
return stat(fn)[ST_MODE] & 0o777
if not exists("usercred.secret"):
if not exists("clientcred.secret"):
Mastodon.create_app("cosmicbot toots",api_base_url="https://tilde.zone",to_file="clientcred.secret")
chmod("clientcred.secret",0o600)
elif getmod("clientcred.secret")!=0o600:
chmod("clientcred.secret",0o600)
tmp = Mastodon(client_id="clientcred.secret",api_base_url="https://tilde.zone")
with open("details.secret") as f:
tmp.log_in(f.readline().strip(),f.readline().strip(),to_file="usercred.secret")
chmod("usercred.secret",0o600)
elif getmod("usercred.secret")!=0o600:
chmod("usercred.secret",0o600)
m = Mastodon(access_token='usercred.secret',api_base_url="https://tilde.zone")
def toot(msg):
m.toot(msg)

View File

@ -1,29 +0,0 @@
import plugin, subprocess, requests, collections
def register_command_call(command,cli,use_args=False,verify_args=lambda args: args):
@plugin.command(command)
def on_call(self,channel,nick,*args):
output = subprocess.check_output([cli]+list(verify_args(args) if use_args else [])).decode("utf-8").split("\n")
output = filter(None,output)
for line in output:
self.say(channel,"{}".format(line))
def get(*args,**kwargs):
r = requests.get(*args,**kwargs)
r.raise_for_status()
return r.json()
class LazyLoadedDict(collections.UserDict):
def __init__(self,func,initialdata=dict()):
super().__init__(initialdata)
self.func = func
def __getitem__(self,key):
if key not in self.data:
self.data[key]=self.func(key)
return self.data[key]
return self.data[key]
def temp_disable(command):
@plugin.command(command)
def on_call(self,channel,nick,*args):
self.say(channel,"This command has been temporarily disabled. Try running the equivalent command on cosmic and you'll see why.")