// ==UserScript==
// @name shakespeare.exe
// @namespace http://github.com/pari55051
// @version 1.0
// @description Replaces modern words/phrases with Shakespearean language on dynamic websites like Medium.com
// @author You
// @match https://*.medium.com/*
// @match https://medium.com/*
// @match https://*.wikipedia.org/*
// @match https://*.reddit.com/*
// @grant none
// @license MIT
// ==/UserScript==
(function() {
'use strict';
// dataset for replacements
const phraseDict = {
"how are you": "how doth thee fare",
"what's up": "what news dost thou bring",
"i don't know": "i knoweth not",
"i'm tired": "i am weary",
"i'm hungry": "my stomach doth rumble",
"no way": "fie! it cannot be!",
"okay": "'tis agreeable",
"wait a minute": "prithee, tarry a moment",
"be right back": "i shall return anon",
"i'm sorry": "i beg thy pardon",
"that's awesome": "'tis wondrous indeed",
"that's amazing": "'tis wondrous indeed",
"just kidding": "i jest, good sir/madam",
"calm down": "hold thy tongue and be still",
"i love you": "i doth adore thee",
"i hate this": "i abhor this vile thing",
"i'm so happy": "my heart singeth with joy",
"i'm mad": "i am filled with wrath",
"that's funny": "'tis a merry jest",
"i'm scared": "i am afeard",
"you're annoying": "thou art vexing",
"shut up": "hold thy tongue",
"you're stupid": "thou art a fool",
"get lost": "remove thyself hence",
"leave me alone": "remove thyself hence",
"i don't care": "'tis naught to me",
"see you soon": "i shall see thee anon",
"let's go": "let us hence",
"what the heck": "what devilry is this",
"seriously?": "dost thou jest?",
"good luck": "fortune smile upon thee",
"who are you": "who art thou",
"what are you doing": "what dost thou",
"i am fine": "i fare well",
"are you serious": "speaketh thou in earnest",
"this is hard": "this task grieveth me",
"it's not my fault": "the blame resteth not with me",
"good morning": "good morrow",
"good night": "good e'en",
"thank you": "i give thee thanks",
"you're welcome": "thou art welcome",
"excuse me": "pardon me, good sir/madam",
"congratulations": "well done, well said",
"how old are you": "what age hast thou?",
"i missed you": "i hath longed for thee",
"what do you mean": "what dost thou intend?",
"i agree": "'tis a notion most agreeable",
"do you understand": "dost thou comprehend?",
"what time is it": "which hour be it now?",
"what's your name": "what be thy name?",
"are you okay": "dost thou fare well?",
"don't worry": "fret not thyself",
"i'm bored": "i am listless of soul",
"i'm busy": "i am o'ertasked"
}
const wordDict = {
"shorten": "abate",
"blunt": "abate",
"diminution": "abatement",
"protest": "abhor",
"disgust": "abhor",
"brook": "abrook",
"abide": "abrook",
"primer": "absey-book",
"positive": "absolute",
"deceive": "abuse",
"deception": "abuse",
"abyss": "abysm",
"cite": "accite",
"summon": "accite",
"action": "acture",
"title": "addition",
"attribute": "addition",
"prepared": "addressed",
"prefer": "advance",
"admonition": "advertisement",
"attentive": "advertising",
"consideration": "advice",
"discretion": "advice",
"consider": "advise",
"considerate": "advised",
"pleading": "advocation",
"afraid": "afeared",
"love": "affect",
"acknowledge": "agnise",
"plenteously": "a-good",
"sea-term": "a-hold",
"acceptance": "allowance",
"alms": "almose",
"aim": "level",
"loyal": "amorous",
"animal": "beast",
"spirit": "sprite",
"anger": "choler",
"appeal": "solicitation",
"appear": "present",
"appearance": "show",
"apply": "betake",
"approach": "draw near",
"argue": "dispute",
"argument": "contention",
"armor": "armour",
"army": "host",
"around": "about",
"arrest": "attach",
"arrive": "hither",
"art": "craft",
"ashamed": "confounded",
"ask": "inquire",
"assistance": "aidance",
"atmosphere": "air",
"attack": "assail",
"attempt": "essai",
"attention": "heed",
"attract": "draw",
"avoid": "eschew",
"awake": "waken",
"away": "hence",
"awful": "direful",
"baby": "babe",
"back": "rearward",
"bad": "vile",
"bake": "sod",
"balance": "poise",
"banish": "exile",
"bar": "obstruct",
"bargain": "compact",
"battle": "battalia",
"beautiful": "beauteous",
"beauty": "comeliness",
"beg": "beseech",
"begin": "commence",
"beginning": "onset",
"behavior": "demeanor",
"believe": "credit",
"beloved": "dear",
"betray": "beguile",
"better": "ameliorate",
"between": "betwixt",
"beware": "look to",
"big": "vast",
"bird": "fowl",
"birth": "nativity",
"bite": "nibble",
"black": "swart",
"blame": "censure",
"bless": "benison",
"blind": "sightless",
"blood": "gore",
"blow": "smite",
"blue": "azure",
"boast": "vaunt",
"body": "trunk",
"bold": "valiant",
"book": "folio",
"bore": "wearied",
"borrow": "lend me",
"bother": "vex",
"brave": "gallant",
"bread": "loaf",
"break": "rend",
"breathe": "respire",
"bride": "new-made wife",
"bright": "radiant",
"bring": "fetch",
"brother": "kinsman",
"build": "erect",
"burn": "scorch",
"bury": "entomb",
"busy": "engaged",
"buy": "purchase",
"by": "nigh",
"call": "hail",
"calm": "tranquil",
"can": "mayst",
"care": "regard",
"carry": "bear",
"cause": "occasion",
"cease": "desist",
"certainly": "forsooth",
"chain": "fetter",
"change": "alter",
"charge": "impose",
"charm": "enchant",
"cheap": "base-born",
"cheat": "cozen",
"cheer": "mirth",
"child": "urchin",
"choice": "election",
"choose": "prefer",
"circle": "orb",
"city": "town",
"claim": "demand",
"clarify": "expound",
"clear": "lucid",
"climb": "ascend",
"close": "nigh",
"cloud": "mist",
"cold": "chill",
"come": "approach",
"comfort": "succor",
"command": "bid",
"companion": "compeer",
"complain": "bemoan",
"complete": "entire",
"complexion": "hue",
"compliment": "obeisance",
"conceal": "shroud",
"concern": "import",
"confess": "acknowledge",
"confidence": "assurance",
"confuse": "perplex",
"conquer": "o'ercome",
"consider": "bethink",
"constant": "steadfast",
"content": "satisfied",
"continue": "persist",
"control": "govern",
"conversation": "parley",
"cook": "cater",
"correct": "chasten",
"courage": "mettle",
"course": "progress",
"court": "palace",
"coward": "craven",
"crazy": "mad",
"create": "beget",
"creature": "wight",
"cry": "weep",
"cut": "hew",
"damage": "harm",
"danger": "peril",
"dare": "durst",
"dark": "dismal",
"daughter": "maid",
"day": "morrow",
"dead": "deceased",
"dear": "belov’d",
"death": "doom",
"debt": "due",
"deceive": "delude",
"decide": "determine",
"declare": "proclaim",
"deep": "profound",
"defend": "shield",
"delay": "tarry",
"delight": "joy",
"deliver": "rescue",
"demand": "require",
"deny": "gainsay",
"depart": "part",
"depend": "rely",
"describe": "depict",
"desert": "wilderness",
"deserve": "merit",
"desire": "wish",
"destroy": "ruin",
"devil": "fiend",
"die": "perish",
"difficult": "arduous",
"dinner": "repast",
"dirty": "foul",
"disappear": "vanish",
"discuss": "confer",
"dish": "trencher",
"dislike": "mislike",
"distant": "far-off",
"disturb": "disquiet",
"divide": "part",
"do": "perform",
"doctor": "leech",
"dog": "cur",
"door": "portal",
"doubt": "mistrust",
"down": "aloft",
"dream": "vision",
"drink": "quaff",
"drive": "urge",
"drunk": "besotted",
"dry": "arid",
"duke": "noble",
"each": "every",
"eager": "keen",
"early": "anon",
"earnest": "grave",
"earth": "terra",
"easy": "gentle",
"eat": "devour",
"education": "learning",
"effort": "endeavor",
"either": "aught",
"elder": "ancient",
"election": "choice",
"else": "otherwise",
"embrace": "enfold",
"emotion": "passion",
"emperor": "monarch",
"empty": "bare",
"end": "conclusion",
"enemy": "foe",
"energy": "vigor",
"engage": "employ",
"english": "anglish",
"enjoy": "relish",
"enough": "sufficient",
"enter": "pass into",
"entire": "whole",
"envy": "malice",
"equal": "alike",
"error": "mistake",
"escape": "flee",
"especially": "specially",
"esteem": "regard",
"even": "e'en",
"every": "each",
"evil": "ill",
"example": "precedent",
"exchange": "barter",
"excuse": "pardon",
"exist": "be",
"expect": "await",
"explain": "expound",
"eye": "orb",
"face": "visage",
"fail": "falter",
"fair": "beauteous",
"faith": "troth",
"false": "untrue",
"family": "kin",
"famous": "renown’d",
"far": "afar",
"farewell": "adieu",
"fast": "swift",
"fat": "portly",
"fault": "offense",
"fear": "dread",
"feast": "banquet",
"feel": "perceive",
"fellow": "sirrah",
"fetch": "go bring",
"few": "scant",
"fight": "duel",
"figure": "likeness",
"fill": "stuff",
"final": "utmost",
"find": "discover",
"fine": "dainty",
"finger": "digit",
"finish": "complete",
"fire": "flame",
"first": "foremost",
"fish": "finny",
"fit": "meet",
"fix": "mend",
"flesh": "meat",
"flight": "soaring",
"flourish": "blossom",
"fly": "flee",
"follow": "attend",
"gift": "boon",
"girl": "lass",
"give": "bestow",
"glad": "joyous",
"glass": "looking-glass",
"go": "wend",
"god": "deity",
"good": "virtuous",
"goodbye": "fare thee well",
"goose": "fowl",
"grace": "favour",
"great": "grand",
"green": "verdant",
"greet": "hail",
"grief": "woe",
"groan": "moan",
"ground": "soil",
"group": "company",
"grow": "wax",
"guard": "sentry",
"guess": "reckon",
"guide": "pilot",
"guilty": "culpable",
"gun": "culverin",
"guy": "fellow",
"habit": "custom",
"hair": "locks",
"half": "moiety",
"hand": "palm",
"handsome": "fair",
"hang": "suspend",
"happen": "befall",
"happy": "blithe",
"hard": "stiff",
"hate": "abhor",
"have": "possess",
"head": "crown",
"hear": "hearken",
"heart": "bosom",
"heaven": "paradise",
"heavy": "weighty",
"help": "succor",
"her": "herself",
"here": "hither",
"hero": "champion",
"hide": "conceal",
"high": "lofty",
"hill": "knoll",
"hire": "engage",
"hold": "grasp",
"hole": "pit",
"holy": "sacred",
"home": "hearth",
"honest": "true-hearted",
"honor": "glory",
"hope": "aspire",
"horse": "steed",
"host": "innkeeper",
"hour": "clock's strike",
"house": "dwelling",
"how": "how now",
"however": "nevertheless",
"hug": "embrace",
"humble": "lowly",
"hunger": "famine",
"hunt": "chase",
"hurry": "haste",
"hurt": "wound",
"husband": "spouse",
"idea": "notion",
"idle": "slothful",
"if": "an",
"ill": "sickly",
"image": "likeness",
"imagine": "fancy",
"important": "grave",
"impossible": "unthinkable",
"improve": "better",
"in": "within",
"include": "comprise",
"increase": "wax",
"indeed": "verily",
"infant": "babe",
"inquire": "demand",
"inside": "within",
"instead": "in lieu",
"intelligent": "learned",
"interest": "concern",
"invite": "bid",
"iron": "metal",
"is": "be",
"island": "isle",
"it": "'tis",
"item": "article",
"its": "its own",
"jail": "gaol",
"joke": "jest",
"joy": "glee",
"judge": "magistrate",
"jump": "leap",
"keep": "retain",
"kill": "slay",
"kind": "gentle",
"king": "sovereign",
"kiss": "osculation",
"know": "ken",
"lad": "youth",
"lady": "mistress",
"lake": "mere",
"land": "realm",
"large": "ample",
"last": "final",
"laugh": "jest",
"law": "edict",
"lazy": "idle",
"lead": "conduct",
"leader": "chieftain",
"learn": "study",
"leave": "depart",
"left": "port",
"lend": "loan",
"less": "fewer",
"let": "allow",
"letter": "missive",
"lie": "falsehood",
"life": "existence",
"light": "glow",
"like": "fancy",
"limit": "bound",
"listen": "attend",
"little": "petty",
"live": "dwell",
"look": "gaze",
"lord": "liege",
"lose": "forfeit",
"love": "adore",
"loyal": "faithful",
"luck": "fortune",
"mad": "lunatic",
"maid": "damsel",
"make": "fashion",
"man": "gentleman",
"many": "manifold",
"map": "chart",
"march": "tread",
"market": "bazaar",
"marriage": "matrimony",
"marry": "wed",
"master": "lord",
"match": "contest",
"matter": "import",
"may": "might",
"meal": "repast",
"mean": "intend",
"meddle": "interlope",
"meet": "encounter",
"melt": "dissolve",
"member": "limb",
"memory": "remembrance",
"message": "missive",
"midnight": "witching hour",
"might": "strength",
"milk": "lactate",
"mind": "thought",
"mine": "my own",
"minute": "moment",
"mirror": "glass",
"miss": "lack",
"mistake": "error",
"mock": "deride",
"money": "coin",
"moon": "orb of night",
"more": "greater",
"morning": "morn",
"mother": "dam",
"mouth": "maw",
"move": "stir",
"much": "greatly",
"murder": "slaughter",
"music": "melody",
"must": "needs must",
"name": "appellation",
"narrow": "slender",
"nation": "realm",
"nature": "humour",
"near": "nigh",
"need": "requirement",
"neighbor": "neighbour",
"neither": "nor",
"never": "ne'er",
"new": "novel",
"news": "tidings",
"next": "nighest",
"night": "eve",
"no": "nay",
"noise": "clamour",
"none": "naught",
"normal": "usual",
"not": "nay",
"nothing": "naught",
"now": "presently",
"number": "score",
"obey": "submit",
"object": "thing",
"observe": "mark",
"obtain": "procure",
"occasion": "juncture",
"ocean": "main",
"old": "aged",
"once": "erewhile",
"one": "a single",
"only": "solely",
"open": "unbar",
"opinion": "reckoning",
"opportunity": "hap",
"order": "commandment",
"other": "else",
"outside": "without",
"over": "o'er",
"own": "possess",
"pain": "anguish",
"paper": "parchment",
"part": "portion",
"partner": "consort",
"party": "gathering",
"pass": "proceed",
"past": "foregone",
"path": "way",
"patient": "enduring",
"pay": "render",
"peace": "truce",
"people": "folk",
"perfect": "flawless",
"perhaps": "perchance",
"person": "mortal",
"picture": "likeness",
"place": "locale",
"plan": "scheme",
"play": "sport",
"please": "gladden",
"pleasure": "delight",
"poor": "humble",
"power": "might",
"pray": "entreat",
"prepare": "make ready",
"present": "gift",
"pride": "vainglory",
"prince": "royal son",
"prison": "dungeon",
"private": "secret",
"problem": "plight",
"promise": "vow",
"proper": "fitting",
"protect": "shield",
"proud": "high-hearted",
"public": "common",
"punish": "chastise",
"purpose": "intent",
"push": "thrust",
"put": "place",
"queen": "sovereign lady",
"question": "query",
"quick": "fleet",
"quiet": "still",
"rain": "downpour",
"raise": "hoist",
"rare": "scarce",
"reach": "attain",
"read": "peruse",
"ready": "readied",
"real": "veritable",
"reason": "cause",
"receive": "take",
"red": "crimson",
"remember": "bethink",
"reply": "respond",
"rest": "repose",
"return": "come back",
"rich": "wealthy",
"ride": "steed away",
"right": "just",
"ring": "band",
"rise": "ascend",
"road": "pathway",
"rob": "plunder",
"room": "chamber",
"run": "flee",
"sad": "melancholy",
"safe": "secure",
"say": "speak",
"scare": "fright",
"school": "academy",
"sea": "brine",
"search": "seek",
"seat": "stool",
"see": "behold",
"seem": "appear",
"self": "oneself",
"sell": "vend",
"send": "dispatch",
"sense": "wit",
"serious": "grave",
"serve": "attend",
"set": "place",
"several": "diverse",
"shake": "quiver",
"share": "portion",
"sharp": "keen",
"shout": "cry out",
"show": "display",
"shut": "bar",
"sick": "ill",
"side": "flank",
"sign": "token",
"simple": "plain",
"since": "sith",
"sing": "chant",
"sister": "kinswoman",
"sit": "perch",
"skill": "craft",
"sky": "firmament",
"sleep": "slumber",
"slow": "sluggish",
"small": "petty",
"smile": "grin",
"snow": "frost",
"soft": "gentle",
"soldier": "man-at-arms",
"some": "a few",
"son": "heir",
"song": "ballad",
"soon": "anon",
"sorry": "woeful",
"speak": "utter",
"special": "rare",
"speed": "haste",
"spend": "expend",
"spirit": "phantom",
"stand": "abide",
"start": "commence",
"stay": "tarry",
"step": "stride",
"still": "yet",
"stop": "cease",
"story": "tale",
"strange": "queer",
"street": "lane",
"strong": "stout",
"student": "pupil",
"study": "peruse",
"stupid": "dull-witted",
"subject": "topic",
"success": "triumph",
"such": "so",
"sudden": "abrupt",
"suffer": "endure",
"suit": "garb",
"summer": "midsummer",
"sun": "orb",
"supper": "evening feast",
"support": "uphold",
"sure": "certain",
"surprise": "startlement",
"sweet": "dulcet",
"sword": "blade",
"take": "seize",
"talk": "parley",
"tall": "lofty",
"teach": "instruct",
"tear": "rend",
"tell": "relate",
"ten": "a score less ten",
"thank": "give thanks",
"that": "yon",
"the": "ye",
"their": "their own",
"them": "those",
"then": "thence",
"there": "thither",
"these": "those",
"they": "those folk",
"thing": "matter",
"think": "ponder",
"this": "this here",
"those": "yon folk",
"though": "albeit",
"thought": "notion",
"thousand": "a thousandfold",
"three": "thrice",
"through": "thorough",
"throw": "cast",
"thus": "so",
"time": "hour",
"tired": "weary",
"to": "unto",
"today": "this day",
"together": "all as one",
"told": "hath said",
"tomorrow": "the morrow",
"tonight": "this night",
"too": "likewise",
"took": "did seize",
"town": "hamlet",
"travel": "journey",
"tree": "timber",
"true": "veritable",
"trust": "faith",
"try": "endeavour",
"turn": "spin",
"twelve": "a dozen",
"twice": "twofold",
"two": "twain",
"ugly": "foul",
"under": "beneath",
"understand": "comprehend",
"unhappy": "woeful",
"unite": "join",
"until": "till",
"up": "aloft",
"upon": "on",
"use": "employ",
"usual": "customary",
"valley": "vale",
"value": "worth",
"very": "most",
"village": "shire",
"virtue": "merit",
"voice": "utterance",
"walk": "amble",
"wall": "barrier",
"want": "desire",
"war": "battle",
"warm": "heated",
"wash": "cleanse",
"watch": "keep vigil",
"water": "aqua",
"way": "path",
"we": "we folk",
"weak": "feeble",
"wealth": "riches",
"wear": "don",
"weather": "clime",
"week": "sennight",
"weep": "lament",
"well": "well met",
"west": "occident",
"wet": "damp",
"what": "what ho",
"when": "whenas",
"where": "whither",
"which": "whichsoever",
"while": "whilst",
"white": "pale",
"who": "whoever",
"whole": "entire",
"why": "wherefore",
"wife": "lady wife",
"wild": "untamed",
"will": "wilt",
"win": "triumph",
"wind": "gale",
"window": "casement",
"wine": "mead",
"winter": "frost-tide",
"wise": "sage",
"wish": "desirest",
"with": "withal",
"woman": "wench",
"wonder": "marvel",
"wood": "copse",
"word": "utterance",
"work": "toil",
"world": "mortal coil",
"worry": "vex",
"worse": "more foul",
"worth": "value",
"would": "wouldst",
"write": "scribe",
"wrong": "ill",
"year": "yr",
"yes": "aye",
"yesterday": "ereyesterday",
"yet": "still",
"you": "thou",
"young": "youthful",
"your": "thy",
"yourself": "thineself",
"zest": "gusto"
}
function walkAndReplace(rootNode) {
const walker = document.createTreeWalker(rootNode, NodeFilter.SHOW_TEXT, null, false);
let node;
while (node = walker.nextNode()) {
if (node.parentNode && !/^(SCRIPT|STYLE|TEXTAREA|INPUT)$/i.test(node.parentNode.nodeName)) {
node.nodeValue = replaceText(node.nodeValue);
}
}
}
function replaceText(text) {
for (let [key, value] of Object.entries(phraseDict)) {
const regex = new RegExp(`\\b${key}\\b`, 'gi');
text = text.replace(regex, (match) => matchCase(match, value));
}
for (let [key, value] of Object.entries(wordDict)) {
const regex = new RegExp(`\\b${key}\\b`, 'gi');
text = text.replace(regex, (match) => matchCase(match, value));
}
return text;
}
function matchCase(source, target) {
if (source === source.toUpperCase()) return target.toUpperCase();
if (source[0] === source[0].toUpperCase()) return target[0].toUpperCase() + target.slice(1);
return target;
}
function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
}
function observeAndReplace() {
const observer = new MutationObserver(mutations => {
for (const mutation of mutations) {
for (const node of mutation.addedNodes) {
if (node.nodeType === 1) {
walkAndReplace(node);
} else if (node.nodeType === 3) {
node.nodeValue = replaceText(node.nodeValue);
}
}
}
});
observer.observe(document.body, {
childList: true,
subtree: true
});
// initial run
walkAndReplace(document.body);
}
// waiting for DOM to load fully to over-ride text on dynamic websites
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', observeAndReplace);
} else {
observeAndReplace();
}
})();