# This module is used to tell jokes to the user # The emoji table of contents is used to replace words in the joke with emojis # As a Ham, is this obsecuring the meaning of the joke? Or is it enhancing it? from dadjokes import Dadjoke # pip install dadjokes import random from modules.log import logger, getPrettyTime from modules.settings import dad_jokes_emojiJokes, dad_jokes_enabled lameJokes = [ "Why don't scientists trust atoms? Because they make up everything!", "Why did the scarecrow win an award? Because he was outstanding in his field!", "Why don't skeletons fight each other? They don't have the guts.", "What do you call fake spaghetti? An impasta!", "Why did the bicycle fall over? Because it was two-tired!", "Why did the math book look sad? Because it had too many problems.", "Why did the golfer bring two pairs of pants? In case he got a hole in one.", "Why did the coffee file a police report? It got mugged.", "Why did the tomato turn red? Because it saw the salad dressing!", "Why did the cookie go to the doctor? Because it felt crummy.", "Why did the computer go to the doctor? Because it had a virus!", "Why did the chicken join a band? Because it had the drumsticks!", "Why did the banana go to the doctor? Because it wasn't peeling well.", "Why did the cow go to space? To see the moooon!", "Why did the fish blush? Because it saw the ocean's bottom!", "Why did the elephant bring a suitcase to the zoo? Because it wanted to pack its trunk!", "Why did the meshtastic node go to therapy? It had too many connections to handle!", "Why did the meshtastic user bring a ladder to the meeting? To reach new heights in communication!", "Why did the meshtastic device break up with Wi-Fi? It found a better connection!", "Why did the meshtastic network throw a party? Because it wanted to mesh well with everyone!", "Why did the meshtastic node get promoted? Because it was outstanding in its field!", "Why did the meshtastic user bring a map? To navigate the mesh of possibilities!", "Why did the meshtastic device go to school? To improve its signal strength!", "How did the meshtastic node become a comedian? It uses mesh-bots to deliver punchlines!", "Chuck Norris doesn't read books. He stares them down until he gets the information he wants.", "When Chuck Norris enters a room, he doesn't turn the lights on. He turns the dark off.", "Chuck Norris can divide by zero.", "Chuck Norris counted to infinity. Twice.", "Chuck Norris can slam a revolving door.", "When Chuck Norris does a push-up, he isn't lifting himself up; he's pushing the Earth down.", "Chuck Norris can hear sign language.", "Death once had a near-Chuck Norris experience.", "Chuck Norris can unscramble an egg.", "Chuck Norris can win a game of Connect Four in only three moves.", "Chuck Norris can make a snowman out of rain.", "Chuck Norris can strangle you with a cordless phone.", "Chuck Norris can do a wheelie on a unicycle.", "Chuck Norris can kill two stones with one bird.", "Chuck Norris can speak braille.", "Chuck Norris can build a snowman out of rain.", "This is a test. A test of the Joke Brodcast System. If this had been an actual joke, you would have been amused.", "Chuck Norris doesn't join mesh networks. Mesh networks join Chuck's topology.", "Every time Chuck Norris sends a packet, it arrives before he hits 'send'", "Chuck Norris doesn't need LoRa. His roundhouse kick has a 15km range with zero latency.", "When Chuck Norris uses a node, the bandwidth doubles out of fear.", "Chuck Norris once pinged a device. It replied with an apology and a firmware update.", "Chuck Norris doesn't use AES encryption. His packets are so secure, they punch hackers in the bits.", "The Meshtastic protocol has a hidden mode: โ€œChuck Norris mode.โ€ It only activates when he blinks.", "Chuck Norris doesn't need a GPS fix. Satellites triangulate themselves around him.", "Chuck Norris's mesh node doesn't sleep. It meditates while transmitting at full power.", "Chuck Norris doesn't broadcast. He declares.", "Chuck Norris once bridged two mesh networks using a shoelace.", "Chuck Norris's packets don't hop. They teleport out of respect.", "Chuck Norris doesn't need a repeater. Client_Mute is set to 'Always'.", "Chuck Norris's mesh messages are entangled. When he sends one, it's already received.", "Chuck Norris doesn't mesh with others. Others mesh with Chuck.", "Chuck Norris's node doesn't need a case. The PCB is armored with his beard hair.", "Chuck Norris once typed โ€œHello Worldโ€ and the world replied 'Hello Chuck.'", ] # pylint: disable=C0103, W0612 imtellingyourightnowiAmTellingYouRightNowThatMotherfErBackThereIsNotReal = ["๐Ÿฆ", "๐Ÿฆ…", "๐Ÿฆ†", "๐Ÿฆ‰", "๐Ÿฆœ", "๐Ÿค", "๐Ÿฅ", "๐Ÿฃ", "๐Ÿ”", "๐Ÿง", "๐Ÿฆš", "๐Ÿฆข", "๐Ÿฆฉ", "๐Ÿฆค", "๐Ÿฆƒ", "๐Ÿ“"] def tableOfContents(): wordToEmojiMap = { 'love': 'โค๏ธ', 'heart': 'โค๏ธ', 'happy': '๐Ÿ˜Š', 'smile': '๐Ÿ˜Š', 'sad': '๐Ÿ˜ข', 'angry': '๐Ÿ˜ ', 'mad': '๐Ÿ˜ ', 'cry': '๐Ÿ˜ข', 'laugh': '๐Ÿ˜‚', 'funny': '๐Ÿ˜‚', 'cool': '๐Ÿ˜Ž', 'joy': '๐Ÿ˜‚', 'kiss': '๐Ÿ˜˜', 'hug': '๐Ÿค—', 'wink': '๐Ÿ˜‰', 'grin': '๐Ÿ˜', 'bored': '๐Ÿ˜', 'tired': '๐Ÿ˜ด', 'sleepy': '๐Ÿ˜ด', 'shocked': '๐Ÿ˜ฒ', 'surprised': '๐Ÿ˜ฒ', 'confused': '๐Ÿ˜•', 'thinking': '๐Ÿค”', 'sick': '๐Ÿคข', 'party': '๐ŸŽ‰', 'celebrate': '๐ŸŽ‰', 'clap': '๐Ÿ‘', 'thumbs up': '๐Ÿ‘', 'thumbs down': '๐Ÿ‘Ž', 'ok': '๐Ÿ‘Œ', 'wave': '๐Ÿ‘‹', 'pray': '๐Ÿ™', 'muscle': '๐Ÿ’ช', 'fire': '๐Ÿ”ฅ', 'star': 'โญ', 'sun': 'โ˜€๏ธ', 'moon': '๐ŸŒ™', 'rain': '๐ŸŒง๏ธ', 'snow': 'โ„๏ธ', 'cloud': 'โ˜๏ธ', 'dog': '๐Ÿถ', 'cat': '๐Ÿฑ', 'mouse': '๐Ÿญ', 'rabbit': '๐Ÿฐ', 'fox': '๐ŸฆŠ', 'bear': '๐Ÿป', 'panda': '๐Ÿผ', 'koala': '๐Ÿจ', 'tiger': '๐Ÿฏ', 'lion': '๐Ÿฆ', 'cow': '๐Ÿฎ', 'pig': '๐Ÿท', 'frog': '๐Ÿธ', 'monkey': '๐Ÿต', 'chicken': '๐Ÿ”', 'penguin': '๐Ÿง', 'bird': '๐Ÿฆ', 'fish': '๐ŸŸ', 'whale': '๐Ÿ‹', 'dolphin': '๐Ÿฌ', 'octopus': '๐Ÿ™', 'apple': '๐ŸŽ', 'orange': '๐ŸŠ', 'banana': '๐ŸŒ', 'watermelon': '๐Ÿ‰', 'grape': '๐Ÿ‡', 'strawberry': '๐Ÿ“', 'cherry': '๐Ÿ’', 'peach': '๐Ÿ‘', 'pineapple': '๐Ÿ', 'mango': '๐Ÿฅญ', 'coconut': '๐Ÿฅฅ', 'tomato': '๐Ÿ…', 'eggplant': '๐Ÿ†', 'avocado': '๐Ÿฅ‘', 'broccoli': '๐Ÿฅฆ', 'cucumber': '๐Ÿฅ’', 'corn': '๐ŸŒฝ', 'carrot': '๐Ÿฅ•', 'potato': '๐Ÿฅ”', 'sweet potato': '๐Ÿ ', 'chili': '๐ŸŒถ๏ธ', 'garlic': '๐Ÿง„', 'pizza': '๐Ÿ•', 'burger': '๐Ÿ”', 'fries': '๐ŸŸ', 'hotdog': '๐ŸŒญ', 'popcorn': '๐Ÿฟ', 'donut': '๐Ÿฉ', 'cookie': '๐Ÿช', 'cake': '๐ŸŽ‚', 'pie': '๐Ÿฐ', 'cupcake': '๐Ÿง', 'chocolate': '๐Ÿซ', 'candy': '๐Ÿฌ', 'lollipop': '๐Ÿญ', 'pudding': '๐Ÿฎ', 'honey': '๐Ÿฏ', 'milk': '๐Ÿผ', 'coffee': 'โ˜•', 'tea': '๐Ÿต', 'sake': '๐Ÿถ', 'beer': '๐Ÿบ', 'cheers': '๐Ÿป', 'champagne': '๐Ÿฅ‚', 'wine': '๐Ÿท', 'whiskey': '๐Ÿฅƒ', 'cocktail': '๐Ÿธ', 'tropical drink': '๐Ÿน', 'bottle': '๐Ÿพ', 'soda': '๐Ÿฅค', 'chopsticks': '๐Ÿฅข', 'fork': '๐Ÿด', 'knife': '๐Ÿ”ช', 'spoon': '๐Ÿฅ„', 'kitchen knife': '๐Ÿ”ช', 'house': '๐Ÿ ', 'home': '๐Ÿก', 'office': '๐Ÿข', 'post office': '๐Ÿฃ', 'hospital': '๐Ÿฅ', 'bank': '๐Ÿฆ', 'hotel': '๐Ÿจ', 'love hotel': '๐Ÿฉ', 'convenience store': '๐Ÿช', 'school': '๐Ÿซ', 'department store': '๐Ÿฌ', 'factory': '๐Ÿญ', 'castle': '๐Ÿฏ', 'palace': '๐Ÿฐ', 'church': '๐Ÿ’’', 'tower': '๐Ÿ—ผ', 'statue of liberty': '๐Ÿ—ฝ', 'mosque': '๐Ÿ•Œ', 'synagogue': '๐Ÿ•', 'hindu temple': '๐Ÿ›•', 'kaaba': '๐Ÿ•‹', 'shinto shrine': 'โ›ฉ๏ธ', 'railway': '๐Ÿ›ค๏ธ', 'highway': '๐Ÿ›ฃ๏ธ', 'map': '๐Ÿ—พ', 'carousel': '๐ŸŽ ', 'ferris wheel': '๐ŸŽก', 'roller coaster': '๐ŸŽข', 'circus': '๐ŸŽช', 'theater': '๐ŸŽญ', 'art': '๐ŸŽจ', 'slot machine': '๐ŸŽฐ', 'dice': '๐ŸŽฒ', 'bowling': '๐ŸŽณ', 'video game': '๐ŸŽฎ', 'dart': '๐ŸŽฏ', 'billiard': '๐ŸŽฑ', 'medal': '๐ŸŽ–๏ธ', 'trophy': '๐Ÿ†', 'gold medal': '๐Ÿฅ‡', 'silver medal': '๐Ÿฅˆ', 'bronze medal': '๐Ÿฅ‰', 'soccer': 'โšฝ', 'baseball': 'โšพ', 'basketball': '๐Ÿ€', 'volleyball': '๐Ÿ', 'football': '๐Ÿˆ', 'rugby': '๐Ÿ‰', 'tennis': '๐ŸŽพ', 'frisbee': '๐Ÿฅ', 'ping pong': '๐Ÿ“', 'badminton': '๐Ÿธ', 'boxing': '๐ŸฅŠ', 'martial arts': '๐Ÿฅ‹', 'goal': '๐Ÿฅ…', 'golf': 'โ›ณ', 'skating': 'โ›ธ๏ธ', 'fishing': '๐ŸŽฃ', 'diving': '๐Ÿคฟ', 'running': '๐ŸŽฝ', 'skiing': '๐ŸŽฟ', 'sledding': '๐Ÿ›ท', 'curling': '๐ŸฅŒ', 'climbing': '๐Ÿง—', 'yoga': '๐Ÿง˜', 'surfing': '๐Ÿ„', 'swimming': '๐ŸŠ', 'water polo': '๐Ÿคฝ', 'cycling': '๐Ÿšด', 'mountain biking': '๐Ÿšต', 'horse riding': '๐Ÿ‡', 'kneeling': '๐ŸงŽ', 'weightlifting': '๐Ÿ‹๏ธ', 'gymnastics': '๐Ÿคธ', 'wrestling': '๐Ÿคผ', 'handball': '๐Ÿคพ', 'juggling': '๐Ÿคน', 'meditation': '๐Ÿง˜', 'sauna': '๐Ÿง–', 'rock climbing': '๐Ÿง—', 'stop': '๐Ÿ›‘', 'computer': '๐Ÿ’ป', 'phone': '๐Ÿ“ฑ', 'email': '๐Ÿ“ง', 'camera': '๐Ÿ“ท', 'video': '๐Ÿ“น', 'music': '๐ŸŽต', 'guitar': '๐ŸŽธ', 'piano': '๐ŸŽน', 'drum': '๐Ÿฅ', 'microphone': '๐ŸŽค', 'headphone': '๐ŸŽง', 'book': '๐Ÿ“š', 'newspaper': '๐Ÿ“ฐ', 'magazine': '๐Ÿ“–', 'pen': '๐Ÿ–Š๏ธ', 'pencil': 'โœ๏ธ', 'paintbrush': '๐Ÿ–Œ๏ธ', 'scissors': 'โœ‚๏ธ', 'ruler': '๐Ÿ“', 'globe': '๐ŸŒ', 'earth': '๐ŸŒŽ', 'star': '๐ŸŒŸ', 'comet': 'โ˜„๏ธ', 'rocket': '๐Ÿš€', 'airplane': 'โœˆ๏ธ', 'car': '๐Ÿš—', 'bus': '๐ŸšŒ', 'train': '๐Ÿš†', 'bicycle': '๐Ÿšฒ', 'motorcycle': '๐Ÿ๏ธ', 'boat': '๐Ÿšค', 'ship': '๐Ÿšข', 'helicopter': '๐Ÿš', 'tractor': '๐Ÿšœ', 'ambulance': '๐Ÿš‘', 'fire truck': '๐Ÿš’', 'police car': '๐Ÿš“', 'taxi': '๐Ÿš•', 'truck': '๐Ÿšš', 'construction': '๐Ÿšง', 'traffic light': '๐Ÿšฆ', 'stop sign': '๐Ÿ›‘', 'fuel': 'โ›ฝ', 'battery': '๐Ÿ”‹', 'light bulb': '๐Ÿ’ก', 'flashlight': '๐Ÿ”ฆ', 'candle': '๐Ÿ•ฏ๏ธ', 'lamp': '๐Ÿ›‹๏ธ', 'bed': '๐Ÿ›๏ธ', 'sofa': '๐Ÿ›‹๏ธ', 'chair': '๐Ÿช‘', 'table': '๐Ÿ›‹๏ธ', 'toilet': '๐Ÿšฝ', 'shower': '๐Ÿšฟ', 'bathtub': '๐Ÿ›', 'sink': '๐Ÿšฐ', 'mirror': '๐Ÿชž', 'door': '๐Ÿšช', 'window': '๐ŸชŸ', 'key': '๐Ÿ”‘', 'lock': '๐Ÿ”’', 'hammer': '๐Ÿ”จ', 'wrench': '๐Ÿ”ง', 'screwdriver': '๐Ÿช›', 'saw': '๐Ÿชš', 'drill': '๐Ÿ› ๏ธ', 'toolbox': '๐Ÿงฐ', 'paint roller': '๐Ÿ–Œ๏ธ', 'brush': '๐Ÿ–Œ๏ธ', 'broom': '๐Ÿงน', 'mop': '๐Ÿงฝ', 'bucket': '๐Ÿชฃ', 'vacuum': '๐Ÿงน', 'washing machine': '๐Ÿงบ', 'dryer': '๐Ÿงบ', 'iron': '๐Ÿงบ', 'hanger': '๐Ÿงบ', 'laundry': '๐Ÿงบ', 'basket': '๐Ÿงบ', 'trash': '๐Ÿ—‘๏ธ', 'recycle': 'โ™ป๏ธ', 'plant': '๐ŸŒฑ', 'tree': '๐ŸŒณ', 'flower': '๐ŸŒธ', 'leaf': '๐Ÿƒ', 'cactus': '๐ŸŒต', 'mushroom': '๐Ÿ„', 'herb': '๐ŸŒฟ', 'bamboo': '๐ŸŽ', 'rose': '๐ŸŒน', 'tulip': '๐ŸŒท', 'sunflower': '๐ŸŒป', 'hibiscus': '๐ŸŒบ', 'cherry blossom': '๐ŸŒธ', 'bouquet': '๐Ÿ’', 'seedling': '๐ŸŒฑ', 'palm tree': '๐ŸŒด', 'evergreen tree': '๐ŸŒฒ', 'deciduous tree': '๐ŸŒณ', 'fallen leaf': '๐Ÿ‚', 'maple leaf': '๐Ÿ', 'ear of rice': '๐ŸŒพ', 'shamrock': 'โ˜˜๏ธ', 'four leaf clover': '๐Ÿ€', 'grapes': '๐Ÿ‡', 'melon': '๐Ÿˆ', 'watermelon': '๐Ÿ‰', 'tangerine': '๐ŸŠ', 'lemon': '๐Ÿ‹', 'banana': '๐ŸŒ', 'pineapple': '๐Ÿ', 'green apple': '๐Ÿ', 'pear': '๐Ÿ', 'peach': '๐Ÿ‘', 'cherries': '๐Ÿ’', 'strawberry': '๐Ÿ“', 'kiwi': '๐Ÿฅ', 'tomato': '๐Ÿ…', 'coconut': '๐Ÿฅฅ', 'avocado': '๐Ÿฅ‘', 'hot pepper': '๐ŸŒถ๏ธ', 'cucumber': '๐Ÿฅ’', 'leafy green': '๐Ÿฅฌ', 'broccoli': '๐Ÿฅฆ', 'garlic': '๐Ÿง„', 'onion': '๐Ÿง…', 'peanuts': '๐Ÿฅœ', 'chestnut': '๐ŸŒฐ', 'bread': '๐Ÿž', 'croissant': '๐Ÿฅ', 'baguette': '๐Ÿฅ–', 'flatbread': '๐Ÿฅ™', 'pretzel': '๐Ÿฅจ', 'bagel': '๐Ÿฅฏ', 'pancakes': '๐Ÿฅž', 'waffle': '๐Ÿง‡', 'cheese': '๐Ÿง€', 'meat': '๐Ÿ–', 'poultry': '๐Ÿ—', 'bacon': '๐Ÿฅ“', 'hamburger': '๐Ÿ”', 'fries': '๐ŸŸ', 'pizza': '๐Ÿ•', 'hot dog': '๐ŸŒญ', 'sandwich': '๐Ÿฅช', 'taco': '๐ŸŒฎ', 'burrito': '๐ŸŒฏ', 'tamale': '๐Ÿซ”', 'stuffed flatbread': '๐Ÿฅ™', 'falafel': '๐Ÿง†', 'egg': '๐Ÿฅš', 'fried egg': '๐Ÿณ', 'shallow pan of food': '๐Ÿฅ˜', 'pot of food': '๐Ÿฒ', 'fondue': '๐Ÿซ•', 'bowl with spoon': '๐Ÿฅฃ', 'green salad': '๐Ÿฅ—', 'popcorn': '๐Ÿฟ', 'butter': '๐Ÿงˆ', 'salt': '๐Ÿง‚', 'canned food': '๐Ÿฅซ', 'bento box': '๐Ÿฑ', 'rice cracker': '๐Ÿ˜', 'rice ball': '๐Ÿ™', 'cooked rice': '๐Ÿš', 'curry rice': '๐Ÿ›', 'steaming bowl': '๐Ÿœ', 'spaghetti': '๐Ÿ', 'roasted sweet potato': '๐Ÿ ', 'oden': '๐Ÿข', 'sushi': '๐Ÿฃ', 'fried shrimp': '๐Ÿค', 'fish cake': '๐Ÿฅ', 'moon cake': '๐Ÿฅฎ', 'dango': '๐Ÿก', 'dumpling': '๐ŸฅŸ', 'fortune cookie': '๐Ÿฅ ', 'takeout box': '๐Ÿฅก', 'crab': '๐Ÿฆ€', 'lobster': '๐Ÿฆž', 'shrimp': '๐Ÿฆ', 'squid': '๐Ÿฆ‘', 'oyster': '๐Ÿฆช', 'ice cream': '๐Ÿจ', 'shaved ice': '๐Ÿง', 'ice cream cone': '๐Ÿฆ', 'doughnut': '๐Ÿฉ', 'cookie': '๐Ÿช', 'birthday cake': '๐ŸŽ‚', 'shortcake': '๐Ÿฐ', 'cupcake': '๐Ÿง', 'pie': '๐Ÿฅง', 'chocolate bar': '๐Ÿซ', 'candy': '๐Ÿฌ', 'lollipop': '๐Ÿญ', 'custard': '๐Ÿฎ', 'honey pot': '๐Ÿฏ', 'baby bottle': '๐Ÿผ', 'glass of milk': '๐Ÿฅ›', 'hot beverage': 'โ˜•', 'teapot': '๐Ÿซ–', 'teacup without handle': '๐Ÿต', 'sake': '๐Ÿถ', 'bottle with popping cork': '๐Ÿพ', 'wine glass': '๐Ÿท', 'cocktail glass': '๐Ÿธ', 'tropical drink': '๐Ÿน', 'beer mug': '๐Ÿบ', 'clinking beer mugs': '๐Ÿป', 'clinking glasses': '๐Ÿฅ‚', 'tumbler glass': '๐Ÿฅƒ', 'cup with straw': '๐Ÿฅค', 'bubble tea': '๐Ÿง‹', 'beverage box': '๐Ÿงƒ', 'mate': '๐Ÿง‰', 'ice': '๐ŸงŠ', 'chopsticks': '๐Ÿฅข', 'fork and knife': '๐Ÿด', 'spoon': '๐Ÿฅ„', 'kitchen knife': '๐Ÿ”ช', 'amphora': '๐Ÿบ', 'globe showing Europe-Africa': '๐ŸŒ', 'globe showing Americas': '๐ŸŒŽ', 'globe showing Asia-Australia': '๐ŸŒ', 'globe with meridians': '๐ŸŒ', 'world map': '๐Ÿ—บ๏ธ', 'mountain': 'โ›ฐ๏ธ', 'volcano': '๐ŸŒ‹', 'mount fuji': '๐Ÿ—ป', 'camping': '๐Ÿ•๏ธ', 'beach with umbrella': '๐Ÿ–๏ธ', 'desert': '๐Ÿœ๏ธ', 'desert island': '๐Ÿ๏ธ', 'national park': '๐Ÿž๏ธ', 'stadium': '๐ŸŸ๏ธ', 'classical building': '๐Ÿ›๏ธ', 'building construction': '๐Ÿ—๏ธ', 'brick': '๐Ÿงฑ', 'rock': '๐Ÿชจ', 'wood': '๐Ÿชต', 'hut': '๐Ÿ›–', 'houses': '๐Ÿ˜๏ธ', 'derelict house': '๐Ÿš๏ธ', 'house with garden': '๐Ÿก', 'office building': '๐Ÿข', 'japanese post office': '๐Ÿฃ', 'post office': '๐Ÿค', 'hospital': '๐Ÿฅ', 'bank': '๐Ÿฆ', 'hotel': '๐Ÿจ', 'love hotel': '๐Ÿฉ', 'convenience store': '๐Ÿช', 'castle': '๐Ÿฐ', 'wedding': '๐Ÿ’’', 'tokyo tower': '๐Ÿ—ผ', 'statue of liberty': '๐Ÿ—ฝ', 'church': 'โ›ช', 'mosque': '๐Ÿ•Œ', 'fountain': 'โ›ฒ', 'tent': 'โ›บ', 'foggy': '๐ŸŒ', 'night with stars': '๐ŸŒƒ', 'sunrise over mountains': '๐ŸŒ„', 'sunrise': '๐ŸŒ…', 'cityscape at dusk': '๐ŸŒ†', 'sunset': '๐ŸŒ‡', 'cityscape': '๐Ÿ™๏ธ', 'bridge at night': '๐ŸŒ‰', 'hot springs': 'โ™จ๏ธ', 'carousel horse': '๐ŸŽ ', 'barber pole': '๐Ÿ’ˆ', 'robot': '๐Ÿค–', 'alien': '๐Ÿ‘ฝ', 'ghost': '๐Ÿ‘ป', 'skull': '๐Ÿ’€', 'pumpkin': '๐ŸŽƒ', 'clown': '๐Ÿคก', 'wizard': '๐Ÿง™', 'elf': '๐Ÿง', 'fairy': '๐Ÿงš', 'mermaid': '๐Ÿงœ', 'vampire': '๐Ÿง›', 'zombie': '๐ŸงŸ', 'genie': '๐Ÿงž', 'superhero': '๐Ÿฆธ', 'supervillain': '๐Ÿฆน', 'mage': '๐Ÿง™', 'knight': '๐Ÿ›ก๏ธ', 'ninja': '๐Ÿฅท', 'pirate': '๐Ÿดโ€โ˜ ๏ธ', 'angel': '๐Ÿ‘ผ', 'devil': '๐Ÿ˜ˆ', 'dragon': '๐Ÿ‰', 'unicorn': '๐Ÿฆ„', 'phoenix': '๐Ÿฆ…', 'griffin': '๐Ÿฆ…', 'centaur': '๐ŸŽ', 'minotaur': '๐Ÿ‚', 'cyclops': '๐Ÿ‘๏ธ', 'medusa': '๐Ÿ', 'sphinx': '๐Ÿฆ', 'kraken': '๐Ÿฆ‘', 'yeti': 'โ„๏ธ', 'sasquatch': '๐Ÿฆง', 'loch ness monster': '๐Ÿฆ•', 'chupacabra': '๐Ÿ', 'banshee': '๐Ÿ‘ป', 'golem': '๐Ÿ—ฟ', 'djinn': '๐Ÿงž', 'basilisk': '๐Ÿ', 'hydra': '๐Ÿ‰', 'cerberus': '๐Ÿถ', 'chimera': '๐Ÿ', 'manticore': '๐Ÿฆ', 'wyvern': '๐Ÿ‰', 'pegasus': '๐Ÿฆ„', 'hippogriff': '๐Ÿฆ…', 'kelpie': '๐ŸŽ', 'selkie': '๐Ÿฆญ', 'kitsune': '๐ŸฆŠ', 'tanuki': '๐Ÿฆ', 'tengu': '๐Ÿฆ…', 'oni': '๐Ÿ‘น', 'yokai': '๐Ÿ‘ป', 'kappa': '๐Ÿข', 'yurei': '๐Ÿ‘ป', 'kami': '๐Ÿ‘ผ', 'shinigami': '๐Ÿ’€', 'bakemono': '๐Ÿ‘น', 'tsukumogami': '๐Ÿงธ', 'noppera-bo': '๐Ÿ‘ค', 'rokurokubi': '๐Ÿง›', 'yuki-onna': 'โ„๏ธ', 'jorogumo': '๐Ÿ•ท๏ธ', 'nue': '๐Ÿ', 'ubume': '๐Ÿ‘ผ', 'atom': 'โš›๏ธ', 'dna': '๐Ÿงฌ', 'microscope': '๐Ÿ”ฌ', 'telescope': '๐Ÿ”ญ', 'satellite': '๐Ÿ›ฐ๏ธ', 'spaceship': '๐Ÿ›ธ', 'planet': '๐Ÿช', 'black hole': '๐Ÿ•ณ๏ธ', 'galaxy': '๐ŸŒŒ', 'constellation': '๐ŸŒ ', 'lightning': 'โšก', 'magnet': '๐Ÿงฒ', 'computer': '๐Ÿ’ป', 'keyboard': 'โŒจ๏ธ', 'mouse': '๐Ÿ–ฑ๏ธ', 'printer': '๐Ÿ–จ๏ธ', 'floppy disk': '๐Ÿ’พ', 'cd': '๐Ÿ’ฟ', 'dvd': '๐Ÿ“€', 'smartphone': '๐Ÿ“ฑ', 'tablet': '๐Ÿ“ฒ', 'watch': 'โŒš', 'camera': '๐Ÿ“ท', 'video camera': '๐Ÿ“น', 'projector': '๐Ÿ“ฝ๏ธ', 'radio': '๐Ÿ“ป', 'television': '๐Ÿ“บ', 'satellite dish': '๐Ÿ“ก', 'game controller': '๐ŸŽฎ', 'joystick': '๐Ÿ•น๏ธ', 'vr headset': '๐Ÿ•ถ๏ธ', 'headphones': '๐ŸŽง', 'speaker': '๐Ÿ”Š', 'circuit': '๐Ÿ”Œ', 'chip': '๐Ÿ’ป', 'server': '๐Ÿ–ฅ๏ธ', 'database': '๐Ÿ’พ', 'cloud': 'โ˜๏ธ', 'network': '๐ŸŒ', 'code': '๐Ÿ’ป', 'bug': '๐Ÿ›', 'virus': '๐Ÿฆ ', 'bacteria': '๐Ÿฆ ', 'lab coat': '๐Ÿฅผ', 'safety goggles': '๐Ÿฅฝ', 'test tube': '๐Ÿงช', 'petri dish': '๐Ÿงซ', 'beaker': '๐Ÿงช', 'bunsen burner': '๐Ÿ”ฅ', 'graduated cylinder': '๐Ÿงช', 'pipette': '๐Ÿงช', 'scalpel': '๐Ÿ”ช', 'syringe': '๐Ÿ’‰', 'pill': '๐Ÿ’Š', 'stethoscope': '๐Ÿฉบ', 'thermometer': '๐ŸŒก๏ธ', 'x-ray': '๐Ÿฉป', 'brain': '๐Ÿง ', 'heart': 'โค๏ธ', 'lung': '๐Ÿซ', 'bone': '๐Ÿฆด', 'muscle': '๐Ÿ’ช', 'robot arm': '๐Ÿฆพ', 'robot leg': '๐Ÿฆฟ', 'prosthetic arm': '๐Ÿฆพ', 'prosthetic leg': '๐Ÿฆฟ', 'wheelchair': '๐Ÿฆฝ', 'crutch': '๐Ÿฆฏ', 'hearing aid': '๐Ÿฆป', 'glasses': '๐Ÿ‘“', 'magnifying glass': '๐Ÿ”', 'circus tent': '๐ŸŽช', 'duck': '๐Ÿฆ†', 'eagle': '๐Ÿฆ…', 'owl': '๐Ÿฆ‰', 'bat': '๐Ÿฆ‡', 'shark': '๐Ÿฆˆ', 'butterfly': '๐Ÿฆ‹', 'snail': '๐ŸŒ', 'bee': '๐Ÿ', 'beetle': '๐Ÿž', 'ant': '๐Ÿœ', 'cricket': '๐Ÿฆ—', 'spider': '๐Ÿ•ท๏ธ', 'scorpion': '๐Ÿฆ‚', 'turkey': '๐Ÿฆƒ', 'peacock': '๐Ÿฆš', 'parrot': '๐Ÿฆœ', 'swan': '๐Ÿฆข', 'flamingo': '๐Ÿฆฉ', 'dodo': '๐Ÿฆค', 'sloth': '๐Ÿฆฅ', 'otter': '๐Ÿฆฆ', 'skunk': '๐Ÿฆจ', 'kangaroo': '๐Ÿฆ˜', 'badger': '๐Ÿฆก', 'beaver': '๐Ÿฆซ', 'bison': '๐Ÿฆฌ', 'mammoth': '๐Ÿฆฃ', 'raccoon': '๐Ÿฆ', 'hedgehog': '๐Ÿฆ”', 'squirrel': '๐Ÿฟ๏ธ', 'chipmunk': '๐Ÿฟ๏ธ', 'porcupine': '๐Ÿฆ”', 'llama': '๐Ÿฆ™', 'giraffe': '๐Ÿฆ’', 'zebra': '๐Ÿฆ“', 'hippopotamus': '๐Ÿฆ›', 'rhinoceros': '๐Ÿฆ', 'gorilla': '๐Ÿฆ', 'orangutan': '๐Ÿฆง', 'elephant': '๐Ÿ˜', 'camel': '๐Ÿซ', 'alpaca': '๐Ÿฆ™', 'buffalo': '๐Ÿƒ', 'ox': '๐Ÿ‚', 'deer': '๐ŸฆŒ', 'moose': '๐ŸฆŒ', 'reindeer': '๐ŸฆŒ', 'goat': '๐Ÿ', 'sheep': '๐Ÿ‘', 'ram': '๐Ÿ', 'lamb': '๐Ÿ‘', 'horse': '๐Ÿด', 'rat': '๐Ÿ€', 'hedgehog': '๐Ÿฆ”', 'chicken': '๐Ÿ”', 'rooster': '๐Ÿ“', 'crocodile': '๐ŸŠ', 'turtle': '๐Ÿข', 'lizard': '๐ŸฆŽ', 'dragon': '๐Ÿ‰', 'sauropod': '๐Ÿฆ•', 't-rex': '๐Ÿฆ–', 'butterfly': '๐Ÿฆ‹', 'mosquito': '๐ŸฆŸ', 'microbe': '๐Ÿฆ ', 'locomotive': '๐Ÿš‚', 'arm': '๐Ÿ’ช', 'leg': '๐Ÿฆต', 'sponge': '๐Ÿงฝ', 'toothbrush': '๐Ÿชฅ', 'roll of paper': '๐Ÿงป', 'soap': '๐Ÿงผ', 'toilet paper': '๐Ÿงป', 'shower': '๐Ÿšฟ', 'bathtub': '๐Ÿ›', 'razor': '๐Ÿช’', 'lotion': '๐Ÿงด', 'letter': 'โœ‰๏ธ', 'envelope': 'โœ‰๏ธ', 'mail': '๐Ÿ“ฌ', 'post': '๐Ÿ“ฎ', 'golf': 'โ›ณ๏ธ', 'golfing': 'โ›ณ๏ธ', 'meeting': '๐Ÿ“…', 'presentation': '๐Ÿ“Š', 'report': '๐Ÿ“„', 'document': '๐Ÿ“„', 'file': '๐Ÿ“', 'folder': '๐Ÿ“‚', 'sports': '๐Ÿ…', 'athlete': '๐Ÿƒ', 'competition': '๐Ÿ†', 'race': '๐Ÿ', 'tournament': '๐Ÿ†', 'champion': '๐Ÿ†', 'medal': '๐Ÿ…', 'victory': '๐Ÿ†', 'win': '๐Ÿ†', 'lose': '๐Ÿ˜ž', 'draw': '๐Ÿค', 'team': '๐Ÿ‘ฅ', 'player': '๐Ÿ‘ค', 'coach': '๐Ÿ‘จโ€๐Ÿซ', 'referee': '๐Ÿง‘โ€โš–๏ธ', 'stadium': '๐ŸŸ๏ธ', 'arena': '๐ŸŸ๏ธ', 'field': '๐ŸŸ๏ธ', 'court': '๐ŸŸ๏ธ', 'track': '๐ŸŸ๏ธ', 'gym': '๐Ÿ‹๏ธ', 'fitness': '๐Ÿ‹๏ธ', 'exercise': '๐Ÿ‹๏ธ', 'workout': '๐Ÿ‹๏ธ', 'training': '๐Ÿ‹๏ธ', 'practice': '๐Ÿ‹๏ธ', 'game': '๐ŸŽฎ', 'match': '๐ŸŽฎ', 'score': '๐Ÿ…', 'goal': '๐Ÿฅ…', 'point': '๐Ÿ…', 'basket': '๐Ÿ€', 'home run': 'โšพ๏ธ', 'strike': '๐ŸŽณ', 'spare': '๐ŸŽณ', 'frame': '๐ŸŽณ', 'inning': 'โšพ๏ธ', 'quarter': '๐Ÿˆ', 'half': '๐Ÿˆ', 'overtime': '๐Ÿˆ', 'penalty': 'โšฝ๏ธ', 'foul': 'โšฝ๏ธ', 'timeout': 'โฑ๏ธ', 'substitute': '๐Ÿ”„', 'bench': '๐Ÿช‘', 'sideline': '๐ŸŸ๏ธ', 'dugout': 'โšพ๏ธ', 'locker room': '๐Ÿšช', 'shower': '๐Ÿšฟ', 'uniform': '๐Ÿ‘•', 'jersey': '๐Ÿ‘•', 'cleats': '๐Ÿ‘Ÿ', 'helmet': 'โ›‘๏ธ', 'pads': '๐Ÿ›ก๏ธ', 'gloves': '๐Ÿงค', 'bat': 'โšพ๏ธ', 'ball': 'โšฝ๏ธ', 'puck': '๐Ÿ’', 'stick': '๐Ÿ’', 'net': '๐Ÿฅ…', 'hoop': '๐Ÿ€', 'goalpost': '๐Ÿฅ…', 'whistle': '๐Ÿ””', 'scoreboard': '๐Ÿ“Š', 'fans': '๐Ÿ‘ฅ', 'crowd': '๐Ÿ‘ฅ', 'cheer': '๐Ÿ“ฃ', 'boo': '๐Ÿ˜ ', 'applause': '๐Ÿ‘', 'celebration': '๐ŸŽ‰', 'parade': '๐ŸŽ‰', 'trophy': '๐Ÿ†', 'medal': '๐Ÿ…', 'ribbon': '๐ŸŽ€', 'cup': '๐Ÿ†', 'championship': '๐Ÿ†', 'league': '๐Ÿ†', 'season': '๐Ÿ†', 'playoffs': '๐Ÿ†', 'finals': '๐Ÿ†', 'runner-up': '๐Ÿฅˆ', 'third place': '๐Ÿฅ‰', 'snowman': 'โ˜ƒ๏ธ', 'snowmen': 'โ›„๏ธ' } return wordToEmojiMap def sendWithEmoji(message): # this will take a string of text and replace any word or phrase that is in the word list with the corresponding emoji wordToEmojiMap = tableOfContents() # type format to clean it up words = message.split() i = 0 while i < len(words): for phrase in sorted(wordToEmojiMap.keys(), key=len, reverse=True): phrase_words = phrase.split() # Strip punctuation from the words stripped_words = [word.lower().strip('.,!?') for word in words[i:i+len(phrase_words)]] if stripped_words == phrase_words: logger.debug(f"System: Replaced the phrase '{phrase}' with '{wordToEmojiMap[phrase]}'") words[i:i+len(phrase_words)] = [wordToEmojiMap[phrase]] i += len(phrase_words) - 1 break # Check for plural forms elif stripped_words == [word + 's' for word in phrase_words]: logger.debug(f"System: Replaced the plural phrase '{' '.join([word + 's' for word in phrase_words])}' with '{wordToEmojiMap[phrase]}'") words[i:i+len(phrase_words)] = [wordToEmojiMap[phrase]] i += len(phrase_words) - 1 break i += 1 return ' '.join(words) def tell_joke(nodeID=0, vox=False, test=False): dadjoke = Dadjoke() if test: return sendWithEmoji(dadjoke.joke) try: if dad_jokes_emojiJokes: renderedLaugh = sendWithEmoji(dadjoke.joke) else: renderedLaugh = dadjoke.joke return renderedLaugh except Exception as e: return random.choice(lameJokes)