diff --git a/tools/setup/emoji/emoji_names.py b/tools/setup/emoji/emoji_names.py new file mode 100644 index 0000000000..52e9898a82 --- /dev/null +++ b/tools/setup/emoji/emoji_names.py @@ -0,0 +1,1531 @@ +from typing import Any, Dict + +EMOJI_NAME_MAPS = { + # seems like best emoji for happy + '1f600': {'canonical_name': 'grinning', 'aliases': ['happy']}, + '1f603': {'canonical_name': 'smiley', 'aliases': []}, + # the google emoji for this is not great, so made People/9 'smile' and + # renamed this one + '1f604': {'canonical_name': 'big_smile', 'aliases': []}, + # from gemoji/unicode + '1f601': {'canonical_name': 'grinning_face_with_smiling_eyes', 'aliases': []}, + # satisfied doesn't seem like a good description of these images + '1f606': {'canonical_name': 'laughing', 'aliases': ['lol']}, + '1f605': {'canonical_name': 'sweat_smile', 'aliases': []}, + # laughter_tears from https://beebom.com/emoji-meanings/ + '1f602': {'canonical_name': 'joy', 'aliases': ['tears', 'laughter_tears']}, + '1f923': {'canonical_name': 'rolling_on_the_floor_laughing', 'aliases': ['rofl']}, + # not sure how the glpyhs match relaxed, but both iamcal and gemoji have it + '263a': {'canonical_name': 'smile', 'aliases': ['relaxed']}, + '1f60a': {'canonical_name': 'blush', 'aliases': []}, + # halo comes from gemoji/unicode + '1f607': {'canonical_name': 'innocent', 'aliases': ['halo']}, + '1f642': {'canonical_name': 'slight_smile', 'aliases': []}, + '1f643': {'canonical_name': 'upside_down', 'aliases': ['oops']}, + '1f609': {'canonical_name': 'wink', 'aliases': []}, + '1f60c': {'canonical_name': 'relieved', 'aliases': []}, + # in_love from https://beebom.com/emoji-meanings/ + '1f60d': {'canonical_name': 'heart_eyes', 'aliases': ['in_love']}, + # blow_a_kiss from https://beebom.com/emoji-meanings/ + '1f618': {'canonical_name': 'heart_kiss', 'aliases': ['blow_a_kiss']}, + '1f617': {'canonical_name': 'kiss', 'aliases': []}, + '1f619': {'canonical_name': 'kiss_smiling_eyes', 'aliases': []}, + '1f61a': {'canonical_name': 'kiss_with_blush', 'aliases': []}, + '1f60b': {'canonical_name': 'yum', 'aliases': []}, + # crazy from https://beebom.com/emoji-meanings/, seems like best emoji for + # joking + '1f61c': {'canonical_name': 'stuck_out_tongue_wink', 'aliases': ['joking', 'crazy']}, + '1f61d': {'canonical_name': 'stuck_out_tongue', 'aliases': []}, + # don't really need two stuck_out_tongues (see People/23), so chose + # something else that could fit + '1f61b': {'canonical_name': 'mischievous', 'aliases': []}, + # kaching suggested by user + '1f911': {'canonical_name': 'money_face', 'aliases': ['kaching']}, + # arms_open seems like a natural addition + '1f917': {'canonical_name': 'hug', 'aliases': ['arms_open']}, + '1f913': {'canonical_name': 'nerd', 'aliases': ['geek']}, + # several sites suggested this was used for "cool", but cool is taken by + # Symbols/137 + '1f60e': {'canonical_name': 'sunglasses', 'aliases': []}, + '1f921': {'canonical_name': 'clown', 'aliases': []}, + '1f920': {'canonical_name': 'cowboy', 'aliases': []}, + # https://emojipedia.org/smirking-face/ + '1f60f': {'canonical_name': 'smirk', 'aliases': ['smug']}, + '1f612': {'canonical_name': 'unamused', 'aliases': []}, + '1f61e': {'canonical_name': 'disappointed', 'aliases': []}, + # see People/41 + '1f614': {'canonical_name': 'pensive', 'aliases': ['tired']}, + '1f61f': {'canonical_name': 'worried', 'aliases': []}, + # these seem to better capture the glyphs. This is also what :/ turns into + # in google hangouts + '1f615': {'canonical_name': 'oh_no', 'aliases': ['half_frown', 'concerned', 'confused']}, + '1f641': {'canonical_name': 'frown', 'aliases': ['slight_frown']}, + # sad seemed better than putting another frown as the primary name (see + # People/37) + '2639': {'canonical_name': 'sad', 'aliases': ['big_frown']}, + # helpless from https://emojipedia.org/persevering-face/ + '1f623': {'canonical_name': 'persevere', 'aliases': ['helpless']}, + # agony seemed like a good addition + '1f616': {'canonical_name': 'confounded', 'aliases': ['agony']}, + # tired doesn't really match any of the 4 images, put it on People/34 + '1f62b': {'canonical_name': 'anguish', 'aliases': []}, + # distraught from https://beebom.com/emoji-meanings/ + '1f629': {'canonical_name': 'weary', 'aliases': ['distraught']}, + '1f624': {'canonical_name': 'triumph', 'aliases': []}, + '1f620': {'canonical_name': 'angry', 'aliases': []}, + # mad and grumpy from https://beebom.com/emoji-meanings/, very_angry to + # parallel People/44 and show up in typeahead for "ang.." + '1f621': {'canonical_name': 'rage', 'aliases': ['mad', 'grumpy', 'very_angry']}, + # blank from https://beebom.com/emoji-meanings/, speechless and poker_face + # seemed like good ideas for this + '1f636': {'canonical_name': 'speechless', 'aliases': ['no_mouth', 'blank', 'poker_face']}, + '1f610': {'canonical_name': 'neutral', 'aliases': []}, + '1f611': {'canonical_name': 'expressionless', 'aliases': []}, + '1f62f': {'canonical_name': 'hushed', 'aliases': []}, + '1f626': {'canonical_name': 'frowning', 'aliases': []}, + # pained from https://beebom.com/emoji-meanings/ + '1f627': {'canonical_name': 'anguished', 'aliases': ['pained']}, + # surprise from https://emojipedia.org/face-with-open-mouth/ + '1f62e': {'canonical_name': 'open_mouth', 'aliases': ['surprise']}, + '1f632': {'canonical_name': 'astonished', 'aliases': []}, + '1f635': {'canonical_name': 'dizzy', 'aliases': []}, + # the alternates are from https://emojipedia.org/flushed-face/. shame + # doesn't work with the google emoji + '1f633': {'canonical_name': 'flushed', 'aliases': ['embarrassed', 'blushing']}, + '1f631': {'canonical_name': 'scream', 'aliases': []}, + # scared from https://emojipedia.org/fearful-face/, shock seemed like a + # nice addition + '1f628': {'canonical_name': 'fear', 'aliases': ['scared', 'shock']}, + '1f630': {'canonical_name': 'cold_sweat', 'aliases': []}, + '1f622': {'canonical_name': 'cry', 'aliases': []}, + # stressed from https://beebom.com/emoji-meanings/. The internet generally + # didn't seem to know what to make of the dissapointed_relieved name, and I + # got the sense it wasn't an emotion that was often used. Hence replaced it + # with exhausted. + '1f625': {'canonical_name': 'exhausted', 'aliases': ['disappointed_relieved', 'stressed']}, + '1f924': {'canonical_name': 'drooling', 'aliases': []}, + '1f62d': {'canonical_name': 'sob', 'aliases': []}, + '1f613': {'canonical_name': 'sweat', 'aliases': []}, + '1f62a': {'canonical_name': 'sleepy', 'aliases': []}, + '1f634': {'canonical_name': 'sleeping', 'aliases': []}, + '1f644': {'canonical_name': 'rolling_eyes', 'aliases': []}, + '1f914': {'canonical_name': 'thinking', 'aliases': []}, + '1f925': {'canonical_name': 'lying', 'aliases': []}, + # seems like best emoji for nervous/anxious + '1f62c': {'canonical_name': 'grimacing', 'aliases': ['nervous', 'anxious']}, + # zip_it from http://mashable.com/2015/10/23/ios-9-1-emoji-guide, + # lips_sealed from https://emojipedia.org/zipper-mouth-face/, rest seemed + # like reasonable additions + '1f910': {'canonical_name': 'silence', 'aliases': ['quiet', 'hush', 'zip_it', 'lips_are_sealed']}, + # queasy seemed like a natural addition + '1f922': {'canonical_name': 'nauseated', 'aliases': ['queasy']}, + '1f927': {'canonical_name': 'sneezing', 'aliases': []}, + # cant_talk from https://beebom.com/emoji-meanings/ + '1f637': {'canonical_name': 'cant_talk', 'aliases': ['mask']}, + # flu from http://mashable.com/2015/10/23/ios-9-1-emoji-guide, sick from + # https://emojipedia.org/face-with-thermometer/, face_with_thermometer so + # it shows up in typeahead (thermometer taken by Objects/82) + '1f912': {'canonical_name': 'sick', 'aliases': ['flu', 'face_with_thermometer']}, + # hurt and injured from https://beebom.com/emoji-meanings/. Chose hurt as + # primary since I think it can cover a wider set of things (e.g. emotional + # hurt) + '1f915': {'canonical_name': 'hurt', 'aliases': ['head_bandage', 'injured']}, + # devil from https://emojipedia.org/smiling-face-with-horns/, + # smiling_face_with_horns from gemoji/unicode + '1f608': {'canonical_name': 'smiling_devil', 'aliases': ['smiling_imp', 'smiling_face_with_horns']}, + # angry_devil from https://beebom.com/emoji-meanings/ + '1f47f': {'canonical_name': 'devil', 'aliases': ['imp', 'angry_devil']}, + '1f479': {'canonical_name': 'ogre', 'aliases': []}, + '1f47a': {'canonical_name': 'goblin', 'aliases': []}, + # pile_of_poo from gemoji/unicode + '1f4a9': {'canonical_name': 'poop', 'aliases': ['pile_of_poo']}, + # alternates seemed like reasonable additions + '1f47b': {'canonical_name': 'ghost', 'aliases': ['boo', 'spooky', 'haunted']}, + '1f480': {'canonical_name': 'skull', 'aliases': []}, + # alternates seemed like reasonable additions + '2620': {'canonical_name': 'skull_and_crossbones', 'aliases': ['pirate', 'death', 'hazard', 'toxic', 'poison']}, # ignorelongline + # ufo seemed like a natural addition + '1f47d': {'canonical_name': 'alien', 'aliases': ['ufo']}, + '1f47e': {'canonical_name': 'space_invader', 'aliases': []}, + '1f916': {'canonical_name': 'robot', 'aliases': []}, + # pumpkin seemed like a natural addition + '1f383': {'canonical_name': 'jack-o-lantern', 'aliases': ['pumpkin']}, + '1f63a': {'canonical_name': 'smiley_cat', 'aliases': []}, + '1f638': {'canonical_name': 'smile_cat', 'aliases': []}, + '1f639': {'canonical_name': 'joy_cat', 'aliases': []}, + '1f63b': {'canonical_name': 'heart_eyes_cat', 'aliases': []}, + # smug_cat to parallel People/31 + '1f63c': {'canonical_name': 'smirk_cat', 'aliases': ['smug_cat']}, + '1f63d': {'canonical_name': 'kissing_cat', 'aliases': []}, + # weary_cat from unicode/gemoji + '1f640': {'canonical_name': 'scream_cat', 'aliases': ['weary_cat']}, + '1f63f': {'canonical_name': 'crying_cat', 'aliases': []}, + # angry_cat to better parallel People/45 + '1f63e': {'canonical_name': 'angry_cat', 'aliases': ['pouting_cat']}, + '1f450': {'canonical_name': 'open_hands', 'aliases': []}, + # praise from + # https://emojipedia.org/person-raising-both-hands-in-celebration/ + '1f64c': {'canonical_name': 'raised_hands', 'aliases': ['praise']}, + # applause from https://emojipedia.org/clapping-hands-sign/ + '1f44f': {'canonical_name': 'clap', 'aliases': ['applause']}, + # welcome and thank_you from + # https://emojipedia.org/person-with-folded-hands/, namaste from indian + # culture + '1f64f': {'canonical_name': 'pray', 'aliases': ['welcome', 'thank_you', 'namaste']}, + # done_deal seems like a natural addition + '1f91d': {'canonical_name': 'handshake', 'aliases': ['done_deal']}, + '1f44d': {'canonical_name': '+1', 'aliases': ['thumbs_up']}, + '1f44e': {'canonical_name': '-1', 'aliases': ['thumbs_down']}, + # fist_bump from https://beebom.com/emoji-meanings/ + '1f44a': {'canonical_name': 'fist_bump', 'aliases': ['punch']}, + # used as power in social justice movements + '270a': {'canonical_name': 'fist', 'aliases': ['power']}, + '1f91b': {'canonical_name': 'left_fist', 'aliases': []}, + '1f91c': {'canonical_name': 'right_fist', 'aliases': []}, + '1f91e': {'canonical_name': 'fingers_crossed', 'aliases': []}, + # seems to be mostly used as peace on twitter + '270c': {'canonical_name': 'peace_sign', 'aliases': ['victory']}, + # https://emojipedia.org/sign-of-the-horns/ + '1f918': {'canonical_name': 'rock_on', 'aliases': ['sign_of_the_horns']}, + # got_it seems like a natural addition + '1f44c': {'canonical_name': 'ok', 'aliases': ['got_it']}, + '1f448': {'canonical_name': 'point_left', 'aliases': []}, + '1f449': {'canonical_name': 'point_right', 'aliases': []}, + # :this: is a way of emphasizing the previous message. point_up instead of + # point_up_2 so that point_up better matches the other point_*s + '1f446': {'canonical_name': 'point_up', 'aliases': ['this']}, + '1f447': {'canonical_name': 'point_down', 'aliases': []}, + # People/114 is point_up. These seemed better than naming it point_up_2, + # and point_of_information means it will come up in typeahead for 'point' + '261d': {'canonical_name': 'wait_one_second', 'aliases': ['point_of_information', 'asking_a_question']}, + '270b': {'canonical_name': 'hand', 'aliases': ['raised_hand']}, + # seems like best emoji for stop, raised_back_of_hand doesn't seem that + # useful + '1f91a': {'canonical_name': 'stop', 'aliases': []}, + # seems like best emoji for high_five, raised_hand_with_fingers_splayed + # doesn't seem that useful + '1f590': {'canonical_name': 'high_five', 'aliases': ['palm']}, + # http://mashable.com/2015/10/23/ios-9-1-emoji-guide + '1f596': {'canonical_name': 'spock', 'aliases': ['live_long_and_prosper']}, + # People/119 is a better 'hi', but 'hi' will never show up in the typeahead + # due to 'high_five' + '1f44b': {'canonical_name': 'wave', 'aliases': ['hello', 'hi']}, + '1f919': {'canonical_name': 'call_me', 'aliases': []}, + # flexed_biceps from gemoji/unicode, strong seemed like a good addition + '1f4aa': {'canonical_name': 'muscle', 'aliases': []}, + '1f595': {'canonical_name': 'middle_finger', 'aliases': []}, + '270d': {'canonical_name': 'writing', 'aliases': []}, + '1f933': {'canonical_name': 'selfie', 'aliases': []}, + # Couldn't figure out why iamcal chose nail_care. unicode uses nail_polish, + # gemoji uses both + '1f485': {'canonical_name': 'nail_polish', 'aliases': ['nail_care']}, + '1f48d': {'canonical_name': 'ring', 'aliases': []}, + '1f484': {'canonical_name': 'lipstick', 'aliases': []}, + # People/18 seems like a better kiss for most circumstances + '1f48b': {'canonical_name': 'lipstick_kiss', 'aliases': []}, + # mouth from gemoji/unicode + '1f444': {'canonical_name': 'lips', 'aliases': ['mouth']}, + '1f445': {'canonical_name': 'tongue', 'aliases': []}, + '1f442': {'canonical_name': 'ear', 'aliases': []}, + '1f443': {'canonical_name': 'nose', 'aliases': []}, + # seems a better feet than Nature/86 (paw_prints) + '1f463': {'canonical_name': 'footprints', 'aliases': ['feet']}, + '1f441': {'canonical_name': 'eye', 'aliases': []}, + # seemed the best emoji for looking + '1f440': {'canonical_name': 'eyes', 'aliases': ['looking']}, + '1f5e3': {'canonical_name': 'speaking_head', 'aliases': []}, + # shadow seems like a good addition + '1f464': {'canonical_name': 'silhouette', 'aliases': ['shadow']}, + # to parallel People/139 + '1f465': {'canonical_name': 'silhouettes', 'aliases': ['shadows']}, + '1f476': {'canonical_name': 'baby', 'aliases': []}, + '1f466': {'canonical_name': 'boy', 'aliases': []}, + '1f467': {'canonical_name': 'girl', 'aliases': []}, + '1f468': {'canonical_name': 'man', 'aliases': []}, + '1f469': {'canonical_name': 'woman', 'aliases': []}, + # It's used on twitter a bunch, either when showing off hair, or in a way + # where People/144 would substitute. It'd be nice if there were another + # emoji one could use for "good hair", but I think not a big loss to not + # have one for zulip, and not worth the eurocentrism. + # '1f471': {'canonical_name': 'X', 'aliases': ['person_with_blond_hair']}, + # Added elderly since I think some people prefer that term + '1f474': {'canonical_name': 'older_man', 'aliases': ['elderly_man']}, + # Added elderly since I think some people prefer that term + '1f475': {'canonical_name': 'older_woman', 'aliases': ['elderly_woman']}, + '1f472': {'canonical_name': 'gua_pi_mao', 'aliases': []}, + '1f473': {'canonical_name': 'turban', 'aliases': []}, + # police seems like a more polite term, and matches the unicode + '1f46e': {'canonical_name': 'police', 'aliases': ['cop']}, + '1f477': {'canonical_name': 'construction_worker', 'aliases': []}, + '1f482': {'canonical_name': 'guard', 'aliases': []}, + # detective from gemoji, sneaky from + # http://mashable.com/2015/10/23/ios-9-1-emoji-guide/, agent seems a + # reasonable addition + '1f575': {'canonical_name': 'detective', 'aliases': ['spy', 'sleuth', 'agent', 'sneaky']}, + # mrs_claus from https://emojipedia.org/mother-christmas/ + '1f936': {'canonical_name': 'mother_christmas', 'aliases': ['mrs_claus']}, + '1f385': {'canonical_name': 'santa', 'aliases': []}, + '1f478': {'canonical_name': 'princess', 'aliases': []}, + '1f934': {'canonical_name': 'prince', 'aliases': []}, + '1f470': {'canonical_name': 'bride', 'aliases': []}, + '1f935': {'canonical_name': 'tuxedo', 'aliases': []}, + '1f47c': {'canonical_name': 'angel', 'aliases': []}, + # expecting seems like a good addition + '1f930': {'canonical_name': 'pregnant', 'aliases': ['expecting']}, + '1f647': {'canonical_name': 'bow', 'aliases': []}, + # mostly used sassily. person_tipping_hand from + # https://emojipedia.org/information-desk-person/ + '1f481': {'canonical_name': 'information_desk_person', 'aliases': ['person_tipping_hand']}, + # no_signal to parallel People/207. Nope seems like a reasonable addition + '1f645': {'canonical_name': 'no_signal', 'aliases': ['nope']}, + '1f646': {'canonical_name': 'ok_signal', 'aliases': []}, + # pick_me seems like a good addition + '1f64b': {'canonical_name': 'raising_hand', 'aliases': ['pick_me']}, + '1f926': {'canonical_name': 'face_palm', 'aliases': []}, + '1f937': {'canonical_name': 'shrug', 'aliases': []}, + '1f64e': {'canonical_name': 'person_pouting', 'aliases': []}, + '1f64d': {'canonical_name': 'person_frowning', 'aliases': []}, + '1f487': {'canonical_name': 'haircut', 'aliases': []}, + '1f486': {'canonical_name': 'massage', 'aliases': []}, + # hover seems like a reasonable addition + '1f574': {'canonical_name': 'levitating', 'aliases': ['hover']}, + '1f483': {'canonical_name': 'dancer', 'aliases': []}, + '1f57a': {'canonical_name': 'dancing', 'aliases': ['disco']}, + '1f46f': {'canonical_name': 'dancers', 'aliases': []}, + # pedestrian seems like reasonable addition + '1f6b6': {'canonical_name': 'walking', 'aliases': ['pedestrian']}, + '1f3c3': {'canonical_name': 'running', 'aliases': ['runner']}, + '1f46b': {'canonical_name': 'man_and_woman_holding_hands', 'aliases': ['man_and_woman_couple']}, + # to parallel People/234 + '1f46d': {'canonical_name': 'two_women_holding_hands', 'aliases': ['women_couple']}, + # to parallel People/234 + '1f46c': {'canonical_name': 'two_men_holding_hands', 'aliases': ['men_couple']}, + # no need for man-woman-boy, since we aren't including the other family + # combos + '1f46a': {'canonical_name': 'family', 'aliases': []}, + '1f45a': {'canonical_name': 'clothing', 'aliases': []}, + '1f455': {'canonical_name': 'shirt', 'aliases': ['tshirt']}, + # denim seems like a good addition + '1f456': {'canonical_name': 'jeans', 'aliases': ['denim']}, + # tie is shorter, and a bit more general + '1f454': {'canonical_name': 'tie', 'aliases': []}, + '1f457': {'canonical_name': 'dress', 'aliases': []}, + '1f459': {'canonical_name': 'bikini', 'aliases': []}, + '1f458': {'canonical_name': 'kimono', 'aliases': []}, + # I feel like this is always used in the plural + '1f460': {'canonical_name': 'high_heels', 'aliases': []}, + # flip_flops seems like a reasonable addition + '1f461': {'canonical_name': 'sandal', 'aliases': ['flip_flops']}, + '1f462': {'canonical_name': 'boot', 'aliases': []}, + '1f45e': {'canonical_name': 'shoe', 'aliases': []}, + # running_shoe is from gemoji, sneaker seems like a reasonable addition + '1f45f': {'canonical_name': 'athletic_shoe', 'aliases': ['sneaker', 'running_shoe']}, + '1f452': {'canonical_name': 'hat', 'aliases': []}, + '1f3a9': {'canonical_name': 'top_hat', 'aliases': []}, + # graduate seems like a better word for this + '1f393': {'canonical_name': 'graduate', 'aliases': ['mortar_board']}, + # king and queen seem like good additions + '1f451': {'canonical_name': 'crown', 'aliases': ['queen', 'king']}, + # safety and invincibility inspired by + # http://mashable.com/2015/10/23/ios-9-1-emoji-guide. hard_hat and + # rescue_worker seem like good additions + '26d1': {'canonical_name': 'helmet', 'aliases': ['hard_hat', 'rescue_worker', 'safety_first', 'invincible']}, # ignorelongline + # backpack from gemoji, dominates satchel on google trends + '1f392': {'canonical_name': 'backpack', 'aliases': ['satchel']}, + '1f45d': {'canonical_name': 'pouch', 'aliases': []}, + '1f45b': {'canonical_name': 'purse', 'aliases': []}, + '1f45c': {'canonical_name': 'handbag', 'aliases': []}, + '1f4bc': {'canonical_name': 'briefcase', 'aliases': []}, + # glasses seems a more common term than eyeglasses, spectacles seems like a + # reasonable synonym to add + '1f453': {'canonical_name': 'glasses', 'aliases': ['spectacles']}, + '1f576': {'canonical_name': 'dark_sunglasses', 'aliases': []}, + '1f302': {'canonical_name': 'closed_umbrella', 'aliases': []}, + '2602': {'canonical_name': 'umbrella', 'aliases': []}, + # Some animals have a unicode codepoint "", some have a codepoint + # " face", and some have both. If an animal has just a single + # codepoint, we call it , regardless of what the codepoint is. If + # an animal has both, we call the "" codepoint , and come + # up with something else useful-seeming for the " face" codepoint. + # The reason we chose " face" for the non-standard name (instead of + # giving "" the non-standard name, as iamcal does) is because the + # apple emoji for the ""s are too realistic. E.g. Apple's Nature/76 + # is less plausibly a puppy than this one. + '1f436': {'canonical_name': 'puppy', 'aliases': []}, + '1f431': {'canonical_name': 'kitten', 'aliases': []}, + '1f42d': {'canonical_name': 'dormouse', 'aliases': []}, + '1f439': {'canonical_name': 'hamster', 'aliases': []}, + '1f430': {'canonical_name': 'bunny', 'aliases': []}, + '1f98a': {'canonical_name': 'fox', 'aliases': []}, + '1f43b': {'canonical_name': 'bear', 'aliases': []}, + '1f43c': {'canonical_name': 'panda', 'aliases': []}, + '1f428': {'canonical_name': 'koala', 'aliases': []}, + '1f42f': {'canonical_name': 'tiger_cub', 'aliases': []}, + '1f981': {'canonical_name': 'lion', 'aliases': []}, + '1f42e': {'canonical_name': 'calf', 'aliases': []}, + '1f437': {'canonical_name': 'piglet', 'aliases': []}, + '1f43d': {'canonical_name': 'pig_nose', 'aliases': []}, + '1f438': {'canonical_name': 'frog', 'aliases': []}, + '1f435': {'canonical_name': 'monkey_face', 'aliases': []}, + '1f648': {'canonical_name': 'see_no_evil', 'aliases': []}, + '1f649': {'canonical_name': 'hear_no_evil', 'aliases': []}, + '1f64a': {'canonical_name': 'speak_no_evil', 'aliases': []}, + '1f412': {'canonical_name': 'monkey', 'aliases': []}, + # cluck seemed like a good addition + '1f414': {'canonical_name': 'chicken', 'aliases': ['cluck']}, + '1f427': {'canonical_name': 'penguin', 'aliases': []}, + '1f426': {'canonical_name': 'bird', 'aliases': []}, + '1f424': {'canonical_name': 'chick', 'aliases': ['baby_chick']}, + '1f423': {'canonical_name': 'hatching', 'aliases': ['hatching_chick']}, + # http://www.iemoji.com/view/emoji/668/animals-nature/front-facing-baby-chick + '1f425': {'canonical_name': 'new_baby', 'aliases': []}, + '1f986': {'canonical_name': 'duck', 'aliases': []}, + '1f985': {'canonical_name': 'eagle', 'aliases': []}, + '1f989': {'canonical_name': 'owl', 'aliases': []}, + '1f987': {'canonical_name': 'bat', 'aliases': []}, + '1f43a': {'canonical_name': 'wolf', 'aliases': []}, + '1f417': {'canonical_name': 'boar', 'aliases': []}, + '1f434': {'canonical_name': 'pony', 'aliases': []}, + '1f984': {'canonical_name': 'unicorn', 'aliases': []}, + # buzz seemed like a reasonable addition + '1f41d': {'canonical_name': 'bee', 'aliases': ['buzz', 'honeybee']}, + # caterpillar seemed like a reasonable addition + '1f41b': {'canonical_name': 'bug', 'aliases': ['caterpillar']}, + '1f98b': {'canonical_name': 'butterfly', 'aliases': []}, + '1f40c': {'canonical_name': 'snail', 'aliases': []}, + # spiral_shell from unicode/gemoji, the others seemed like reasonable + # additions + '1f41a': {'canonical_name': 'shell', 'aliases': ['seashell', 'conch', 'spiral_shell']}, + # unicode/gemoji have lady_beetle; hopefully with ladybug we get both the + # people that prefer lady_beetle (with beetle) and ladybug. There is also + # ladybird, but seems a bit much for this to complete for bird. + '1f41e': {'canonical_name': 'beetle', 'aliases': ['ladybug']}, + '1f41c': {'canonical_name': 'ant', 'aliases': []}, + '1f577': {'canonical_name': 'spider', 'aliases': []}, + '1f578': {'canonical_name': 'web', 'aliases': ['spider_web']}, + # tortoise seemed like a reasonable addition + '1f422': {'canonical_name': 'turtle', 'aliases': ['tortoise']}, + # put in a few animal sounds, including this one + '1f40d': {'canonical_name': 'snake', 'aliases': ['hiss']}, + '1f98e': {'canonical_name': 'lizard', 'aliases': ['gecko']}, + '1f982': {'canonical_name': 'scorpion', 'aliases': []}, + '1f980': {'canonical_name': 'crab', 'aliases': []}, + '1f991': {'canonical_name': 'squid', 'aliases': []}, + '1f419': {'canonical_name': 'octopus', 'aliases': []}, + '1f990': {'canonical_name': 'shrimp', 'aliases': []}, + '1f420': {'canonical_name': 'tropical_fish', 'aliases': []}, + '1f41f': {'canonical_name': 'fish', 'aliases': []}, + '1f421': {'canonical_name': 'blowfish', 'aliases': []}, + '1f42c': {'canonical_name': 'dolphin', 'aliases': ['flipper']}, + '1f988': {'canonical_name': 'shark', 'aliases': []}, + '1f433': {'canonical_name': 'whale', 'aliases': []}, + # https://emojipedia.org/whale/ + '1f40b': {'canonical_name': 'humpback_whale', 'aliases': []}, + '1f40a': {'canonical_name': 'crocodile', 'aliases': []}, + '1f406': {'canonical_name': 'leopard', 'aliases': []}, + '1f405': {'canonical_name': 'tiger', 'aliases': []}, + '1f403': {'canonical_name': 'water_buffalo', 'aliases': []}, + '1f402': {'canonical_name': 'ox', 'aliases': ['bull']}, + '1f404': {'canonical_name': 'cow', 'aliases': []}, + '1f98c': {'canonical_name': 'deer', 'aliases': []}, + # https://emojipedia.org/dromedary-camel/ + '1f42a': {'canonical_name': 'arabian_camel', 'aliases': []}, + '1f42b': {'canonical_name': 'camel', 'aliases': []}, + '1f418': {'canonical_name': 'elephant', 'aliases': []}, + '1f98f': {'canonical_name': 'rhinoceros', 'aliases': []}, + '1f98d': {'canonical_name': 'gorilla', 'aliases': []}, + '1f40e': {'canonical_name': 'horse', 'aliases': []}, + '1f416': {'canonical_name': 'pig', 'aliases': ['oink']}, + '1f410': {'canonical_name': 'goat', 'aliases': []}, + '1f40f': {'canonical_name': 'ram', 'aliases': []}, + '1f411': {'canonical_name': 'sheep', 'aliases': ['baa']}, + '1f415': {'canonical_name': 'dog', 'aliases': ['woof']}, + '1f429': {'canonical_name': 'poodle', 'aliases': []}, + '1f408': {'canonical_name': 'cat', 'aliases': ['meow']}, + # alarm seemed like a fun addition + '1f413': {'canonical_name': 'rooster', 'aliases': ['alarm', 'cock-a-doodle-doo']}, + '1f983': {'canonical_name': 'turkey', 'aliases': []}, + '1f54a': {'canonical_name': 'dove', 'aliases': ['dove_of_peace']}, + '1f407': {'canonical_name': 'rabbit', 'aliases': []}, + '1f401': {'canonical_name': 'mouse', 'aliases': []}, + '1f400': {'canonical_name': 'rat', 'aliases': []}, + '1f43f': {'canonical_name': 'chipmunk', 'aliases': []}, + # paws seemed like reasonable addition. Put feet at People/135 + '1f43e': {'canonical_name': 'paw_prints', 'aliases': ['paws']}, + '1f409': {'canonical_name': 'dragon', 'aliases': []}, + '1f432': {'canonical_name': 'dragon_face', 'aliases': []}, + '1f335': {'canonical_name': 'cactus', 'aliases': []}, + '1f384': {'canonical_name': 'holiday_tree', 'aliases': []}, + '1f332': {'canonical_name': 'evergreen_tree', 'aliases': []}, + '1f333': {'canonical_name': 'tree', 'aliases': ['deciduous_tree']}, + '1f334': {'canonical_name': 'palm_tree', 'aliases': []}, + # sprout seemed like a reasonable addition + '1f331': {'canonical_name': 'seedling', 'aliases': ['sprout']}, + # seemed like the best emoji for plant + '1f33f': {'canonical_name': 'herb', 'aliases': ['plant']}, + # clover seemed like a reasonable addition + '2618': {'canonical_name': 'shamrock', 'aliases': ['clover']}, + # lucky seems more useful + '1f340': {'canonical_name': 'lucky', 'aliases': ['four_leaf_clover']}, + '1f38d': {'canonical_name': 'bamboo', 'aliases': []}, + # https://emojipedia.org/tanabata-tree/ + '1f38b': {'canonical_name': 'wish_tree', 'aliases': ['tanabata_tree']}, + # seemed like good additions. Used fall instead of autumn, since don't have + # the rest of the seasons, and could imagine someone using both meanings of + # fall. + '1f343': {'canonical_name': 'leaves', 'aliases': ['wind', 'fall']}, + '1f342': {'canonical_name': 'fallen_leaf', 'aliases': []}, + '1f341': {'canonical_name': 'maple_leaf', 'aliases': []}, + '1f344': {'canonical_name': 'mushroom', 'aliases': []}, + # harvest seems more useful + '1f33e': {'canonical_name': 'harvest', 'aliases': ['ear_of_rice']}, + '1f490': {'canonical_name': 'bouquet', 'aliases': []}, + # seems like the best emoji for flower + '1f337': {'canonical_name': 'tulip', 'aliases': ['flower']}, + '1f339': {'canonical_name': 'rose', 'aliases': []}, + # crushed suggest by a user + '1f940': {'canonical_name': 'wilted_flower', 'aliases': ['crushed']}, + '1f33b': {'canonical_name': 'sunflower', 'aliases': []}, + '1f33c': {'canonical_name': 'blossom', 'aliases': []}, + '1f338': {'canonical_name': 'cherry_blossom', 'aliases': []}, + '1f33a': {'canonical_name': 'hibiscus', 'aliases': []}, + '1f30e': {'canonical_name': 'earth_americas', 'aliases': []}, + '1f30d': {'canonical_name': 'earth_africa', 'aliases': []}, + '1f30f': {'canonical_name': 'earth_asia', 'aliases': []}, + '1f315': {'canonical_name': 'full_moon', 'aliases': []}, + # too many useless moons. Don't seem to get much use on twitter, and clog + # up typeahead for moon. + # '1f316': {'canonical_name': 'X', 'aliases': ['waning_crescent_moon']}, + # '1f317': {'canonical_name': 'X', 'aliases': ['last_quarter_moon']}, + # '1f318': {'canonical_name': 'X', 'aliases': ['waning_crescent_moon']}, + '1f311': {'canonical_name': 'new_moon', 'aliases': []}, + # '1f312': {'canonical_name': 'X', 'aliases': ['waxing_crescent_moon']}, + # '1f313': {'canonical_name': 'X', 'aliases': ['first_quarter_moon']}, + '1f314': {'canonical_name': 'waxing_moon', 'aliases': []}, + '1f31a': {'canonical_name': 'new_moon_face', 'aliases': []}, + '1f31d': {'canonical_name': 'moon_face', 'aliases': []}, + '1f31e': {'canonical_name': 'sun_face', 'aliases': []}, + # goodnight seems way more useful + '1f31b': {'canonical_name': 'goodnight', 'aliases': []}, + # '1f31c': {'canonical_name': 'X', 'aliases': ['last_quarter_moon_with_face']}, + # seems like the best emoji for moon + '1f319': {'canonical_name': 'moon', 'aliases': []}, + # dizzy taken by People/54, had to come up with something else + '1f4ab': {'canonical_name': 'seeing_stars', 'aliases': []}, + '2b50': {'canonical_name': 'star', 'aliases': []}, + # glowing_star from gemoji/unicode + '1f31f': {'canonical_name': 'glowing_star', 'aliases': []}, + # glamour seems like a reasonable addition + '2728': {'canonical_name': 'sparkles', 'aliases': ['glamour']}, + # high_voltage from gemoji/unicode + '26a1': {'canonical_name': 'high_voltage', 'aliases': ['zap']}, + # https://emojipedia.org/fire/ + '1f525': {'canonical_name': 'fire', 'aliases': ['lit', 'hot', 'flame']}, + # explosion and crash seem like reasonable additions + '1f4a5': {'canonical_name': 'boom', 'aliases': ['explosion', 'crash', 'collision']}, + # meteor seems like a reasonable addition + '2604': {'canonical_name': 'comet', 'aliases': ['meteor']}, + '2600': {'canonical_name': 'sunny', 'aliases': []}, + '1f324': {'canonical_name': 'mostly_sunny', 'aliases': []}, + # partly_cloudy for the glass half empty people + '26c5': {'canonical_name': 'partly_sunny', 'aliases': ['partly_cloudy']}, + '1f325': {'canonical_name': 'cloudy', 'aliases': []}, + # sunshowers seems like a more fun term + '1f326': {'canonical_name': 'sunshowers', 'aliases': ['sun_and_rain', 'partly_sunny_with_rain']}, + # pride and lgbtq seem like reasonable additions + '1f308': {'canonical_name': 'rainbow', 'aliases': ['pride', 'lgbtq']}, + # overcast seems like a good addition + '2601': {'canonical_name': 'cloud', 'aliases': ['overcast']}, + # suggested by user typing these into their typeahead. + '1f327': {'canonical_name': 'rainy', 'aliases': ['soaked', 'drenched']}, + # thunderstorm seems better for this emoji, and thunder_and_rain more + # evocative than thunder_cloud_and_rain + '26c8': {'canonical_name': 'thunderstorm', 'aliases': ['thunder_and_rain']}, + # lightning_storm seemed better than lightning_cloud + '1f329': {'canonical_name': 'lightning', 'aliases': ['lightning_storm']}, + # snowy to parallel sunny, cloudy, etc; snowstorm seems like a good + # addition + '1f328': {'canonical_name': 'snowy', 'aliases': ['snowstorm']}, + '2603': {'canonical_name': 'snowman', 'aliases': []}, + # don't need two snowmen. frosty is nice because it's a weather (primary + # benefit) and also a snowman (one that suffered from not having snow, in + # fact) + '26c4': {'canonical_name': 'frosty', 'aliases': []}, + '2744': {'canonical_name': 'snowflake', 'aliases': []}, + # the internet didn't seem to have a good use for this emoji. windy is a + # good weather that is otherwise not represented. mother_nature from + # https://emojipedia.org/wind-blowing-face/ + '1f32c': {'canonical_name': 'windy', 'aliases': ['mother_nature']}, + '1f4a8': {'canonical_name': 'dash', 'aliases': []}, + # tornado_cloud comes from the unicode, but e.g. gemoji drops the cloud + '1f32a': {'canonical_name': 'tornado', 'aliases': []}, + # hazy seemed like a good addition + '1f32b': {'canonical_name': 'fog', 'aliases': ['hazy']}, + '1f30a': {'canonical_name': 'ocean', 'aliases': []}, + # drop seems better than droplet, since could be used for its other + # meanings. water drop partly so that it shows up in typeahead for water + '1f4a7': {'canonical_name': 'drop', 'aliases': ['water_drop']}, + '1f4a6': {'canonical_name': 'sweat_drops', 'aliases': []}, + '2614': {'canonical_name': 'umbrella_with_rain', 'aliases': []}, + '1f34f': {'canonical_name': 'green_apple', 'aliases': []}, + '1f34e': {'canonical_name': 'apple', 'aliases': []}, + '1f350': {'canonical_name': 'pear', 'aliases': []}, + # An argument for not calling this orange is to save the color for a color + # swatch, but we can deal with that when it happens. Mandarin is from + # https://emojipedia.org/tangerine/, also like that it has a second meaning + '1f34a': {'canonical_name': 'orange', 'aliases': ['tangerine', 'mandarin']}, + '1f34b': {'canonical_name': 'lemon', 'aliases': []}, + '1f34c': {'canonical_name': 'banana', 'aliases': []}, + '1f349': {'canonical_name': 'watermelon', 'aliases': []}, + '1f347': {'canonical_name': 'grapes', 'aliases': []}, + '1f353': {'canonical_name': 'strawberry', 'aliases': []}, + '1f348': {'canonical_name': 'melon', 'aliases': []}, + '1f352': {'canonical_name': 'cherries', 'aliases': []}, + '1f351': {'canonical_name': 'peach', 'aliases': []}, + '1f34d': {'canonical_name': 'pineapple', 'aliases': []}, + '1f95d': {'canonical_name': 'kiwi', 'aliases': []}, + '1f951': {'canonical_name': 'avocado', 'aliases': []}, + '1f345': {'canonical_name': 'tomato', 'aliases': []}, + '1f346': {'canonical_name': 'eggplant', 'aliases': []}, + '1f952': {'canonical_name': 'cucumber', 'aliases': []}, + '1f955': {'canonical_name': 'carrot', 'aliases': []}, + # maize is from unicode + '1f33d': {'canonical_name': 'corn', 'aliases': ['maize']}, + # chili_pepper seems like a reasonable addition + '1f336': {'canonical_name': 'hot_pepper', 'aliases': ['chili_pepper']}, + '1f954': {'canonical_name': 'potato', 'aliases': []}, + # yam seems better than sweet_potato, since we already have a potato (not a + # strong argument, but is better on the typeahead not to have emoji that + # share long prefixes) + '1f360': {'canonical_name': 'yam', 'aliases': ['sweet_potato']}, + '1f330': {'canonical_name': 'chestnut', 'aliases': []}, + '1f95c': {'canonical_name': 'peanuts', 'aliases': []}, + '1f36f': {'canonical_name': 'honey', 'aliases': []}, + '1f950': {'canonical_name': 'croissant', 'aliases': []}, + '1f35e': {'canonical_name': 'bread', 'aliases': []}, + '1f956': {'canonical_name': 'baguette', 'aliases': []}, + '1f9c0': {'canonical_name': 'cheese', 'aliases': []}, + '1f95a': {'canonical_name': 'egg', 'aliases': []}, + # already have an egg in Foods/31, though I guess wouldn't be a big deal to + # add it here. + '1f373': {'canonical_name': 'cooking', 'aliases': []}, + '1f953': {'canonical_name': 'bacon', 'aliases': []}, + # there's no lunch and dinner, which is a small negative against adding + # breakfast + '1f95e': {'canonical_name': 'pancakes', 'aliases': ['breakfast']}, + # There is already shrimp in Nature/51, and tempura seems like a better + # description + '1f364': {'canonical_name': 'tempura', 'aliases': []}, + # drumstick seems like a better description + '1f357': {'canonical_name': 'drumstick', 'aliases': ['poultry']}, + '1f356': {'canonical_name': 'meat', 'aliases': []}, + '1f355': {'canonical_name': 'pizza', 'aliases': []}, + '1f32d': {'canonical_name': 'hotdog', 'aliases': []}, + '1f354': {'canonical_name': 'hamburger', 'aliases': []}, + '1f35f': {'canonical_name': 'fries', 'aliases': []}, + # https://emojipedia.org/stuffed-flatbread/ + '1f959': {'canonical_name': 'doner_kebab', 'aliases': ['shawarma', 'souvlaki', 'stuffed_flatbread']}, + '1f32e': {'canonical_name': 'taco', 'aliases': []}, + '1f32f': {'canonical_name': 'burrito', 'aliases': []}, + '1f957': {'canonical_name': 'salad', 'aliases': []}, + # I think Foods/49 is a better :food: + '1f958': {'canonical_name': 'paella', 'aliases': []}, + '1f35d': {'canonical_name': 'spaghetti', 'aliases': []}, + # seems like the best noodles? maybe this should be Foods/47? Noodles seem + # like a bigger thing in east asia than in europe, so going with that. + '1f35c': {'canonical_name': 'ramen', 'aliases': ['noodles']}, + # seems like the best :food:. Also a reasonable :soup:, though the google + # one is indeed more a pot of food (the unicode) than a soup + '1f372': {'canonical_name': 'food', 'aliases': ['soup', 'stew']}, + # naruto is actual name, and I think don't need this to autocomplete for + # "fish" + '1f365': {'canonical_name': 'naruto', 'aliases': []}, + '1f363': {'canonical_name': 'sushi', 'aliases': []}, + '1f371': {'canonical_name': 'bento', 'aliases': []}, + '1f35b': {'canonical_name': 'curry', 'aliases': []}, + '1f35a': {'canonical_name': 'rice', 'aliases': []}, + # onigiri is actual name, and I think don't need this to typeahead complete + # for "rice" + '1f359': {'canonical_name': 'onigiri', 'aliases': []}, + # leaving rice_cracker in, so that we have something for cracker + '1f358': {'canonical_name': 'senbei', 'aliases': ['rice_cracker']}, + '1f362': {'canonical_name': 'oden', 'aliases': []}, + '1f361': {'canonical_name': 'dango', 'aliases': []}, + '1f367': {'canonical_name': 'shaved_ice', 'aliases': []}, + # seemed like the best emoji for gelato + '1f368': {'canonical_name': 'ice_cream', 'aliases': ['gelato']}, + # already have ice_cream in Foods/60, and soft_serve seems like a + # potentially fun emoji to have in conjunction with ice_cream. Put in + # soft_ice_cream so it typeahead completes on ice_cream as well. + '1f366': {'canonical_name': 'soft_serve', 'aliases': ['soft_ice_cream']}, + '1f370': {'canonical_name': 'cake', 'aliases': []}, + '1f382': {'canonical_name': 'birthday', 'aliases': []}, + # flan seems like a reasonable addition + '1f36e': {'canonical_name': 'custard', 'aliases': ['flan']}, + '1f36d': {'canonical_name': 'lollipop', 'aliases': []}, + '1f36c': {'canonical_name': 'candy', 'aliases': []}, + '1f36b': {'canonical_name': 'chocolate', 'aliases': []}, + '1f37f': {'canonical_name': 'popcorn', 'aliases': []}, + # donut dominates doughnut on + # https://trends.google.com/trends/explore?q=doughnut,donut + '1f369': {'canonical_name': 'donut', 'aliases': ['doughnut']}, + '1f36a': {'canonical_name': 'cookie', 'aliases': []}, + '1f95b': {'canonical_name': 'milk', 'aliases': ['glass_of_milk']}, + '1f37c': {'canonical_name': 'baby_bottle', 'aliases': []}, + '2615': {'canonical_name': 'coffee', 'aliases': []}, + '1f375': {'canonical_name': 'tea', 'aliases': []}, + '1f376': {'canonical_name': 'sake', 'aliases': []}, + '1f37a': {'canonical_name': 'beer', 'aliases': []}, + '1f37b': {'canonical_name': 'beers', 'aliases': []}, + '1f942': {'canonical_name': 'clink', 'aliases': ['toast']}, + '1f377': {'canonical_name': 'wine', 'aliases': []}, + # tumbler means something different in india, and don't want to use + # shot_glass given our policy of using school-age-appropriate terms + '1f943': {'canonical_name': 'small_glass', 'aliases': []}, + '1f378': {'canonical_name': 'cocktail', 'aliases': []}, + '1f379': {'canonical_name': 'tropical_drink', 'aliases': []}, + '1f37e': {'canonical_name': 'champagne', 'aliases': []}, + '1f944': {'canonical_name': 'spoon', 'aliases': []}, + # Added eating_utensils so this would show up in typeahead for eat. + '1f374': {'canonical_name': 'fork_and_knife', 'aliases': ['eating_utensils']}, + # Seems like the best emoji for hungry and meal. fork_and_knife_and_plate + # is from gemoji/unicode, and I think is better than the shorter iamcal + # version in this case. The rest just seemed like good additions. + '1f37d': {'canonical_name': 'hungry', 'aliases': ['meal', 'table_setting', 'fork_and_knife_with_plate', 'lets_eat']}, # ignorelongline + # most people interested in this sport call it football + '26bd': {'canonical_name': 'football', 'aliases': ['soccer']}, + '1f3c0': {'canonical_name': 'basketball', 'aliases': []}, + # to distinguish from Activity/1, but is also the unicode name + '1f3c8': {'canonical_name': 'american_football', 'aliases': []}, + '26be': {'canonical_name': 'baseball', 'aliases': []}, + '1f3be': {'canonical_name': 'tennis', 'aliases': []}, + '1f3d0': {'canonical_name': 'volleyball', 'aliases': []}, + '1f3c9': {'canonical_name': 'rugby', 'aliases': []}, + # https://emojipedia.org/billiards/ suggests this is actually used for + # billiards, not for "unlucky" or "losing" or some other connotation of + # 8ball. The unicode name is billiards. + '1f3b1': {'canonical_name': 'billiards', 'aliases': ['pool', '8_ball']}, + # ping pong is the unicode name, and seems slightly more popular on + # https://trends.google.com/trends/explore?q=table%20tennis,ping%20pong + '1f3d3': {'canonical_name': 'ping_pong', 'aliases': ['table_tennis']}, + '1f3f8': {'canonical_name': 'badminton', 'aliases': []}, + # gooooooooal seems more useful of a name, though arguably this isn't the + # best emoji for it + '1f945': {'canonical_name': 'gooooooooal', 'aliases': ['goal']}, + '1f3d2': {'canonical_name': 'ice_hockey', 'aliases': []}, + '1f3d1': {'canonical_name': 'field_hockey', 'aliases': []}, + # would say bat, but taken by Nature/30 + '1f3cf': {'canonical_name': 'cricket', 'aliases': ['cricket_bat']}, + # hole_in_one seems like a more useful name to have. Sent golf to + # Activity/39 + '26f3': {'canonical_name': 'hole_in_one', 'aliases': []}, + # archery seems like a reasonable addition + '1f3f9': {'canonical_name': 'bow_and_arrow', 'aliases': ['archery']}, + '1f3a3': {'canonical_name': 'fishing', 'aliases': []}, + '1f94a': {'canonical_name': 'boxing_glove', 'aliases': []}, + # keikogi and dogi are the actual names for this, I believe. black_belt is + # I think a more useful name here + '1f94b': {'canonical_name': 'black_belt', 'aliases': ['keikogi', 'dogi', 'martial_arts']}, + '26f8': {'canonical_name': 'ice_skate', 'aliases': []}, + '1f3bf': {'canonical_name': 'ski', 'aliases': []}, + '26f7': {'canonical_name': 'skier', 'aliases': []}, + '1f3c2': {'canonical_name': 'snowboarder', 'aliases': []}, + # lift is both what lifters call it, and potentially can be used more + # generally than weight_lift. The others seemed like good additions. + '1f3cb': {'canonical_name': 'lift', 'aliases': ['work_out', 'weight_lift', 'gym']}, + # The decisions on tenses here and in the rest of the sports section are + # mostly from gut feel. The unicode itself is all over the place. + '1f93a': {'canonical_name': 'fencing', 'aliases': []}, + '1f93c': {'canonical_name': 'wrestling', 'aliases': []}, + # seemed like reasonable additions + '1f938': {'canonical_name': 'cartwheel', 'aliases': ['acrobatics', 'gymnastics', 'tumbling']}, + # seemed the best emoji for sports + '26f9': {'canonical_name': 'ball', 'aliases': ['sports']}, + '1f93e': {'canonical_name': 'handball', 'aliases': []}, + '1f3cc': {'canonical_name': 'golf', 'aliases': []}, + '1f3c4': {'canonical_name': 'surf', 'aliases': []}, + '1f3ca': {'canonical_name': 'swim', 'aliases': []}, + '1f93d': {'canonical_name': 'water_polo', 'aliases': []}, + # rest seem like reasonable additions + '1f6a3': {'canonical_name': 'rowboat', 'aliases': ['crew', 'sculling', 'rowing']}, + # horse_riding seems like a reasonable addition + '1f3c7': {'canonical_name': 'horse_racing', 'aliases': ['horse_riding']}, + # at least in the US: this = cyclist, Activity/53 = mountain biker, and + # motorcyclist = biker. Mainly from googling around and personal + # experience. E.g. http://grammarist.com/usage/cyclist-biker/ for cyclist + # and biker, + # https://www.theguardian.com/lifeandstyle/2010/oct/24/bike-snobs-guide-cycling-tribes + # for mountain biker (I've never heard the term "mountain cyclist", and + # they are the only group on that page that gets "biker" instead of + # "cyclist") + '1f6b4': {'canonical_name': 'cyclist', 'aliases': []}, + # see Activity/51 + '1f6b5': {'canonical_name': 'mountain_biker', 'aliases': []}, + '1f3bd': {'canonical_name': 'running_shirt', 'aliases': []}, + # I feel like people call sports medals "medals", and military medals + # "military medals". Also see Activity/56 + '1f3c5': {'canonical_name': 'medal', 'aliases': []}, + # See Activity/55. military_medal is the gemoji/unicode + '1f396': {'canonical_name': 'military_medal', 'aliases': []}, + # gold and number_one seem like good additions + '1f947': {'canonical_name': 'first_place', 'aliases': ['gold', 'number_one']}, + # to parallel Activity/57 + '1f948': {'canonical_name': 'second_place', 'aliases': ['silver']}, + # to parallel Activity/57 + '1f949': {'canonical_name': 'third_place', 'aliases': ['bronze']}, + # seemed the best emoji for winner + '1f3c6': {'canonical_name': 'trophy', 'aliases': ['winner']}, + '1f3f5': {'canonical_name': 'rosette', 'aliases': []}, + '1f397': {'canonical_name': 'reminder_ribbon', 'aliases': []}, + # don't need ticket and admission_ticket (see Activity/64), so made one of + # them :pass:. + '1f3ab': {'canonical_name': 'pass', 'aliases': []}, + # see Activity/63 + '1f39f': {'canonical_name': 'ticket', 'aliases': []}, + '1f3aa': {'canonical_name': 'circus', 'aliases': []}, + '1f939': {'canonical_name': 'juggling', 'aliases': []}, + # rest seem like good additions + '1f3ad': {'canonical_name': 'performing_arts', 'aliases': ['drama', 'theater']}, + # rest seem like good additions + '1f3a8': {'canonical_name': 'art', 'aliases': ['palette', 'painting']}, + # action seems more useful than clapper, and clapper doesn't seem like that + # common of a term + '1f3ac': {'canonical_name': 'action', 'aliases': []}, + # seem like good additions + '1f3a4': {'canonical_name': 'microphone', 'aliases': ['mike', 'mic']}, + '1f3a7': {'canonical_name': 'headphones', 'aliases': []}, + '1f3bc': {'canonical_name': 'musical_score', 'aliases': []}, + # piano seems more useful than musical_keyboard + '1f3b9': {'canonical_name': 'piano', 'aliases': ['musical_keyboard']}, + '1f941': {'canonical_name': 'drum', 'aliases': []}, + '1f3b7': {'canonical_name': 'saxophone', 'aliases': []}, + '1f3ba': {'canonical_name': 'trumpet', 'aliases': []}, + '1f3b8': {'canonical_name': 'guitar', 'aliases': []}, + '1f3bb': {'canonical_name': 'violin', 'aliases': []}, + # dice seems more useful + '1f3b2': {'canonical_name': 'dice', 'aliases': ['die']}, + # direct_hit from gemoji/unicode, and seems more useful. bulls_eye seemed + # like a reasonable addition + '1f3af': {'canonical_name': 'direct_hit', 'aliases': ['darts', 'bulls_eye']}, + # strike seemed more useful than bowling + '1f3b3': {'canonical_name': 'strike', 'aliases': ['bowling']}, + '1f3ae': {'canonical_name': 'video_game', 'aliases': []}, + # gambling seemed more useful than slot_machine + '1f3b0': {'canonical_name': 'slot_machine', 'aliases': []}, + # the google emoji for this is not red + '1f697': {'canonical_name': 'car', 'aliases': []}, + # rideshare seems like a reasonable addition + '1f695': {'canonical_name': 'taxi', 'aliases': ['rideshare']}, + # the google emoji for this is not blue. recreational_vehicle is from + # gemoji/unicode, jeep seemed like a good addition + '1f699': {'canonical_name': 'recreational_vehicle', 'aliases': ['jeep']}, + # school_bus seemed like a reasonable addition, even though the twitter + # glyph for this doesn't really look like a school bus + '1f68c': {'canonical_name': 'bus', 'aliases': ['school_bus']}, + '1f68e': {'canonical_name': 'trolley', 'aliases': []}, + '1f3ce': {'canonical_name': 'racecar', 'aliases': []}, + '1f693': {'canonical_name': 'police_car', 'aliases': []}, + '1f691': {'canonical_name': 'ambulance', 'aliases': []}, + # https://trends.google.com/trends/explore?q=fire%20truck,fire%20engine + '1f692': {'canonical_name': 'fire_truck', 'aliases': ['fire_engine']}, + '1f690': {'canonical_name': 'minibus', 'aliases': []}, + # moving_truck and truck for Places/11 and Places/12 seem much better than + # the iamcal names + '1f69a': {'canonical_name': 'moving_truck', 'aliases': []}, + # see Places/11 for truck. Rest seem reasonable additions. + '1f69b': {'canonical_name': 'truck', 'aliases': ['tractor-trailer', 'big_rig', 'semi_truck', 'transport_truck']}, # ignorelongline + '1f69c': {'canonical_name': 'tractor', 'aliases': []}, + # kick_scooter and scooter seem better for Places/14 and Places /16 than + # scooter and motor_scooter. + '1f6f4': {'canonical_name': 'kick_scooter', 'aliases': []}, + '1f6b2': {'canonical_name': 'bike', 'aliases': ['bicycle']}, + # see Places/14. Called motor_bike (or bike) in India + '1f6f5': {'canonical_name': 'scooter', 'aliases': ['motor_bike']}, + '1f3cd': {'canonical_name': 'motorcycle', 'aliases': []}, + # siren seems more useful. alert seems like a reasonable addition + '1f6a8': {'canonical_name': 'siren', 'aliases': ['rotating_light', 'alert']}, + '1f694': {'canonical_name': 'oncoming_police_car', 'aliases': []}, + '1f68d': {'canonical_name': 'oncoming_bus', 'aliases': []}, + # car to parallel e.g. Places/1 + '1f698': {'canonical_name': 'oncoming_car', 'aliases': ['oncoming_automobile']}, + '1f696': {'canonical_name': 'oncoming_taxi', 'aliases': []}, + # ski_lift seems like a good addition + '1f6a1': {'canonical_name': 'aerial_tramway', 'aliases': ['ski_lift']}, + # gondola seems more useful + '1f6a0': {'canonical_name': 'gondola', 'aliases': ['mountain_cableway']}, + '1f69f': {'canonical_name': 'suspension_railway', 'aliases': []}, + # train_car seems like a reasonable addition + '1f683': {'canonical_name': 'railway_car', 'aliases': ['train_car']}, + # this does not seem like a good emoji for train, especially compared to + # Places/33. streetcar seems like a good addition. + '1f68b': {'canonical_name': 'tram', 'aliases': ['streetcar']}, + '1f69e': {'canonical_name': 'mountain_railway', 'aliases': []}, + # elevated_train seems like a reasonable addition + '1f69d': {'canonical_name': 'monorail', 'aliases': ['elevated_train']}, + # from gemoji/unicode. Also, don't thin we need two bullettrain's + '1f684': {'canonical_name': 'high_speed_train', 'aliases': []}, + # google, wikipedia, etc prefer bullet train to bullettrain + '1f685': {'canonical_name': 'bullet_train', 'aliases': []}, + '1f688': {'canonical_name': 'light_rail', 'aliases': []}, + '1f682': {'canonical_name': 'train', 'aliases': ['steam_locomotive']}, + # oncoming_train seems better than train2 + '1f686': {'canonical_name': 'oncoming_train', 'aliases': []}, + # saving metro for Symbols/108. The tunnel makes subway more appropriate + # anyway. + '1f687': {'canonical_name': 'subway', 'aliases': []}, + # all the glyphs of oncoming vehicles have names like oncoming_*. The + # alternate names are to parallel the alternates to Places/27. + '1f68a': {'canonical_name': 'oncoming_tram', 'aliases': ['oncoming_streetcar', 'oncoming_trolley']}, + '1f689': {'canonical_name': 'station', 'aliases': []}, + '1f681': {'canonical_name': 'helicopter', 'aliases': []}, + '1f6e9': {'canonical_name': 'small_airplane', 'aliases': []}, + '2708': {'canonical_name': 'airplane', 'aliases': []}, + # take_off seems more useful than airplane_departure. departure also seems + # more useful than airplane_departure. Arguably departure should be the + # primary, since arrival is probably more useful than landing in Places/42, + # but going with this for now. + '1f6eb': {'canonical_name': 'take_off', 'aliases': ['departure', 'airplane_departure']}, + # parallel to Places/41 + '1f6ec': {'canonical_name': 'landing', 'aliases': ['arrival', 'airplane_arrival']}, + '1f680': {'canonical_name': 'rocket', 'aliases': []}, + '1f6f0': {'canonical_name': 'satellite', 'aliases': []}, + '1f4ba': {'canonical_name': 'seat', 'aliases': []}, + '1f6f6': {'canonical_name': 'canoe', 'aliases': []}, + '26f5': {'canonical_name': 'boat', 'aliases': ['sailboat']}, + '1f6e5': {'canonical_name': 'motor_boat', 'aliases': []}, + '1f6a4': {'canonical_name': 'speedboat', 'aliases': []}, + # yatch and cruise seem like reasonable additions + '1f6f3': {'canonical_name': 'passenger_ship', 'aliases': ['yacht', 'cruise']}, + '26f4': {'canonical_name': 'ferry', 'aliases': []}, + '1f6a2': {'canonical_name': 'ship', 'aliases': []}, + '2693': {'canonical_name': 'anchor', 'aliases': []}, + # there already is a construction in Places/82, and work_in_progress seems + # like a useful thing to have. Construction_zone seems better than the + # unicode construction_sign, and is there partly so this autocompletes for + # construction. + '1f6a7': {'canonical_name': 'work_in_progress', 'aliases': ['construction_zone']}, + # alternates from https://emojipedia.org/fuel-pump/. unicode is fuel_pump, + # not fuelpump + '26fd': {'canonical_name': 'fuel_pump', 'aliases': ['gas_pump', 'petrol_pump']}, + # not sure why iamcal removed the space + '1f68f': {'canonical_name': 'bus_stop', 'aliases': []}, + # https://emojipedia.org/vertical-traffic-light/ thinks this is the more + # common of the two traffic lights, so putting traffic_light on this one + '1f6a6': {'canonical_name': 'traffic_light', 'aliases': ['vertical_traffic_light']}, + # see Places/57 + '1f6a5': {'canonical_name': 'horizontal_traffic_light', 'aliases': []}, + # road_trip from http://mashable.com/2015/10/23/ios-9-1-emoji-guide + '1f5fa': {'canonical_name': 'map', 'aliases': ['world_map', 'road_trip']}, + # rock_carving, statue, and tower seem more general and less culturally + # specific, for Places/60, 61, and 63. + '1f5ff': {'canonical_name': 'rock_carving', 'aliases': ['moyai']}, + # new_york from https://emojipedia.org/statue-of-liberty/. see Places/60 + # for statue + '1f5fd': {'canonical_name': 'statue', 'aliases': ['new_york', 'statue_of_liberty']}, + '26f2': {'canonical_name': 'fountain', 'aliases': []}, + # see Places/60 + '1f5fc': {'canonical_name': 'tower', 'aliases': ['tokyo_tower']}, + # choosing this as the castle since castles are a way bigger thing in + # europe than japan, and shiro is a pretty reasonable name for Places/65 + '1f3f0': {'canonical_name': 'castle', 'aliases': []}, + # see Places/64 + '1f3ef': {'canonical_name': 'shiro', 'aliases': []}, + '1f3df': {'canonical_name': 'stadium', 'aliases': []}, + '1f3a1': {'canonical_name': 'ferris_wheel', 'aliases': []}, + '1f3a2': {'canonical_name': 'roller_coaster', 'aliases': []}, + # merry_go_round seems like a good addition + '1f3a0': {'canonical_name': 'carousel', 'aliases': ['merry_go_round']}, + # beach_umbrella seems more useful + '26f1': {'canonical_name': 'beach_umbrella', 'aliases': []}, + '1f3d6': {'canonical_name': 'beach', 'aliases': []}, + '1f3dd': {'canonical_name': 'island', 'aliases': []}, + '26f0': {'canonical_name': 'mountain', 'aliases': []}, + '1f3d4': {'canonical_name': 'snowy_mountain', 'aliases': []}, + # already lots of other mountains, otherwise would rename this like + # Places/60 + '1f5fb': {'canonical_name': 'mount_fuji', 'aliases': []}, + '1f30b': {'canonical_name': 'volcano', 'aliases': []}, + '1f3dc': {'canonical_name': 'desert', 'aliases': []}, + # campsite from https://emojipedia.org/camping/, I think Places/79 is a + # better camping + '1f3d5': {'canonical_name': 'campsite', 'aliases': []}, + '26fa': {'canonical_name': 'tent', 'aliases': ['camping']}, + '1f6e4': {'canonical_name': 'railway_track', 'aliases': ['train_tracks']}, + # road is used much more frequently at + # https://trends.google.com/trends/explore?q=road,motorway + '1f6e3': {'canonical_name': 'road', 'aliases': ['motorway']}, + '1f3d7': {'canonical_name': 'construction', 'aliases': []}, + '1f3ed': {'canonical_name': 'factory', 'aliases': []}, + '1f3e0': {'canonical_name': 'house', 'aliases': []}, + # suburb seems more useful + '1f3e1': {'canonical_name': 'suburb', 'aliases': []}, + '1f3d8': {'canonical_name': 'houses', 'aliases': []}, + # condemned seemed like a good addition + '1f3da': {'canonical_name': 'derelict_house', 'aliases': ['condemned']}, + '1f3e2': {'canonical_name': 'office', 'aliases': []}, + '1f3ec': {'canonical_name': 'department_store', 'aliases': []}, + '1f3e3': {'canonical_name': 'japan_post', 'aliases': []}, + '1f3e4': {'canonical_name': 'post_office', 'aliases': []}, + '1f3e5': {'canonical_name': 'hospital', 'aliases': []}, + '1f3e6': {'canonical_name': 'bank', 'aliases': []}, + '1f3e8': {'canonical_name': 'hotel', 'aliases': []}, + '1f3ea': {'canonical_name': 'convenience_store', 'aliases': []}, + '1f3eb': {'canonical_name': 'school', 'aliases': []}, + '1f3e9': {'canonical_name': 'love_hotel', 'aliases': []}, + '1f492': {'canonical_name': 'wedding', 'aliases': []}, + '1f3db': {'canonical_name': 'classical_building', 'aliases': []}, + '26ea': {'canonical_name': 'church', 'aliases': []}, + '1f54c': {'canonical_name': 'mosque', 'aliases': []}, + '1f54d': {'canonical_name': 'synagogue', 'aliases': []}, + '1f54b': {'canonical_name': 'kaaba', 'aliases': []}, + '26e9': {'canonical_name': 'shinto_shrine', 'aliases': []}, + '1f5fe': {'canonical_name': 'japan', 'aliases': []}, + # rice_scene seems like a strange name to have. gemoji alternate is + # moon_ceremony + '1f391': {'canonical_name': 'moon_ceremony', 'aliases': []}, + '1f3de': {'canonical_name': 'national_park', 'aliases': []}, + # ocean_sunrise to parallel Places/109 + '1f305': {'canonical_name': 'sunrise', 'aliases': ['ocean_sunrise']}, + '1f304': {'canonical_name': 'mountain_sunrise', 'aliases': []}, + # shooting_star and wish seem like way better descriptions. gemoji/unicode + # is shooting_star + '1f320': {'canonical_name': 'shooting_star', 'aliases': ['wish']}, + '1f387': {'canonical_name': 'sparkler', 'aliases': []}, + '1f386': {'canonical_name': 'fireworks', 'aliases': []}, + '1f307': {'canonical_name': 'city_sunrise', 'aliases': []}, + '1f306': {'canonical_name': 'sunset', 'aliases': []}, + # city and skyline seem more useful than cityscape + '1f3d9': {'canonical_name': 'city', 'aliases': ['skyline']}, + '1f303': {'canonical_name': 'night', 'aliases': []}, + # night_sky seems like a good addition + '1f30c': {'canonical_name': 'milky_way', 'aliases': ['night_sky']}, + '1f309': {'canonical_name': 'bridge', 'aliases': []}, + '1f301': {'canonical_name': 'foggy', 'aliases': []}, + '231a': {'canonical_name': 'watch', 'aliases': []}, + # unicode/gemoji is mobile_phone. The rest seem like good additions + '1f4f1': {'canonical_name': 'mobile_phone', 'aliases': ['smartphone', 'iphone', 'android']}, + '1f4f2': {'canonical_name': 'calling', 'aliases': []}, + # gemoji has laptop, even though the google emoji for this does not look + # like a laptop + '1f4bb': {'canonical_name': 'computer', 'aliases': ['laptop']}, + '2328': {'canonical_name': 'keyboard', 'aliases': []}, + '1f5a5': {'canonical_name': 'desktop_computer', 'aliases': []}, + '1f5a8': {'canonical_name': 'printer', 'aliases': []}, + # gemoji/unicode is computer_mouse + '1f5b1': {'canonical_name': 'computer_mouse', 'aliases': []}, + '1f5b2': {'canonical_name': 'trackball', 'aliases': []}, + # arcade seems like a reasonable addition + '1f579': {'canonical_name': 'joystick', 'aliases': ['arcade']}, + # vise seems like a reasonable addition + '1f5dc': {'canonical_name': 'compression', 'aliases': ['vise']}, + # gold record seems more useful, idea came from + # http://www.11points.com/Web-Tech/11_Emoji_With_Different_Meanings_Than_You_Think + '1f4bd': {'canonical_name': 'gold_record', 'aliases': ['minidisc']}, + '1f4be': {'canonical_name': 'floppy_disk', 'aliases': []}, + '1f4bf': {'canonical_name': 'cd', 'aliases': []}, + '1f4c0': {'canonical_name': 'dvd', 'aliases': []}, + # videocassette from gemoji/unicode + '1f4fc': {'canonical_name': 'vhs', 'aliases': ['videocassette']}, + '1f4f7': {'canonical_name': 'camera', 'aliases': []}, + # both of these seem more useful than camera_with_flash + '1f4f8': {'canonical_name': 'taking_a_picture', 'aliases': ['say_cheese']}, + # video_recorder seems like a reasonable addition + '1f4f9': {'canonical_name': 'video_camera', 'aliases': ['video_recorder']}, + '1f3a5': {'canonical_name': 'movie_camera', 'aliases': []}, + # seems like the best emoji for movie + '1f4fd': {'canonical_name': 'projector', 'aliases': ['movie']}, + '1f39e': {'canonical_name': 'film', 'aliases': []}, + # both of these seem more useful than telephone_receiver + '1f4de': {'canonical_name': 'landline', 'aliases': ['home_phone']}, + '260e': {'canonical_name': 'phone', 'aliases': ['telephone']}, + '1f4df': {'canonical_name': 'pager', 'aliases': []}, + '1f4e0': {'canonical_name': 'fax', 'aliases': []}, + '1f4fa': {'canonical_name': 'tv', 'aliases': ['television']}, + '1f4fb': {'canonical_name': 'radio', 'aliases': []}, + '1f399': {'canonical_name': 'studio_microphone', 'aliases': []}, + # volume seems more useful + '1f39a': {'canonical_name': 'volume', 'aliases': ['level_slider']}, + '1f39b': {'canonical_name': 'control_knobs', 'aliases': []}, + '23f1': {'canonical_name': 'stopwatch', 'aliases': []}, + '23f2': {'canonical_name': 'timer', 'aliases': []}, + '23f0': {'canonical_name': 'alarm_clock', 'aliases': []}, + '1f570': {'canonical_name': 'mantelpiece_clock', 'aliases': []}, + # times_up and time_ticking seem more useful than the hourglass names + '231b': {'canonical_name': 'times_up', 'aliases': ['hourglass_done']}, + # seems like the better hourglass. Also see Objects/36 + '23f3': {'canonical_name': 'time_ticking', 'aliases': ['hourglass']}, + '1f4e1': {'canonical_name': 'satellite_antenna', 'aliases': []}, + # seems like a reasonable addition + '1f50b': {'canonical_name': 'battery', 'aliases': ['full_battery']}, + '1f50c': {'canonical_name': 'electric_plug', 'aliases': []}, + # light_bulb seems better and from unicode/gemoji. idea seems like a good + # addition + '1f4a1': {'canonical_name': 'light_bulb', 'aliases': ['bulb', 'idea']}, + '1f526': {'canonical_name': 'flashlight', 'aliases': []}, + '1f56f': {'canonical_name': 'candle', 'aliases': []}, + # seems like a reasonable addition + '1f5d1': {'canonical_name': 'wastebasket', 'aliases': ['trash_can']}, + # http://www.iemoji.com/view/emoji/1173/objects/oil-drum + '1f6e2': {'canonical_name': 'oil_drum', 'aliases': ['commodities']}, + # losing money from https://emojipedia.org/money-with-wings/, + # easy_come_easy_go seems like a reasonable addition + '1f4b8': {'canonical_name': 'losing_money', 'aliases': ['easy_come_easy_go', 'money_with_wings']}, + # I think the _bills, _banknotes etc versions of these are arguably more + # fun to use in chat, and certainly match the glyphs better + '1f4b5': {'canonical_name': 'dollar_bills', 'aliases': []}, + '1f4b4': {'canonical_name': 'yen_banknotes', 'aliases': []}, + '1f4b6': {'canonical_name': 'euro_banknotes', 'aliases': []}, + '1f4b7': {'canonical_name': 'pound_notes', 'aliases': []}, + '1f4b0': {'canonical_name': 'money', 'aliases': []}, + '1f4b3': {'canonical_name': 'credit_card', 'aliases': ['debit_card']}, + '1f48e': {'canonical_name': 'gem', 'aliases': ['crystal']}, + # justice seems more useful + '2696': {'canonical_name': 'justice', 'aliases': ['scales', 'balance']}, + # fixing, at_work, and working_on_it seem like useful concepts for + # workplace chat + '1f527': {'canonical_name': 'fixing', 'aliases': ['wrench']}, + '1f528': {'canonical_name': 'hammer', 'aliases': ['maintenance', 'handyman', 'handywoman']}, + '2692': {'canonical_name': 'at_work', 'aliases': ['hammer_and_pick']}, + # something that might be useful for chat.zulip.org, even + '1f6e0': {'canonical_name': 'working_on_it', 'aliases': ['hammer_and_wrench', 'tools']}, + '26cf': {'canonical_name': 'mine', 'aliases': ['pick']}, + # screw is somewhat inappropriate, but not openly so, so leaving it in + '1f529': {'canonical_name': 'nut_and_bolt', 'aliases': ['screw']}, + '2699': {'canonical_name': 'gear', 'aliases': ['settings', 'mechanical', 'engineer']}, + '26d3': {'canonical_name': 'chains', 'aliases': []}, + '1f52b': {'canonical_name': 'gun', 'aliases': []}, + '1f4a3': {'canonical_name': 'bomb', 'aliases': []}, + # betrayed from http://www.iemoji.com/view/emoji/786/objects/kitchen-knife + '1f52a': {'canonical_name': 'knife', 'aliases': ['hocho', 'betrayed']}, + # rated_for_violence from + # http://www.iemoji.com/view/emoji/1085/objects/dagger. hate (also + # suggested there) seems too strong, as does just "violence". + '1f5e1': {'canonical_name': 'dagger', 'aliases': ['rated_for_violence']}, + '2694': {'canonical_name': 'duel', 'aliases': ['swords']}, + '1f6e1': {'canonical_name': 'shield', 'aliases': []}, + '1f6ac': {'canonical_name': 'smoking', 'aliases': []}, + '26b0': {'canonical_name': 'coffin', 'aliases': ['burial', 'grave']}, + '26b1': {'canonical_name': 'funeral_urn', 'aliases': ['cremation']}, + # amphora is too obscure, I think + '1f3fa': {'canonical_name': 'vase', 'aliases': ['amphora']}, + '1f52e': {'canonical_name': 'crystal_ball', 'aliases': ['oracle', 'future', 'fortune_telling']}, + '1f4ff': {'canonical_name': 'prayer_beads', 'aliases': []}, + '1f488': {'canonical_name': 'barber', 'aliases': ['striped_pole']}, + # alchemy seems more useful and less obscure + '2697': {'canonical_name': 'alchemy', 'aliases': ['alembic']}, + '1f52d': {'canonical_name': 'telescope', 'aliases': []}, + # science seems useful to have. scientist inspired by + # http://www.iemoji.com/view/emoji/787/objects/microscope + '1f52c': {'canonical_name': 'science', 'aliases': ['microscope', 'scientist']}, + '1f573': {'canonical_name': 'hole', 'aliases': []}, + '1f48a': {'canonical_name': 'medicine', 'aliases': ['pill']}, + '1f489': {'canonical_name': 'injection', 'aliases': ['syringe']}, + '1f321': {'canonical_name': 'temperature', 'aliases': ['thermometer', 'warm']}, + '1f6bd': {'canonical_name': 'toilet', 'aliases': []}, + '1f6b0': {'canonical_name': 'potable_water', 'aliases': ['tap_water', 'drinking_water']}, + '1f6bf': {'canonical_name': 'shower', 'aliases': []}, + '1f6c1': {'canonical_name': 'bathtub', 'aliases': []}, + '1f6c0': {'canonical_name': 'bath', 'aliases': []}, + # reception and services from + # http://www.iemoji.com/view/emoji/1169/objects/bellhop-bell + '1f6ce': {'canonical_name': 'bellhop_bell', 'aliases': ['reception', 'services', 'ding']}, + '1f511': {'canonical_name': 'key', 'aliases': []}, + # encrypted from http://www.iemoji.com/view/emoji/1081/objects/old-key, + # secret from http://mashable.com/2015/10/23/ios-9-1-emoji-guide + '1f5dd': {'canonical_name': 'secret', 'aliases': ['dungeon', 'old_key', 'encrypted', 'clue', 'hint']}, + '1f6aa': {'canonical_name': 'door', 'aliases': []}, + '1f6cb': {'canonical_name': 'living_room', 'aliases': ['furniture', 'couch_and_lamp', 'lifestyles']}, + '1f6cf': {'canonical_name': 'bed', 'aliases': ['bedroom']}, + # guestrooms from iemoji, would add hotel but taken by Places/94 + '1f6cc': {'canonical_name': 'in_bed', 'aliases': ['accommodations', 'guestrooms']}, + '1f5bc': {'canonical_name': 'picture', 'aliases': ['framed_picture']}, + '1f6cd': {'canonical_name': 'shopping_bags', 'aliases': []}, + # https://trends.google.com/trends/explore?q=shopping%20cart,shopping%20trolley + '1f6d2': {'canonical_name': 'shopping_cart', 'aliases': ['shopping_trolley']}, + '1f381': {'canonical_name': 'gift', 'aliases': ['present']}, + # seemed like the best celebration + '1f388': {'canonical_name': 'balloon', 'aliases': ['celebration']}, + # from gemoji/unicode + '1f38f': {'canonical_name': 'carp_streamer', 'aliases': ['flags']}, + '1f380': {'canonical_name': 'ribbon', 'aliases': ['decoration']}, + '1f38a': {'canonical_name': 'confetti', 'aliases': ['party_ball']}, + # seemed like the best congratulations + '1f389': {'canonical_name': 'tada', 'aliases': ['congratulations']}, + '1f38e': {'canonical_name': 'dolls', 'aliases': []}, + '1f3ee': {'canonical_name': 'lantern', 'aliases': ['izakaya_lantern']}, + '1f390': {'canonical_name': 'wind_chime', 'aliases': []}, + '2709': {'canonical_name': 'email', 'aliases': ['envelope', 'mail']}, + # seems useful for chat? + '1f4e9': {'canonical_name': 'mail_sent', 'aliases': ['sealed']}, + '1f4e8': {'canonical_name': 'mail_received', 'aliases': []}, + '1f4e7': {'canonical_name': 'e-mail', 'aliases': []}, + '1f48c': {'canonical_name': 'love_letter', 'aliases': []}, + '1f4e5': {'canonical_name': 'inbox', 'aliases': []}, + '1f4e4': {'canonical_name': 'outbox', 'aliases': []}, + '1f4e6': {'canonical_name': 'package', 'aliases': []}, + # price_tag from iemoji + '1f3f7': {'canonical_name': 'label', 'aliases': ['tag', 'price_tag']}, + '1f4ea': {'canonical_name': 'closed_mailbox', 'aliases': []}, + '1f4eb': {'canonical_name': 'mailbox', 'aliases': []}, + '1f4ec': {'canonical_name': 'unread_mail', 'aliases': []}, + '1f4ed': {'canonical_name': 'inbox_zero', 'aliases': ['empty_mailbox', 'no_mail']}, + '1f4ee': {'canonical_name': 'mail_dropoff', 'aliases': []}, + '1f4ef': {'canonical_name': 'horn', 'aliases': []}, + '1f4dc': {'canonical_name': 'scroll', 'aliases': []}, + # receipt seems more useful? + '1f4c3': {'canonical_name': 'receipt', 'aliases': []}, + '1f4c4': {'canonical_name': 'document', 'aliases': ['paper', 'file', 'page']}, + '1f4d1': {'canonical_name': 'place_holder', 'aliases': []}, + '1f4ca': {'canonical_name': 'bar_chart', 'aliases': []}, + # seems like the best chart + '1f4c8': {'canonical_name': 'chart', 'aliases': ['upwards_trend', 'growing', 'increasing']}, + '1f4c9': {'canonical_name': 'downwards_trend', 'aliases': ['shrinking', 'decreasing']}, + '1f5d2': {'canonical_name': 'spiral_notepad', 'aliases': []}, + # '1f5d3': {'canonical_name': 'X', 'aliases': ['spiral_calendar_pad']}, + # swapped the following two largely due to the emojione glyphs + '1f4c6': {'canonical_name': 'date', 'aliases': []}, + '1f4c5': {'canonical_name': 'calendar', 'aliases': []}, + '1f4c7': {'canonical_name': 'rolodex', 'aliases': ['card_index']}, + '1f5c3': {'canonical_name': 'archive', 'aliases': []}, + '1f5f3': {'canonical_name': 'ballot_box', 'aliases': []}, + '1f5c4': {'canonical_name': 'file_cabinet', 'aliases': []}, + '1f4cb': {'canonical_name': 'clipboard', 'aliases': []}, + # don't need two file_folders, so made this organize + '1f4c1': {'canonical_name': 'organize', 'aliases': ['file_folder']}, + '1f4c2': {'canonical_name': 'folder', 'aliases': []}, + '1f5c2': {'canonical_name': 'sort', 'aliases': []}, + '1f5de': {'canonical_name': 'newspaper', 'aliases': ['swat']}, + '1f4f0': {'canonical_name': 'headlines', 'aliases': []}, + '1f4d3': {'canonical_name': 'notebook', 'aliases': ['composition_book']}, + '1f4d4': {'canonical_name': 'decorative_notebook', 'aliases': []}, + '1f4d2': {'canonical_name': 'ledger', 'aliases': ['spiral_notebook']}, + # the glyphs here are the same as Objects/147-149 (with a different color), + # for all but google + '1f4d5': {'canonical_name': 'red_book', 'aliases': ['closed_book']}, + '1f4d7': {'canonical_name': 'green_book', 'aliases': []}, + '1f4d8': {'canonical_name': 'blue_book', 'aliases': []}, + '1f4d9': {'canonical_name': 'orange_book', 'aliases': []}, + '1f4da': {'canonical_name': 'books', 'aliases': []}, + '1f4d6': {'canonical_name': 'book', 'aliases': ['open_book']}, + '1f516': {'canonical_name': 'bookmark', 'aliases': []}, + '1f517': {'canonical_name': 'link', 'aliases': []}, + '1f4ce': {'canonical_name': 'paperclip', 'aliases': ['attachment']}, + # office_supplies from http://mashable.com/2015/10/23/ios-9-1-emoji-guide + '1f587': {'canonical_name': 'office_supplies', 'aliases': ['paperclip_chain', 'linked']}, + '1f4d0': {'canonical_name': 'carpenter_square', 'aliases': ['triangular_ruler']}, + '1f4cf': {'canonical_name': 'ruler', 'aliases': ['straightedge']}, + '1f4cc': {'canonical_name': 'push_pin', 'aliases': ['thumb_tack']}, + '1f4cd': {'canonical_name': 'pin', 'aliases': ['sewing_pin']}, + '2702': {'canonical_name': 'scissors', 'aliases': []}, + '1f58a': {'canonical_name': 'pen', 'aliases': ['ballpoint_pen']}, + '1f58b': {'canonical_name': 'fountain_pen', 'aliases': []}, + # three of the four emoji sets just have a rightwards-facing objects/162 + # '2712': {'canonical_name': 'X', 'aliases': ['black_nib']}, + '1f58c': {'canonical_name': 'paintbrush', 'aliases': []}, + '1f58d': {'canonical_name': 'crayon', 'aliases': []}, + '1f4dd': {'canonical_name': 'memo', 'aliases': ['note']}, + '270f': {'canonical_name': 'pencil', 'aliases': []}, + '1f50d': {'canonical_name': 'search', 'aliases': ['find', 'magnifying_glass']}, + # '1f50e': {'canonical_name': 'X', 'aliases': ['mag_right']}, + # https://emojipedia.org/lock-with-ink-pen/ + '1f50f': {'canonical_name': 'privacy', 'aliases': ['key_signing', 'digital_security', 'protected']}, + '1f510': {'canonical_name': 'secure', 'aliases': ['lock_with_key', 'safe', 'commitment', 'loyalty']}, + '1f512': {'canonical_name': 'locked', 'aliases': []}, + '1f513': {'canonical_name': 'unlocked', 'aliases': []}, + # seems the best glyph for love and love_you + '2764': {'canonical_name': 'heart', 'aliases': ['love', 'love_you']}, + '1f49b': {'canonical_name': 'yellow_heart', 'aliases': ['heart_of_gold']}, + '1f49a': {'canonical_name': 'green_heart', 'aliases': ['envy']}, + '1f499': {'canonical_name': 'blue_heart', 'aliases': []}, + '1f49c': {'canonical_name': 'purple_heart', 'aliases': ['bravery']}, + '1f5a4': {'canonical_name': 'black_heart', 'aliases': []}, + '1f494': {'canonical_name': 'broken_heart', 'aliases': ['heartache']}, + '2763': {'canonical_name': 'heart_exclamation', 'aliases': []}, + '1f495': {'canonical_name': 'two_hearts', 'aliases': []}, + '1f49e': {'canonical_name': 'revolving_hearts', 'aliases': []}, + '1f493': {'canonical_name': 'heartbeat', 'aliases': []}, + '1f497': {'canonical_name': 'heart_pulse', 'aliases': ['growing_heart']}, + '1f496': {'canonical_name': 'sparkling_heart', 'aliases': []}, + '1f498': {'canonical_name': 'cupid', 'aliases': ['smitten', 'heart_arrow']}, + '1f49d': {'canonical_name': 'gift_heart', 'aliases': []}, + '1f49f': {'canonical_name': 'heart_box', 'aliases': []}, + '262e': {'canonical_name': 'peace', 'aliases': []}, + '271d': {'canonical_name': 'cross', 'aliases': ['christianity']}, + '262a': {'canonical_name': 'star_and_crescent', 'aliases': ['islam']}, + '1f549': {'canonical_name': 'om', 'aliases': ['hinduism']}, + '2638': {'canonical_name': 'wheel_of_dharma', 'aliases': ['buddhism']}, + '2721': {'canonical_name': 'star_of_david', 'aliases': ['judiasm']}, + # can't find any explanation of this at all. Is an alternate star of david? + # '1f52f': {'canonical_name': 'X', 'aliases': ['six_pointed_star']}, + '1f54e': {'canonical_name': 'menorah', 'aliases': []}, + '262f': {'canonical_name': 'yin_yang', 'aliases': []}, + '2626': {'canonical_name': 'orthodox_cross', 'aliases': []}, + '1f6d0': {'canonical_name': 'place_of_worship', 'aliases': []}, + '26ce': {'canonical_name': 'ophiuchus', 'aliases': []}, + '2648': {'canonical_name': 'aries', 'aliases': []}, + '2649': {'canonical_name': 'taurus', 'aliases': []}, + '264a': {'canonical_name': 'gemini', 'aliases': []}, + '264b': {'canonical_name': 'cancer', 'aliases': []}, + '264c': {'canonical_name': 'leo', 'aliases': []}, + '264d': {'canonical_name': 'virgo', 'aliases': []}, + '264e': {'canonical_name': 'libra', 'aliases': []}, + '264f': {'canonical_name': 'scorpius', 'aliases': []}, + '2650': {'canonical_name': 'sagittarius', 'aliases': []}, + '2651': {'canonical_name': 'capricorn', 'aliases': []}, + '2652': {'canonical_name': 'aquarius', 'aliases': []}, + '2653': {'canonical_name': 'pisces', 'aliases': []}, + '1f194': {'canonical_name': 'id', 'aliases': []}, + '269b': {'canonical_name': 'atom', 'aliases': ['physics']}, + # japanese symbol + # '1f251': {'canonical_name': 'X', 'aliases': ['accept']}, + '2622': {'canonical_name': 'radioactive', 'aliases': ['nuclear']}, + '2623': {'canonical_name': 'biohazard', 'aliases': []}, + '1f4f4': {'canonical_name': 'phone_off', 'aliases': []}, + '1f4f3': {'canonical_name': 'vibration_mode', 'aliases': []}, + # '1f236': {'canonical_name': 'X', 'aliases': ['u6709']}, + # '1f21a': {'canonical_name': 'X', 'aliases': ['u7121']}, + # '1f238': {'canonical_name': 'X', 'aliases': ['u7533']}, + # '1f23a': {'canonical_name': 'X', 'aliases': ['u55b6']}, + # '1f237': {'canonical_name': 'X', 'aliases': ['u6708']}, + '2734': {'canonical_name': 'eight_pointed_star', 'aliases': []}, + '1f19a': {'canonical_name': 'vs', 'aliases': []}, + '1f4ae': {'canonical_name': 'white_flower', 'aliases': []}, + # '1f250': {'canonical_name': 'X', 'aliases': ['ideograph_advantage']}, + # japanese character + # '3299': {'canonical_name': 'X', 'aliases': ['secret']}, + # '3297': {'canonical_name': 'X', 'aliases': ['congratulations']}, + # '1f234': {'canonical_name': 'X', 'aliases': ['u5408']}, + # '1f235': {'canonical_name': 'X', 'aliases': ['u6e80']}, + # '1f239': {'canonical_name': 'X', 'aliases': ['u5272']}, + # '1f232': {'canonical_name': 'X', 'aliases': ['u7981']}, + '1f170': {'canonical_name': 'a', 'aliases': []}, + '1f171': {'canonical_name': 'b', 'aliases': []}, + '1f18e': {'canonical_name': 'ab', 'aliases': []}, + '1f191': {'canonical_name': 'cl', 'aliases': []}, + '1f17e': {'canonical_name': 'o', 'aliases': []}, + '1f198': {'canonical_name': 'sos', 'aliases': []}, + # Symbols/105 seems like a better x, and looks more like the other letters + '274c': {'canonical_name': 'cross_mark', 'aliases': ['incorrect', 'wrong']}, + '2b55': {'canonical_name': 'circle', 'aliases': []}, + '1f6d1': {'canonical_name': 'stop_sign', 'aliases': ['octagonal_sign']}, + '26d4': {'canonical_name': 'no_entry', 'aliases': ['wrong_way']}, + '1f4db': {'canonical_name': 'name_badge', 'aliases': []}, + '1f6ab': {'canonical_name': 'prohibited', 'aliases': ['not_allowed']}, + '1f4af': {'canonical_name': '100', 'aliases': ['hundred']}, + '1f4a2': {'canonical_name': 'anger', 'aliases': ['bam', 'pow']}, + '2668': {'canonical_name': 'hot_springs', 'aliases': []}, + '1f6b7': {'canonical_name': 'no_pedestrians', 'aliases': []}, + '1f6af': {'canonical_name': 'do_not_litter', 'aliases': []}, + '1f6b3': {'canonical_name': 'no_bicycles', 'aliases': []}, + '1f6b1': {'canonical_name': 'non-potable_water', 'aliases': []}, + '1f51e': {'canonical_name': 'underage', 'aliases': ['nc17']}, + '1f4f5': {'canonical_name': 'no_phones', 'aliases': []}, + '1f6ad': {'canonical_name': 'no_smoking', 'aliases': []}, + '2757': {'canonical_name': 'exclamation', 'aliases': []}, + '2755': {'canonical_name': 'grey_exclamation', 'aliases': []}, + '2753': {'canonical_name': 'question', 'aliases': []}, + '2754': {'canonical_name': 'grey_question', 'aliases': []}, + '203c': {'canonical_name': 'bangbang', 'aliases': ['double_exclamation']}, + '2049': {'canonical_name': 'interrobang', 'aliases': []}, + '1f505': {'canonical_name': 'low_brightness', 'aliases': ['dim']}, + '1f506': {'canonical_name': 'brightness', 'aliases': ['high_brightness']}, + '303d': {'canonical_name': 'part_alternation', 'aliases': []}, + '26a0': {'canonical_name': 'warning', 'aliases': ['caution', 'danger']}, + '1f6b8': {'canonical_name': 'children_crossing', 'aliases': ['school_crossing', 'drive_with_care']}, + '1f531': {'canonical_name': 'trident', 'aliases': []}, + '269c': {'canonical_name': 'fleur_de_lis', 'aliases': []}, + '1f530': {'canonical_name': 'beginner', 'aliases': []}, + '267b': {'canonical_name': 'recycle', 'aliases': []}, + # seems like the best check + '2705': {'canonical_name': 'check', 'aliases': ['all_good', 'approved']}, + # '1f22f': {'canonical_name': 'X', 'aliases': ['u6307']}, + # stock_market seemed more useful + '1f4b9': {'canonical_name': 'stock_market', 'aliases': []}, + '2747': {'canonical_name': 'sparkle', 'aliases': []}, + '2733': {'canonical_name': 'eight_spoked_asterisk', 'aliases': []}, + '274e': {'canonical_name': 'x', 'aliases': []}, + '1f310': {'canonical_name': 'www', 'aliases': ['globe']}, + '1f4a0': {'canonical_name': 'cute', 'aliases': ['kawaii', 'diamond_with_a_dot']}, + '24c2': {'canonical_name': 'metro', 'aliases': ['m']}, + '1f300': {'canonical_name': 'cyclone', 'aliases': ['hurricane', 'typhoon']}, + '1f4a4': {'canonical_name': 'zzz', 'aliases': []}, + '1f3e7': {'canonical_name': 'atm', 'aliases': []}, + '1f6be': {'canonical_name': 'wc', 'aliases': ['water_closet']}, + '267f': {'canonical_name': 'accessible', 'aliases': ['wheelchair', 'disabled']}, + '1f17f': {'canonical_name': 'parking', 'aliases': ['p']}, + # '1f233': {'canonical_name': 'X', 'aliases': ['u7a7a']}, + # '1f202': {'canonical_name': 'X', 'aliases': ['sa']}, + '1f6c2': {'canonical_name': 'passport_control', 'aliases': ['immigration']}, + '1f6c3': {'canonical_name': 'customs', 'aliases': []}, + '1f6c4': {'canonical_name': 'baggage_claim', 'aliases': []}, + '1f6c5': {'canonical_name': 'locker', 'aliases': ['locked_bag']}, + '1f6b9': {'canonical_name': 'mens', 'aliases': []}, + '1f6ba': {'canonical_name': 'womens', 'aliases': []}, + # seems more in line with the surrounding bathroom symbols + '1f6bc': {'canonical_name': 'baby_change_station', 'aliases': ['nursery']}, + '1f6bb': {'canonical_name': 'restroom', 'aliases': []}, + '1f6ae': {'canonical_name': 'put_litter_in_its_place', 'aliases': []}, + '1f3a6': {'canonical_name': 'cinema', 'aliases': ['movie_theater']}, + '1f4f6': {'canonical_name': 'cell_reception', 'aliases': ['signal_strength', 'signal_bars']}, + # '1f201': {'canonical_name': 'X', 'aliases': ['koko']}, + '1f523': {'canonical_name': 'symbols', 'aliases': []}, + '2139': {'canonical_name': 'info', 'aliases': []}, + '1f524': {'canonical_name': 'abc', 'aliases': []}, + '1f521': {'canonical_name': 'abcd', 'aliases': ['alphabet']}, + '1f520': {'canonical_name': 'capital_abcd', 'aliases': ['capital_letters']}, + '1f196': {'canonical_name': 'ng', 'aliases': []}, + # from unicode/gemoji. Saving ok for People/111 + '1f197': {'canonical_name': 'squared_ok', 'aliases': []}, + # from unicode, and to parallel Symbols/135. Saving up for Symbols/171 + '1f199': {'canonical_name': 'squared_up', 'aliases': []}, + '1f192': {'canonical_name': 'cool', 'aliases': []}, + '1f195': {'canonical_name': 'new', 'aliases': []}, + '1f193': {'canonical_name': 'free', 'aliases': []}, + '0030-20e3': {'canonical_name': 'zero', 'aliases': ['0']}, + '0031-20e3': {'canonical_name': 'one', 'aliases': ['1']}, + '0032-20e3': {'canonical_name': 'two', 'aliases': ['2']}, + '0033-20e3': {'canonical_name': 'three', 'aliases': ['3']}, + '0034-20e3': {'canonical_name': 'four', 'aliases': ['4']}, + '0035-20e3': {'canonical_name': 'five', 'aliases': ['5']}, + '0036-20e3': {'canonical_name': 'six', 'aliases': ['6']}, + '0037-20e3': {'canonical_name': 'seven', 'aliases': ['7']}, + '0038-20e3': {'canonical_name': 'eight', 'aliases': ['8']}, + '0039-20e3': {'canonical_name': 'nine', 'aliases': ['9']}, + '1f51f': {'canonical_name': 'ten', 'aliases': ['10']}, + '1f522': {'canonical_name': '1234', 'aliases': ['numbers']}, + '0023-20e3': {'canonical_name': 'hash', 'aliases': []}, + '002a-20e3': {'canonical_name': 'asterisk', 'aliases': []}, + '25b6': {'canonical_name': 'play', 'aliases': []}, + '23f8': {'canonical_name': 'pause', 'aliases': []}, + '23ef': {'canonical_name': 'play_pause', 'aliases': []}, + # stop taken by People/118 + '23f9': {'canonical_name': 'stop_button', 'aliases': []}, + '23fa': {'canonical_name': 'record', 'aliases': []}, + '23ed': {'canonical_name': 'next_track', 'aliases': ['skip_forward']}, + '23ee': {'canonical_name': 'previous_track', 'aliases': ['skip_back']}, + '23e9': {'canonical_name': 'fast_forward', 'aliases': []}, + '23ea': {'canonical_name': 'rewind', 'aliases': ['fast_reverse']}, + '23eb': {'canonical_name': 'double_up', 'aliases': ['fast_up']}, + '23ec': {'canonical_name': 'double_down', 'aliases': ['fast_down']}, + '25c0': {'canonical_name': 'play_reverse', 'aliases': []}, + '1f53c': {'canonical_name': 'upvote', 'aliases': ['up_button', 'increase']}, + '1f53d': {'canonical_name': 'downvote', 'aliases': ['down_button', 'decrease']}, + '27a1': {'canonical_name': 'right', 'aliases': ['east']}, + '2b05': {'canonical_name': 'left', 'aliases': ['west']}, + '2b06': {'canonical_name': 'up', 'aliases': ['north']}, + '2b07': {'canonical_name': 'down', 'aliases': ['south']}, + '2197': {'canonical_name': 'upper_right', 'aliases': ['north_east']}, + '2198': {'canonical_name': 'lower_right', 'aliases': ['south_east']}, + '2199': {'canonical_name': 'lower_left', 'aliases': ['south_west']}, + '2196': {'canonical_name': 'upper_left', 'aliases': ['north_west']}, + '2195': {'canonical_name': 'up_down', 'aliases': []}, + '2194': {'canonical_name': 'left_right', 'aliases': ['swap']}, + '21aa': {'canonical_name': 'forward', 'aliases': ['right_hook']}, + '21a9': {'canonical_name': 'reply', 'aliases': ['left_hook']}, + '2934': {'canonical_name': 'heading_up', 'aliases': []}, + '2935': {'canonical_name': 'heading_down', 'aliases': []}, + '1f500': {'canonical_name': 'shuffle', 'aliases': []}, + '1f501': {'canonical_name': 'repeat', 'aliases': []}, + '1f502': {'canonical_name': 'repeat_one', 'aliases': []}, + '1f504': {'canonical_name': 'counterclockwise', 'aliases': ['return']}, + '1f503': {'canonical_name': 'clockwise', 'aliases': []}, + '1f3b5': {'canonical_name': 'music', 'aliases': []}, + '1f3b6': {'canonical_name': 'musical_notes', 'aliases': []}, + '2795': {'canonical_name': 'plus', 'aliases': ['add']}, + '2796': {'canonical_name': 'minus', 'aliases': ['subtract']}, + '2797': {'canonical_name': 'division', 'aliases': ['divide']}, + '2716': {'canonical_name': 'multiplication', 'aliases': ['multiply']}, + '1f4b2': {'canonical_name': 'dollars', 'aliases': []}, + # There is no other exchange, so might as well generalize this + '1f4b1': {'canonical_name': 'exchange', 'aliases': []}, + '2122': {'canonical_name': 'tm', 'aliases': ['trademark']}, + '3030': {'canonical_name': 'wavy_dash', 'aliases': []}, + '27b0': {'canonical_name': 'loop', 'aliases': []}, + # https://emojipedia.org/double-curly-loop/ + '27bf': {'canonical_name': 'double_loop', 'aliases': ['voicemail']}, + '1f51a': {'canonical_name': 'end', 'aliases': []}, + '1f519': {'canonical_name': 'back', 'aliases': []}, + '1f51b': {'canonical_name': 'on', 'aliases': []}, + '1f51d': {'canonical_name': 'top', 'aliases': []}, + '1f51c': {'canonical_name': 'soon', 'aliases': []}, + '2714': {'canonical_name': 'check_mark', 'aliases': []}, + '2611': {'canonical_name': 'checkbox', 'aliases': []}, + '1f518': {'canonical_name': 'radio_button', 'aliases': []}, + '26aa': {'canonical_name': 'white_circle', 'aliases': []}, + '26ab': {'canonical_name': 'black_circle', 'aliases': []}, + '1f534': {'canonical_name': 'red_circle', 'aliases': []}, + '1f535': {'canonical_name': 'blue_circle', 'aliases': []}, + '1f53a': {'canonical_name': 'red_triangle_up', 'aliases': []}, + '1f53b': {'canonical_name': 'red_triangle_down', 'aliases': []}, + '1f538': {'canonical_name': 'small_orange_diamond', 'aliases': []}, + '1f539': {'canonical_name': 'small_blue_diamond', 'aliases': []}, + '1f536': {'canonical_name': 'large_orange_diamond', 'aliases': []}, + '1f537': {'canonical_name': 'large_blue_diamond', 'aliases': []}, + '1f533': {'canonical_name': 'black_and_white_square', 'aliases': []}, + '1f532': {'canonical_name': 'white_and_black_square', 'aliases': []}, + '25aa': {'canonical_name': 'black_small_square', 'aliases': []}, + '25ab': {'canonical_name': 'white_small_square', 'aliases': []}, + '25fe': {'canonical_name': 'black_medium_small_square', 'aliases': []}, + '25fd': {'canonical_name': 'white_medium_small_square', 'aliases': []}, + '25fc': {'canonical_name': 'black_medium_square', 'aliases': []}, + '25fb': {'canonical_name': 'white_medium_square', 'aliases': []}, + '2b1b': {'canonical_name': 'black_large_square', 'aliases': []}, + '2b1c': {'canonical_name': 'white_large_square', 'aliases': []}, + '1f508': {'canonical_name': 'speaker', 'aliases': []}, + '1f507': {'canonical_name': 'mute', 'aliases': ['no_sound']}, + '1f509': {'canonical_name': 'softer', 'aliases': []}, + '1f50a': {'canonical_name': 'louder', 'aliases': ['sound']}, + '1f514': {'canonical_name': 'notifications', 'aliases': ['bell']}, + '1f515': {'canonical_name': 'mute_notifications', 'aliases': []}, + '1f4e3': {'canonical_name': 'megaphone', 'aliases': ['shout']}, + '1f4e2': {'canonical_name': 'loudspeaker', 'aliases': ['bullhorn']}, + '1f4ac': {'canonical_name': 'umm', 'aliases': ['speech_balloon']}, + '1f5e8': {'canonical_name': 'speech_bubble', 'aliases': []}, + '1f4ad': {'canonical_name': 'thought', 'aliases': ['dream']}, + '1f5ef': {'canonical_name': 'anger_bubble', 'aliases': []}, + '2660': {'canonical_name': 'spades', 'aliases': []}, + '2663': {'canonical_name': 'clubs', 'aliases': []}, + '2665': {'canonical_name': 'hearts', 'aliases': []}, + '2666': {'canonical_name': 'diamonds', 'aliases': []}, + '1f0cf': {'canonical_name': 'joker', 'aliases': []}, + '1f3b4': {'canonical_name': 'playing_cards', 'aliases': []}, + '1f004': {'canonical_name': 'mahjong', 'aliases': []}, + # The only use I can think of for so many clocks is to be able to use them + # to vote on times and such in emoji reactions. But a) the experience is + # not that great (the images are too small), b) there are issues with + # 24-hour time (used in many countries), like what is 00:30 or 01:00 + # called, c) it's hard to make the compose typeahead experience great, and + # d) we should have a dedicated time voting widget that takes care of + # timezone and locale issues, and uses a digital representation. + # '1f550': {'canonical_name': 'X', 'aliases': ['clock1']}, + # '1f551': {'canonical_name': 'X', 'aliases': ['clock2']}, + # '1f552': {'canonical_name': 'X', 'aliases': ['clock3']}, + # '1f553': {'canonical_name': 'X', 'aliases': ['clock4']}, + # '1f554': {'canonical_name': 'X', 'aliases': ['clock5']}, + # '1f555': {'canonical_name': 'X', 'aliases': ['clock6']}, + # '1f556': {'canonical_name': 'X', 'aliases': ['clock7']}, + # seems like the best choice for time + '1f557': {'canonical_name': 'time', 'aliases': ['clock']}, + # '1f558': {'canonical_name': 'X', 'aliases': ['clock9']}, + # '1f559': {'canonical_name': 'X', 'aliases': ['clock10']}, + # '1f55a': {'canonical_name': 'X', 'aliases': ['clock11']}, + # '1f55b': {'canonical_name': 'X', 'aliases': ['clock12']}, + # '1f55c': {'canonical_name': 'X', 'aliases': ['clock130']}, + # '1f55d': {'canonical_name': 'X', 'aliases': ['clock230']}, + # '1f55e': {'canonical_name': 'X', 'aliases': ['clock330']}, + # '1f55f': {'canonical_name': 'X', 'aliases': ['clock430']}, + # '1f560': {'canonical_name': 'X', 'aliases': ['clock530']}, + # '1f561': {'canonical_name': 'X', 'aliases': ['clock630']}, + # '1f562': {'canonical_name': 'X', 'aliases': ['clock730']}, + # '1f563': {'canonical_name': 'X', 'aliases': ['clock830']}, + # '1f564': {'canonical_name': 'X', 'aliases': ['clock930']}, + # '1f565': {'canonical_name': 'X', 'aliases': ['clock1030']}, + # '1f566': {'canonical_name': 'X', 'aliases': ['clock1130']}, + # '1f567': {'canonical_name': 'X', 'aliases': ['clock1230']}, + '1f3f3': {'canonical_name': 'white_flag', 'aliases': ['surrender']}, + '1f3f4': {'canonical_name': 'black_flag', 'aliases': []}, + '1f3c1': {'canonical_name': 'checkered_flag', 'aliases': ['race', 'go', 'start']}, + '1f6a9': {'canonical_name': 'triangular_flag', 'aliases': []}, + # solidarity from iemoji + '1f38c': {'canonical_name': 'crossed_flags', 'aliases': ['solidarity']}, +} # type: Dict[str, Dict[str, Any]]