<filename>mantabot/util/emoji.py

def build_emoji_dict(guild):
    """ Build an emoji dict for given guild, suitable as 'custom'
        argument to parse_emojis.
        Only emojis the bot is allowed to use are kept.
    """
    my_roles = set(guild.me.roles)
    return dict(
        (emoji.name, emoji) for emoji in guild.emojis
        if not emoji.roles or my_roles.intersection(emoji.roles)
    )

def lookup_emoji(name, custom=None):
    try:
        return EMOJI_TABLE[name]
    except KeyError:
        pass
    try:
        return custom[name]
    except (TypeError, KeyError):
        pass
    raise ValueError('not an emoji')

def parse_emojis(text, custom=None):
    """ Replace discord-style emojis with actual unicode characters """

    if custom is None:
        custom = {}

    items = text.split(':')
    result = []

    skip_next = True
    for idx, item in enumerate(items):
        if skip_next:
            result.append(item)
            skip_next = False
            continue
        emoji = EMOJI_TABLE.get(item) or custom.get(item)
        if emoji is None:
            result.extend((':', item))
        else:
            result.append(str(emoji))
            skip_next = True

    return ''.join(result)

EMOJI_TABLE = {
    'hash': '\u0023\u20E3',
    'zero': '\u0030\u20E3',
    'one': '\u0031\u20E3',
    'two': '\u0032\u20E3',
    'three': '\u0033\u20E3',
    'four': '\u0034\u20E3',
    'five': '\u0035\u20E3',
    'six': '\u0036\u20E3',
    'seven': '\u0037\u20E3',
    'eight': '\u0038\u20E3',
    'nine': '\u0039\u20E3',
    'copyright': '\u00A9',
    'registered': '\u00AE',
    'bangbang': '\u203C',
    'interrobang': '\u2049',
    'tm': '\u2122',
    'information_source': '\u2139',
    'left_right_arrow': '\u2194',
    'arrow_up_down': '\u2195',
    'arrow_upper_left': '\u2196',
    'arrow_upper_right': '\u2197',
    'arrow_lower_right': '\u2198',
    'arrow_lower_left': '\u2199',
    'leftwards_arrow_with_hook': '\u21A9',
    'arrow_right_hook': '\u21AA',
    'watch': '\u231A',
    'hourglass': '\u231B',
    'fast_forward': '\u23E9',
    'rewind': '\u23EA',
    'arrow_double_up': '\u23EB',
    'arrow_double_down': '\u23EC',
    'alarm_clock': '\u23F0',
    'hourglass_flowing_sand': '\u23F3',
    'm': '\u24C2',
    'black_small_square': '\u25AA',
    'white_small_square': '\u25AB',
    'arrow_forward': '\u25B6',
    'arrow_backward': '\u25C0',
    'white_medium_square': '\u25FB',
    'black_medium_square': '\u25FC',
    'white_medium_small_square': '\u25FD',
    'black_medium_small_square': '\u25FE',
    'sunny': '\u2600',
    'cloud': '\u2601',
    'telephone': '\u260E',
    'phone': '\u260E',
    'ballot_box_with_check': '\u2611',
    'umbrella': '\u2614',
    'coffee': '\u2615',
    'point_up': '\u261D',
    'relaxed': '\u263A',
    'aries': '\u2648',
    'taurus': '\u2649',
    'gemini': '\u264A',
    'cancer': '\u264B',
    'leo': '\u264C',
    'virgo': '\u264D',
    'libra': '\u264E',
    'scorpius': '\u264F',
    'sagittarius': '\u2650',
    'capricorn': '\u2651',
    'aquarius': '\u2652',
    'pisces': '\u2653',
    'spades': '\u2660',
    'clubs': '\u2663',
    'hearts': '\u2665',
    'diamonds': '\u2666',
    'hotsprings': '\u2668',
    'recycle': '\u267B',
    'wheelchair': '\u267F',
    'anchor': '\u2693',
    'warning': '\u26A0',
    'zap': '\u26A1',
    'white_circle': '\u26AA',
    'black_circle': '\u26AB',
    'soccer': '\u26BD',
    'baseball': '\u26BE',
    'snowman': '\u26C4',
    'partly_sunny': '\u26C5',
    'ophiuchus': '\u26CE',
    'no_entry': '\u26D4',
    'church': '\u26EA',
    'fountain': '\u26F2',
    'golf': '\u26F3',
    'sailboat': '\u26F5',
    'boat': '\u26F5',
    'tent': '\u26FA',
    'fuelpump': '\u26FD',
    'scissors': '\u2702',
    'white_check_mark': '\u2705',
    'airplane': '\u2708',
    'envelope': '\u2709',
    'email': '\u2709',
    'fist': '\u270A',
    'raised_hand': '\u270B',
    'hand': '\u270B',
    'v': '\u270C',
    'pencil2': '\u270F',
    'black_nib': '\u2712',
    'heavy_check_mark': '\u2714',
    'heavy_multiplication_x': '\u2716',
    'sparkles': '\u2728',
    'eight_spoked_asterisk': '\u2733',
    'eight_pointed_black_star': '\u2734',
    'snowflake': '\u2744',
    'sparkle': '\u2747',
    'x': '\u274C',
    'negative_squared_cross_mark': '\u274E',
    'question': '\u2753',
    'grey_question': '\u2754',
    'grey_exclamation': '\u2755',
    'exclamation': '\u2757',
    'heavy_exclamation_mark': '\u2757',
    'heart': '\u2764',
    'heavy_plus_sign': '\u2795',
    'heavy_minus_sign': '\u2796',
    'heavy_division_sign': '\u2797',
    'arrow_right': '\u27A1',
    'curly_loop': '\u27B0',
    'arrow_heading_up': '\u2934',
    'arrow_heading_down': '\u2935',
    'arrow_left': '\u2B05',
    'arrow_up': '\u2B06',
    'arrow_down': '\u2B07',
    'black_large_square': '\u2B1B',
    'white_large_square': '\u2B1C',
    'star': '\u2B50',
    'o': '\u2B55',
    'wavy_dash': '\u3030',
    'part_alternation_mark': '\u303D',
    'congratulations': '\u3297',
    'secret': '\u3299',
    'mahjong': '\U0001F004',
    'black_joker': '\U0001F0CF',
    'a': '\U0001F170',
    'b': '\U0001F171',
    'o2': '\U0001F17E',
    'parking': '\U0001F17F',
    'ab': '\U0001F18E',
    'cl': '\U0001F191',
    'cool': '\U0001F192',
    'free': '\U0001F193',
    'id': '\U0001F194',
    'new': '\U0001F195',
    'ng': '\U0001F196',
    'ok': '\U0001F197',
    'sos': '\U0001F198',
    'up': '\U0001F199',
    'vs': '\U0001F19A',
    'cn': '\U0001F1E8\U0001F1F3',
    'de': '\U0001F1E9\U0001F1EA',
    'es': '\U0001F1EA\U0001F1F8',
    'fr': '\U0001F1EB\U0001F1F7',
    'uk': '\U0001F1EC\U0001F1E7',
    'gb': '\U0001F1EC\U0001F1E7',
    'it': '\U0001F1EE\U0001F1F9',
    'jp': '\U0001F1EF\U0001F1F5',
    'kr': '\U0001F1F0\U0001F1F7',
    'ru': '\U0001F1F7\U0001F1FA',
    'us': '\U0001F1FA\U0001F1F8',
    'koko': '\U0001F201',
    'sa': '\U0001F202',
    'u7121': '\U0001F21A',
    'u6307': '\U0001F22F',
    'u7981': '\U0001F232',
    'u7a7a': '\U0001F233',
    'u5408': '\U0001F234',
    'u6e80': '\U0001F235',
    'u6709': '\U0001F236',
    'u6708': '\U0001F237',
    'u7533': '\U0001F238',
    'u5272': '\U0001F239',
    'u55b6': '\U0001F23A',
    'ideograph_advantage': '\U0001F250',
    'accept': '\U0001F251',
    'cyclone': '\U0001F300',
    'foggy': '\U0001F301',
    'closed_umbrella': '\U0001F302',
    'night_with_stars': '\U0001F303',
    'sunrise_over_mountains': '\U0001F304',
    'sunrise': '\U0001F305',
    'city_sunset': '\U0001F306',
    'city_sunrise': '\U0001F307',
    'rainbow': '\U0001F308',
    'bridge_at_night': '\U0001F309',
    'ocean': '\U0001F30A',
    'volcano': '\U0001F30B',
    'milky_way': '\U0001F30C',
    'earth_asia': '\U0001F30F',
    'new_moon': '\U0001F311',
    'first_quarter_moon': '\U0001F313',
    'waxing_gibbous_moon': '\U0001F314',
    'moon': '\U0001F314',
    'full_moon': '\U0001F315',
    'crescent_moon': '\U0001F319',
    'first_quarter_moon_with_face': '\U0001F31B',
    'star2': '\U0001F31F',
    'stars': '\U0001F320',
    'chestnut': '\U0001F330',
    'seedling': '\U0001F331',
    'palm_tree': '\U0001F334',
    'cactus': '\U0001F335',
    'tulip': '\U0001F337',
    'cherry_blossom': '\U0001F338',
    'rose': '\U0001F339',
    'hibiscus': '\U0001F33A',
    'sunflower': '\U0001F33B',
    'blossom': '\U0001F33C',
    'corn': '\U0001F33D',
    'ear_of_rice': '\U0001F33E',
    'herb': '\U0001F33F',
    'four_leaf_clover': '\U0001F340',
    'maple_leaf': '\U0001F341',
    'fallen_leaf': '\U0001F342',
    'leaves': '\U0001F343',
    'mushroom': '\U0001F344',
    'tomato': '\U0001F345',
    'eggplant': '\U0001F346',
    'grapes': '\U0001F347',
    'melon': '\U0001F348',
    'watermelon': '\U0001F349',
    'tangerine': '\U0001F34A',
    'banana': '\U0001F34C',
    'pineapple': '\U0001F34D',
    'apple': '\U0001F34E',
    'green_apple': '\U0001F34F',
    'peach': '\U0001F351',
    'cherries': '\U0001F352',
    'strawberry': '\U0001F353',
    'hamburger': '\U0001F354',
    'pizza': '\U0001F355',
    'meat_on_bone': '\U0001F356',
    'poultry_leg': '\U0001F357',
    'rice_cracker': '\U0001F358',
    'rice_ball': '\U0001F359',
    'rice': '\U0001F35A',
    'curry': '\U0001F35B',
    'ramen': '\U0001F35C',
    'spaghetti': '\U0001F35D',
    'bread': '\U0001F35E',
    'fries': '\U0001F35F',
    'sweet_potato': '\U0001F360',
    'dango': '\U0001F361',
    'oden': '\U0001F362',
    'sushi': '\U0001F363',
    'fried_shrimp': '\U0001F364',
    'fish_cake': '\U0001F365',
    'icecream': '\U0001F366',
    'shaved_ice': '\U0001F367',
    'ice_cream': '\U0001F368',
    'doughnut': '\U0001F369',
    'cookie': '\U0001F36A',
    'chocolate_bar': '\U0001F36B',
    'candy': '\U0001F36C',
    'lollipop': '\U0001F36D',
    'custard': '\U0001F36E',
    'honey_pot': '\U0001F36F',
    'cake': '\U0001F370',
    'bento': '\U0001F371',
    'stew': '\U0001F372',
    'egg': '\U0001F373',
    'fork_and_knife': '\U0001F374',
    'tea': '\U0001F375',
    'sake': '\U0001F376',
    'wine_glass': '\U0001F377',
    'cocktail': '\U0001F378',
    'tropical_drink': '\U0001F379',
    'beer': '\U0001F37A',
    'beers': '\U0001F37B',
    'ribbon': '\U0001F380',
    'gift': '\U0001F381',
    'birthday': '\U0001F382',
    'jack_o_lantern': '\U0001F383',
    'christmas_tree': '\U0001F384',
    'santa': '\U0001F385',
    'fireworks': '\U0001F386',
    'sparkler': '\U0001F387',
    'balloon': '\U0001F388',
    'tada': '\U0001F389',
    'confetti_ball': '\U0001F38A',
    'tanabata_tree': '\U0001F38B',
    'crossed_flags': '\U0001F38C',
    'bamboo': '\U0001F38D',
    'dolls': '\U0001F38E',
    'flags': '\U0001F38F',
    'wind_chime': '\U0001F390',
    'rice_scene': '\U0001F391',
    'school_satchel': '\U0001F392',
    'mortar_board': '\U0001F393',
    'carousel_horse': '\U0001F3A0',
    'ferris_wheel': '\U0001F3A1',
    'roller_coaster': '\U0001F3A2',
    'fishing_pole_and_fish': '\U0001F3A3',
    'microphone': '\U0001F3A4',
    'movie_camera': '\U0001F3A5',
    'cinema': '\U0001F3A6',
    'headphones': '\U0001F3A7',
    'art': '\U0001F3A8',
    'tophat': '\U0001F3A9',
    'circus_tent': '\U0001F3AA',
    'ticket': '\U0001F3AB',
    'clapper': '\U0001F3AC',
    'performing_arts': '\U0001F3AD',
    'video_game': '\U0001F3AE',
    'dart': '\U0001F3AF',
    'slot_machine': '\U0001F3B0',
    '8ball': '\U0001F3B1',
    'game_die': '\U0001F3B2',
    'bowling': '\U0001F3B3',
    'flower_playing_cards': '\U0001F3B4',
    'musical_note': '\U0001F3B5',
    'notes': '\U0001F3B6',
    'saxophone': '\U0001F3B7',
    'guitar': '\U0001F3B8',
    'musical_keyboard': '\U0001F3B9',
    'trumpet': '\U0001F3BA',
    'violin': '\U0001F3BB',
    'musical_score': '\U0001F3BC',
    'running_shirt_with_sash': '\U0001F3BD',
    'tennis': '\U0001F3BE',
    'ski': '\U0001F3BF',
    'basketball': '\U0001F3C0',
    'checkered_flag': '\U0001F3C1',
    'snowboarder': '\U0001F3C2',
    'runner': '\U0001F3C3',
    'running': '\U0001F3C3',
    'surfer': '\U0001F3C4',
    'trophy': '\U0001F3C6',
    'football': '\U0001F3C8',
    'swimmer': '\U0001F3CA',
    'house': '\U0001F3E0',
    'house_with_garden': '\U0001F3E1',
    'office': '\U0001F3E2',
    'post_office': '\U0001F3E3',
    'hospital': '\U0001F3E5',
    'bank': '\U0001F3E6',
    'atm': '\U0001F3E7',
    'hotel': '\U0001F3E8',
    'love_hotel': '\U0001F3E9',
    'convenience_store': '\U0001F3EA',
    'school': '\U0001F3EB',
    'department_store': '\U0001F3EC',
    'factory': '\U0001F3ED',
    'izakaya_lantern': '\U0001F3EE',
    'lantern': '\U0001F3EE',
    'japanese_castle': '\U0001F3EF',
    'european_castle': '\U0001F3F0',
    'snail': '\U0001F40C',
    'snake': '\U0001F40D',
    'racehorse': '\U0001F40E',
    'sheep': '\U0001F411',
    'monkey': '\U0001F412',
    'chicken': '\U0001F414',
    'boar': '\U0001F417',
    'elephant': '\U0001F418',
    'octopus': '\U0001F419',
    'shell': '\U0001F41A',
    'bug': '\U0001F41B',
    'ant': '\U0001F41C',
    'bee': '\U0001F41D',
    'beetle': '\U0001F41E',
    'fish': '\U0001F41F',
    'tropical_fish': '\U0001F420',
    'blowfish': '\U0001F421',
    'turtle': '\U0001F422',
    'hatching_chick': '\U0001F423',
    'baby_chick': '\U0001F424',
    'hatched_chick': '\U0001F425',
    'bird': '\U0001F426',
    'penguin': '\U0001F427',
    'koala': '\U0001F428',
    'poodle': '\U0001F429',
    'camel': '\U0001F42B',
    'dolphin': '\U0001F42C',
    'mouse': '\U0001F42D',
    'cow': '\U0001F42E',
    'tiger': '\U0001F42F',
    'rabbit': '\U0001F430',
    'cat': '\U0001F431',
    'dragon_face': '\U0001F432',
    'whale': '\U0001F433',
    'horse': '\U0001F434',
    'monkey_face': '\U0001F435',
    'dog': '\U0001F436',
    'pig': '\U0001F437',
    'frog': '\U0001F438',
    'hamster': '\U0001F439',
    'wolf': '\U0001F43A',
    'bear': '\U0001F43B',
    'panda_face': '\U0001F43C',
    'pig_nose': '\U0001F43D',
    'feet': '\U0001F43E',
    'eyes': '\U0001F440',
    'ear': '\U0001F442',
    'nose': '\U0001F443',
    'lips': '\U0001F444',
    'tongue': '\U0001F445',
    'point_up_2': '\U0001F446',
    'point_down': '\U0001F447',
    'point_left': '\U0001F448',
    'point_right': '\U0001F449',
    'punch': '\U0001F44A',
    'wave': '\U0001F44B',
    'ok_hand': '\U0001F44C',
    'thumbsup': '\U0001F44D',
    'thumbsdown': '\U0001F44E',
    'clap': '\U0001F44F',
    'open_hands': '\U0001F450',
    'crown': '\U0001F451',
    'womans_hat': '\U0001F452',
    'eyeglasses': '\U0001F453',
    'necktie': '\U0001F454',
    'shirt': '\U0001F455',
    'jeans': '\U0001F456',
    'dress': '\U0001F457',
    'kimono': '\U0001F458',
    'bikini': '\U0001F459',
    'womans_clothes': '\U0001F45A',
    'purse': '\U0001F45B',
    'handbag': '\U0001F45C',
    'pouch': '\U0001F45D',
    'mans_shoe': '\U0001F45E',
    'athletic_shoe': '\U0001F45F',
    'high_heel': '\U0001F460',
    'sandal': '\U0001F461',
    'boot': '\U0001F462',
    'footprints': '\U0001F463',
    'bust_in_silhouette': '\U0001F464',
    'boy': '\U0001F466',
    'girl': '\U0001F467',
    'man': '\U0001F468',
    'woman': '\U0001F469',
    'family': '\U0001F46A',
    'couple': '\U0001F46B',
    'cop': '\U0001F46E',
    'dancers': '\U0001F46F',
    'bride_with_veil': '\U0001F470',
    'person_with_blond_hair': '\U0001F471',
    'man_with_gua_pi_mao': '\U0001F472',
    'man_with_turban': '\U0001F473',
    'older_man': '\U0001F474',
    'older_woman': '\U0001F475',
    'baby': '\U0001F476',
    'construction_worker': '\U0001F477',
    'princess': '\U0001F478',
    'japanese_ogre': '\U0001F479',
    'japanese_goblin': '\U0001F47A',
    'ghost': '\U0001F47B',
    'angel': '\U0001F47C',
    'alien': '\U0001F47D',
    'space_invader': '\U0001F47E',
    'imp': '\U0001F47F',
    'skull': '\U0001F480',
    'information_desk_person': '\U0001F481',
    'guardsman': '\U0001F482',
    'dancer': '\U0001F483',
    'lipstick': '\U0001F484',
    'nail_care': '\U0001F485',
    'massage': '\U0001F486',
    'haircut': '\U0001F487',
    'barber': '\U0001F488',
    'syringe': '\U0001F489',
    'pill': '\U0001F48A',
    'kiss': '\U0001F48B',
    'love_letter': '\U0001F48C',
    'ring': '\U0001F48D',
    'gem': '\U0001F48E',
    'couplekiss': '\U0001F48F',
    'bouquet': '\U0001F490',
    'couple_with_heart': '\U0001F491',
    'wedding': '\U0001F492',
    'heartbeat': '\U0001F493',
    'broken_heart': '\U0001F494',
    'two_hearts': '\U0001F495',
    'sparkling_heart': '\U0001F496',
    'heartpulse': '\U0001F497',
    'cupid': '\U0001F498',
    'blue_heart': '\U0001F499',
    'green_heart': '\U0001F49A',
    'yellow_heart': '\U0001F49B',
    'purple_heart': '\U0001F49C',
    'gift_heart': '\U0001F49D',
    'revolving_hearts': '\U0001F49E',
    'heart_decoration': '\U0001F49F',
    'diamond_shape_with_a_dot_inside': '\U0001F4A0',
    'bulb': '\U0001F4A1',
    'anger': '\U0001F4A2',
    'bomb': '\U0001F4A3',
    'zzz': '\U0001F4A4',
    'boom': '\U0001F4A5',
    'sweat_drops': '\U0001F4A6',
    'droplet': '\U0001F4A7',
    'dash': '\U0001F4A8',
    'poop': '\U0001F4A9',
    'muscle': '\U0001F4AA',
    'dizzy': '\U0001F4AB',
    'speech_balloon': '\U0001F4AC',
    'white_flower': '\U0001F4AE',
    '100': '\U0001F4AF',
    'moneybag': '\U0001F4B0',
    'currency_exchange': '\U0001F4B1',
    'heavy_dollar_sign': '\U0001F4B2',
    'credit_card': '\U0001F4B3',
    'yen': '\U0001F4B4',
    'dollar': '\U0001F4B5',
    'money_with_wings': '\U0001F4B8',
    'chart': '\U0001F4B9',
    'seat': '\U0001F4BA',
    'computer': '\U0001F4BB',
    'briefcase': '\U0001F4BC',
    'minidisc': '\U0001F4BD',
    'floppy_disk': '\U0001F4BE',
    'cd': '\U0001F4BF',
    'dvd': '\U0001F4C0',
    'file_folder': '\U0001F4C1',
    'open_file_folder': '\U0001F4C2',
    'page_with_curl': '\U0001F4C3',
    'page_facing_up': '\U0001F4C4',
    'date': '\U0001F4C5',
    'calendar': '\U0001F4C6',
    'card_index': '\U0001F4C7',
    'chart_with_upwards_trend': '\U0001F4C8',
    'chart_with_downwards_trend': '\U0001F4C9',
    'bar_chart': '\U0001F4CA',
    'clipboard': '\U0001F4CB',
    'pushpin': '\U0001F4CC',
    'round_pushpin': '\U0001F4CD',
    'paperclip': '\U0001F4CE',
    'straight_ruler': '\U0001F4CF',
    'triangular_ruler': '\U0001F4D0',
    'bookmark_tabs': '\U0001F4D1',
    'ledger': '\U0001F4D2',
    'notebook': '\U0001F4D3',
    'notebook_with_decorative_cover': '\U0001F4D4',
    'closed_book': '\U0001F4D5',
    'book': '\U0001F4D6',
    'green_book': '\U0001F4D7',
    'blue_book': '\U0001F4D8',
    'orange_book': '\U0001F4D9',
    'books': '\U0001F4DA',
    'name_badge': '\U0001F4DB',
    'scroll': '\U0001F4DC',
    'pencil': '\U0001F4DD',
    'telephone_receiver': '\U0001F4DE',
    'pager': '\U0001F4DF',
    'fax': '\U0001F4E0',
    'satellite': '\U0001F4E1',
    'loudspeaker': '\U0001F4E2',
    'mega': '\U0001F4E3',
    'outbox_tray': '\U0001F4E4',
    'inbox_tray': '\U0001F4E5',
    'package': '\U0001F4E6',
    'e_mail': '\U0001F4E7',
    'incoming_envelope': '\U0001F4E8',
    'envelope_with_arrow': '\U0001F4E9',
    'mailbox_closed': '\U0001F4EA',
    'mailbox': '\U0001F4EB',
    'postbox': '\U0001F4EE',
    'newspaper': '\U0001F4F0',
    'iphone': '\U0001F4F1',
    'calling': '\U0001F4F2',
    'vibration_mode': '\U0001F4F3',
    'mobile_phone_off': '\U0001F4F4',
    'signal_strength': '\U0001F4F6',
    'camera': '\U0001F4F7',
    'video_camera': '\U0001F4F9',
    'tv': '\U0001F4FA',
    'radio': '\U0001F4FB',
    'vhs': '\U0001F4FC',
    'arrows_clockwise': '\U0001F503',
    'loud_sound': '\U0001F50A',
    'battery': '\U0001F50B',
    'electric_plug': '\U0001F50C',
    'mag': '\U0001F50D',
    'mag_right': '\U0001F50E',
    'lock_with_ink_pen': '\U0001F50F',
    'closed_lock_with_key': '\<KEY>',
    'key': <KEY>',
    'lock': '\U0001F512',
    'unlock': '\U0001F513',
    'bell': '\U0001F514',
    'bookmark': '\U0001F516',
    'link': '\U0001F517',
    'radio_button': '\U0001F518',
    'back': '\U0001F519',
    'end': '\U0001F51A',
    'on': '\U0001F51B',
    'soon': '\U0001F51C',
    'top': '\U0001F51D',
    'underage': '\U0001F51E',
    'keycap_ten': '\U0001F51F',
    'capital_abcd': '\U0001F520',
    'abcd': '\U0001F521',
    '1234': '\U0001F522',
    'symbols': '\U0001F523',
    'abc': '\U0001F524',
    'fire': '\U0001F525',
    'flashlight': '\U0001F526',
    'wrench': '\U0001F527',
    'hammer': '\U0001F528',
    'nut_and_bolt': '\U0001F529',
    'knife': '\U0001F52A',
    'gun': '\U0001F52B',
    'crystal_ball': '\U0001F52E',
    'six_pointed_star': '\U0001F52F',
    'beginner': '\U0001F530',
    'trident': '\U0001F531',
    'black_square_button': '\U0001F532',
    'white_square_button': '\U0001F533',
    'red_circle': '\U0001F534',
    'large_blue_circle': '\U0001F535',
    'large_orange_diamond': '\U0001F536',
    'large_blue_diamond': '\U0001F537',
    'small_orange_diamond': '\U0001F538',
    'small_blue_diamond': '\U0001F539',
    'small_red_triangle': '\U0001F53A',
    'small_red_triangle_down': '\U0001F53B',
    'arrow_up_small': '\U0001F53C',
    'arrow_down_small': '\U0001F53D',
    'clock1': '\U0001F550',
    'clock2': '\U0001F551',
    'clock3': '\U0001F552',
    'clock4': '\U0001F553',
    'clock5': '\U0001F554',
    'clock6': '\U0001F555',
    'clock7': '\U0001F556',
    'clock8': '\U0001F557',
    'clock9': '\U0001F558',
    'clock10': '\U0001F559',
    'clock11': '\U0001F55A',
    'clock12': '\U0001F55B',
    'mount_fuji': '\U0001F5FB',
    'tokyo_tower': '\U0001F5FC',
    'statue_of_liberty': '\U0001F5FD',
    'japan': '\U0001F5FE',
    'moyai': '\U0001F5FF',
    'grin': '\U0001F601',
    'joy': '\U0001F602',
    'smiley': '\U0001F603',
    'smile': '\U0001F604',
    'sweat_smile': '\U0001F605',
    'laughing': '\U0001F606',
    'wink': '\U0001F609',
    'blush': '\U0001F60A',
    'yum': '\U0001F60B',
    'relieved': '\U0001F60C',
    'heart_eyes': '\U0001F60D',
    'smirk': '\U0001F60F',
    'unamused': '\U0001F612',
    'sweat': '\U0001F613',
    'pensive': '\U0001F614',
    'confounded': '\U0001F616',
    'kissing_heart': '\U0001F618',
    'kissing_closed_eyes': '\U0001F61A',
    'stuck_out_tongue_winking_eye': '\U0001F61C',
    'stuck_out_tongue_closed_eyes': '\U0001F61D',
    'disappointed': '\U0001F61E',
    'angry': '\U0001F620',
    'rage': '\U0001F621',
    'cry': '\U0001F622',
    'persevere': '\U0001F623',
    'triumph': '\U0001F624',
    'disappointed_relieved': '\U0001F625',
    'fearful': '\U0001F628',
    'weary': '\U0001F629',
    'sleepy': '\U0001F62A',
    'tired_face': '\U0001F62B',
    'sob': '\U0001F62D',
    'cold_sweat': '\U0001F630',
    'scream': '\U0001F631',
    'astonished': '\U0001F632',
    'flushed': '\U0001F633',
    'dizzy_face': '\U0001F635',
    'mask': '\U0001F637',
    'smile_cat': '\U0001F638',
    'joy_cat': '\U0001F639',
    'smiley_cat': '\U0001F63A',
    'heart_eyes_cat': '\U0001F63B',
    'smirk_cat': '\U0001F63C',
    'kissing_cat': '\U0001F63D',
    'pouting_cat': '\U0001F63E',
    'crying_cat_face': '\U0001F63F',
    'scream_cat': '\U0001F640',
    'no_good': '\U0001F645',
    'ok_woman': '\U0001F646',
    'bow': '\U0001F647',
    'see_no_evil': '\U0001F648',
    'hear_no_evil': '\U0001F649',
    'speak_no_evil': '\U0001F64A',
    'raising_hand': '\U0001F64B',
    'raised_hands': '\U0001F64C',
    'person_frowning': '\U0001F64D',
    'person_with_pouting_face': '\U0001F64E',
    'pray': '\U0001F64F',
    'rocket': '\U0001F680',
    'railway_car': '\U0001F683',
    'bullettrain_side': '\U0001F684',
    'bullettrain_front': '\U0001F685',
    'metro': '\U0001F687',
    'station': '\U0001F689',
    'bus': '\U0001F68C',
    'busstop': '\U0001F68F',
    'ambulance': '\U0001F691',
    'fire_engine': '\U0001F692',
    'police_car': '\U0001F693',
    'taxi': '\U0001F695',
    'red_car': '\U0001F697',
    'blue_car': '\U0001F699',
    'truck': '\U0001F69A',
    'ship': '\U0001F6A2',
    'speedboat': '\U0001F6A4',
    'traffic_light': '\U0001F6A5',
    'construction': '\U0001F6A7',
    'rotating_light': '\U0001F6A8',
    'triangular_flag_on_post': '\U0001F6A9',
    'door': '\U0001F6AA',
    'no_entry_sign': '\U0001F6AB',
    'smoking': '\U0001F6AC',
    'no_smoking': '\U0001F6AD',
    'bike': '\U0001F6B2',
    'walking': '\U0001F6B6',
    'mens': '\U0001F6B9',
    'womens': '\U0001F6BA',
    'restroom': '\U0001F6BB',
    'baby_symbol': '\U0001F6BC',
    'toilet': '\U0001F6BD',
    'wc': '\U0001F6BE',
    'bath': '\U0001F6C0',
    'articulated_lorry': '\U0001F69B',
    'kissing_smiling_eyes': '\U0001F619',
    'pear': '\U0001F350',
    'bicyclist': '\U0001F6B4',
    'rabbit2': '\U0001F407',
    'clock830': '\U0001F563',
    'train': '\U0001F68B',
    'oncoming_automobile': '\U0001F698',
    'expressionless': '\U0001F611',
    'smiling_imp': '\U0001F608',
    'frowning': '\U0001F626',
    'no_mouth': '\U0001F636',
    'baby_bottle': '\U0001F37C',
    'non_potable_water': '\U0001F6B1',
    'open_mouth': '\U0001F62E',
    'last_quarter_moon_with_face': '\U0001F31C',
    'do_not_litter': '\U0001F6AF',
    'sunglasses': '\U0001F60E',
    'metal': '\U0001F918',
    'loop': '\u27BF',
    'last_quarter_moon': '\U0001F317',
    'grinning': '\U0001F600',
    'euro': '\U0001F4B6',
    'clock330': '\U0001F55E',
    'telescope': '\U0001F52D',
    'globe_with_meridians': '\U0001F310',
    'postal_horn': '\U0001F4EF',
    'stuck_out_tongue': '\U0001F61B',
    'clock1030': '\U0001F565',
    'pound': '\U0001F4B7',
    'two_men_holding_hands': '\U0001F46C',
    'tiger2': '\U0001F405',
    'anguished': '\U0001F627',
    'vertical_traffic_light': '\U0001F6A6',
    'confused': '\U0001F615',
    'repeat': '\U0001F501',
    'oncoming_police_car': '\U0001F694',
    'tram': '\U0001F68A',
    'dragon': '\U0001F409',
    'earth_americas': '\U0001F30E',
    'rugby_football': '\U0001F3C9',
    'left_luggage': '\U0001F6C5',
    'sound': '\U0001F509',
    'clock630': '\U0001F561',
    'dromedary_camel': '\U0001F42A',
    'oncoming_bus': '\U0001F68D',
    'horse_racing': '\U0001F3C7',
    'rooster': '\U0001F413',
    'rowboat': '\U0001F6A3',
    'customs': '\U0001F6C3',
    'repeat_one': '\U0001F502',
    'waxing_crescent_moon': '\U0001F312',
    'mountain_railway': '\U0001F69E',
    'clock930': '\U0001F564',
    'put_litter_in_its_place': '\U0001F6AE',
    'arrows_counterclockwise': '\U0001F504',
    'clock130': '\U0001F55C',
    'goat': '\U0001F410',
    'pig2': '\U0001F416',
    'innocent': '\U0001F607',
    'no_bicycles': '\U0001F6B3',
    'light_rail': '\U0001F688',
    'whale2': '\U0001F40B',
    'train2': '\U0001F686',
    'earth_africa': '\U0001F30D',
    'shower': '\U0001F6BF',
    'waning_gibbous_moon': '\U0001F316',
    'steam_locomotive': '\U0001F682',
    'cat2': '\U0001F408',
    'tractor': '\U0001F69C',
    'thought_balloon': '\U0001F4AD',
    'two_women_holding_hands': '\U0001F46D',
    'full_moon_with_face': '\U0001F31D',
    'mouse2': '\U0001F401',
    'clock430': '\U0001F55F',
    'worried': '\U0001F61F',
    'rat': '\U0001F400',
    'ram': '\U0001F40F',
    'dog2': '\U0001F415',
    'kissing': '\U0001F617',
    'helicopter': '\U0001F681',
    'clock1130': '\U0001F566',
    'no_mobile_phones': '\U0001F4F5',
    'european_post_office': '\U0001F3E4',
    'ox': '\U0001F402',
    'mountain_cableway': '\U0001F6A0',
    'sleeping': '\U0001F634',
    'cow2': '\U0001F404',
    'minibus': '\U0001F690',
    'clock730': '\U0001F562',
    'aerial_tramway': '\U0001F6A1',
    'speaker': '\U0001F508',
    'no_bell': '\U0001F515',
    'mailbox_with_mail': '\U0001F4EC',
    'no_pedestrians': '\U0001F6B7',
    'microscope': '\U0001F52C',
    'bathtub': '\U0001F6C1',
    'suspension_railway': '\U0001F69F',
    'crocodile': '\U0001F40A',
    'mountain_bicyclist': '\U0001F6B5',
    'waning_crescent_moon': '\U0001F318',
    'monorail': '\U0001F69D',
    'children_crossing': '\U0001F6B8',
    'clock230': '\U0001F55D',
    'busts_in_silhouette': '\U0001F465',
    'mailbox_with_no_mail': '\U0001F4ED',
    'leopard': '\U0001F406',
    'deciduous_tree': '\U0001F333',
    'oncoming_taxi': '\U0001F696',
    'lemon': '\U0001F34B',
    'mute': '\U0001F507',
    'baggage_claim': '\U0001F6C4',
    'twisted_rightwards_arrows': '\U0001F500',
    'sun_with_face': '\U0001F31E',
    'trolleybus': '\U0001F68E',
    'evergreen_tree': '\U0001F332',
    'passport_control': '\U0001F6C2',
    'new_moon_with_face': '\U0001F31A',
    'potable_water': '\U0001F6B0',
    'high_brightness': '\U0001F506',
    'low_brightness': '\U0001F505',
    'clock530': '\U0001F560',
    'hushed': '\U0001F62F',
    'grimacing': '\U0001F62C',
    'water_buffalo': '\U0001F403',
    'neutral_face': '\U0001F610',
    'clock1230': '\U0001F567',
    'skin-tone-1': '\U0001F3FB',
    'skin-tone-2': '\U0001F3FC',
    'skin-tone-3': '\U0001F3FD',
    'skin-tone-4': '\U0001F3FE',
    'skin-tone-5': '\U0001F3FF',
}

