;; tinmop: a multiprotocol client ;; Copyright ยฉ cage ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. ;; If not, see [[http://www.gnu.org/licenses/][http://www.gnu.org/licenses/]]. (in-package :emoji-shortcodes) (defparameter *shortcodes-db* '((":brown_square:" . "๐ŸŸซ") (":purple_square:" . "๐ŸŸช") (":blue_square:" . "๐ŸŸฆ") (":green_square:" . "๐ŸŸฉ") (":yellow_square:" . "๐ŸŸจ") (":orange_square:" . "๐ŸŸง") (":red_square:" . "๐ŸŸฅ") (":brown_circle:" . "๐ŸŸค") (":purple_circle:" . "๐ŸŸฃ") (":green_circle:" . "๐ŸŸข") (":yellow_circle:" . "๐ŸŸก") (":orange_circle:" . "๐ŸŸ ") (":razor:" . "๐Ÿช’") (":chair:" . "๐Ÿช‘") (":stethoscope:" . "๐Ÿฉบ") (":bandaid:" . "๐Ÿฉน") (":blood_drop:" . "๐Ÿฉธ") (":probing_cane:" . "๐Ÿฆฏ") (":axe:" . "๐Ÿช“") (":diya_lamp:" . "๐Ÿช”") (":banjo:" . "๐Ÿช•") (":ballet_shoes:" . "๐Ÿฉฐ") (":shorts:" . "๐Ÿฉณ") (":briefs:" . "๐Ÿฉฒ") (":one_piece_swimsuit:" . "๐Ÿฉฑ") (":sari:" . "๐Ÿฅป") (":safety_vest:" . "๐Ÿฆบ") (":kite:" . "๐Ÿช") (":yoyo:" . "๐Ÿช€") (":diving_mask:" . "๐Ÿคฟ") (":ringed_planet:" . "๐Ÿช") (":parachute:" . "๐Ÿช‚") (":auto_rickshaw:" . "๐Ÿ›บ") (":motor_wheelchair:" . "๐Ÿฆผ") (":wheelchair:" . "๐Ÿฆฝ") (":hindu_temple:" . "๐Ÿ›•") (":ice:" . "๐ŸงŠ") (":mate:" . "๐Ÿง‰") (":beverage_box:" . "๐Ÿงƒ") (":oyster:" . "๐Ÿฆช") (":butter:" . "๐Ÿงˆ") (":falafel:" . "๐Ÿง†") (":waffle:" . "๐Ÿง‡") (":onion:" . "๐Ÿง…") (":garlic:" . "๐Ÿง„") (":flamingo:" . "๐Ÿฆฉ") (":skunk:" . "๐Ÿฆจ") (":otter:" . "๐Ÿฆฆ") (":sloth:" . "๐Ÿฆฅ") (":guide_dog:" . "๐Ÿฆฎ") (":orangutan:" . "๐Ÿฆง") (":person_kneeling:" . "๐ŸงŽ") (":person_standing:" . "๐Ÿง") (":person_deaf:" . "๐Ÿง") (":hearing_aid:" . "๐Ÿฆป") (":mech_leg:" . "๐Ÿฆฟ") (":mech_arm:" . "๐Ÿฆพ") (":pinch:" . "๐Ÿค") (":white_heart:" . "๐Ÿค") (":brown_heart:" . "๐ŸคŽ") (":yawn:" . "๐Ÿฅฑ") (":fire_extinguisher:" . "๐Ÿงฏ") (":sponge:" . "๐Ÿงฝ") (":soap:" . "๐Ÿงผ") (":toilet_paper:" . "๐Ÿงป") (":basket:" . "๐Ÿงบ") (":broom:" . "๐Ÿงน") (":safety_pin:" . "๐Ÿงท") (":lotion:" . "๐Ÿงด") (":dna:" . "๐Ÿงฌ") (":petri_dish:" . "๐Ÿงซ") (":test_tube:" . "๐Ÿงช") (":magnet:" . "๐Ÿงฒ") (":toolbox:" . "๐Ÿงฐ") (":receipt:" . "๐Ÿงพ") (":abacus:" . "๐Ÿงฎ") (":flat_shoe:" . "๐Ÿฅฟ") (":hiking_boot:" . "๐Ÿฅพ") (":lab_coat:" . "๐Ÿฅผ") (":goggles:" . "๐Ÿฅฝ") (":yarn:" . "๐Ÿงถ") (":spool:" . "๐Ÿงต") (":teddy_bear:" . "๐Ÿงธ") (":jigsaw:" . "๐Ÿงฉ") (":nazar_amulet:" . "๐Ÿงฟ") (":lacrosse:" . "๐Ÿฅ") (":flying_disc:" . "๐Ÿฅ") (":softball:" . "๐ŸฅŽ") (":red_envelope:" . "๐Ÿงง") (":firecracker:" . "๐Ÿงจ") (":luggage:" . "๐Ÿงณ") (":skateboard:" . "๐Ÿ›น") (":brick:" . "๐Ÿงฑ") (":compass:" . "๐Ÿงญ") (":cupcake:" . "๐Ÿง") (":lobster:" . "๐Ÿฆž") (":moon_cake:" . "๐Ÿฅฎ") (":salt:" . "๐Ÿง‚") (":bagel:" . "๐Ÿฅฏ") (":leafy_green:" . "๐Ÿฅฌ") (":mango:" . "๐Ÿฅญ") (":microbe:" . "๐Ÿฆ ") (":mosquito:" . "๐ŸฆŸ") (":parrot:" . "๐Ÿฆœ") (":peacock:" . "๐Ÿฆš") (":swan:" . "๐Ÿฆข") (":badger:" . "๐Ÿฆก") (":kangaroo:" . "๐Ÿฆ˜") (":hippo:" . "๐Ÿฆ›") (":llama:" . "๐Ÿฆ™") (":raccoon:" . "๐Ÿฆ") (":bald:" . "๐Ÿฆฒ") (":white_hair:" . "๐Ÿฆณ") (":curly_hair:" . "๐Ÿฆฑ") (":red_hair:" . "๐Ÿฆฐ") (":villain:" . "๐Ÿฆน") (":hero:" . "๐Ÿฆธ") (":bone:" . "๐Ÿฆด") (":tooth:" . "๐Ÿฆท") (":foot:" . "๐Ÿฆถ") (":leg:" . "๐Ÿฆต") (":pleading:" . "๐Ÿฅบ") (":partying:" . "๐Ÿฅณ") (":woozy:" . "๐Ÿฅด") (":freezing:" . "๐Ÿฅถ") (":overheating:" . "๐Ÿฅต") (":love:" . "๐Ÿฅฐ") (":billed_cap:" . "๐Ÿงข") (":socks:" . "๐Ÿงฆ") (":coat:" . "๐Ÿงฅ") (":gloves:" . "๐Ÿงค") (":scarf:" . "๐Ÿงฃ") (":curling_stone:" . "๐ŸฅŒ") (":sled:" . "๐Ÿ›ท") (":flying_saucer:" . "๐Ÿ›ธ") (":chopsticks:" . "๐Ÿฅข") (":cup_straw:" . "๐Ÿฅค") (":pie:" . "๐Ÿฅง") (":takeout_box:" . "๐Ÿฅก") (":fortune_cookie:" . "๐Ÿฅ ") (":dumpling:" . "๐ŸฅŸ") (":canned_food:" . "๐Ÿฅซ") (":bowl_spoon:" . "๐Ÿฅฃ") (":sandwich:" . "๐Ÿฅช") (":cut_of_meat:" . "๐Ÿฅฉ") (":pretzel:" . "๐Ÿฅจ") (":broccoli:" . "๐Ÿฅฆ") (":coconut:" . "๐Ÿฅฅ") (":cricket:" . "๐Ÿฆ—") (":trex:" . "๐Ÿฆ–") (":sauropod:" . "๐Ÿฆ•") (":hedgehog:" . "๐Ÿฆ”") (":giraffe:" . "๐Ÿฆ’") (":zebra:" . "๐Ÿฆ“") (":person_lotus_position:" . "๐Ÿง˜") (":person_climbing:" . "๐Ÿง—") (":person_steamy_room:" . "๐Ÿง–") (":zombie:" . "๐ŸงŸ") (":genie:" . "๐Ÿงž") (":elf:" . "๐Ÿง") (":merperson:" . "๐Ÿงœ") (":vampire:" . "๐Ÿง›") (":fairy:" . "๐Ÿงš") (":mage:" . "๐Ÿง™") (":breast_feeding:" . "๐Ÿคฑ") (":woman_headscarf:" . "๐Ÿง•") (":older_adult:" . "๐Ÿง“") (":bearded_person:" . "๐Ÿง”") (":adult:" . "๐Ÿง‘") (":child:" . "๐Ÿง’") (":brain:" . "๐Ÿง ") (":palms_up:" . "๐Ÿคฒ") (":love_you_gesture:" . "๐ŸคŸ") (":orange_heart:" . "๐Ÿงก") (":censored:" . "๐Ÿคฌ") (":monocle:" . "๐Ÿง") (":shocked:" . "๐Ÿคฏ") (":vomiting:" . "๐Ÿคฎ") (":contempt:" . "๐Ÿคจ") (":shushing:" . "๐Ÿคซ") (":gasp:" . "๐Ÿคญ") (":crazy:" . "๐Ÿคช") (":starstruck:" . "๐Ÿคฉ") (":shopping_cart:" . "๐Ÿ›’") (":drum:" . "๐Ÿฅ") (":goal:" . "๐Ÿฅ…") (":gi:" . "๐Ÿฅ‹") (":boxing_glove:" . "๐ŸฅŠ") (":third_place:" . "๐Ÿฅ‰") (":second_place:" . "๐Ÿฅˆ") (":first_place:" . "๐Ÿฅ‡") (":canoe:" . "๐Ÿ›ถ") (":stop_sign:" . "๐Ÿ›‘") (":scooter:" . "๐Ÿ›ด") (":motor_scooter:" . "๐Ÿ›ต") (":spoon:" . "๐Ÿฅ„") (":tumbler_glass:" . "๐Ÿฅƒ") (":champagne_glass:" . "๐Ÿฅ‚") (":milk:" . "๐Ÿฅ›") (":squid:" . "๐Ÿฆ‘") (":shrimp:" . "๐Ÿฆ") (":salad:" . "๐Ÿฅ—") (":shallow_pan_of_food:" . "๐Ÿฅ˜") (":egg:" . "๐Ÿฅš") (":stuffed_flatbread:" . "๐Ÿฅ™") (":bacon:" . "๐Ÿฅ“") (":pancakes:" . "๐Ÿฅž") (":french_bread:" . "๐Ÿฅ–") (":croissant:" . "๐Ÿฅ") (":peanuts:" . "๐Ÿฅœ") (":cucumber:" . "๐Ÿฅ’") (":carrot:" . "๐Ÿฅ•") (":potato:" . "๐Ÿฅ”") (":avocado:" . "๐Ÿฅ‘") (":kiwi:" . "๐Ÿฅ") (":wilted_rose:" . "๐Ÿฅ€") (":butterfly:" . "๐Ÿฆ‹") (":shark:" . "๐Ÿฆˆ") (":lizard:" . "๐ŸฆŽ") (":owl:" . "๐Ÿฆ‰") (":duck:" . "๐Ÿฆ†") (":eagle:" . "๐Ÿฆ…") (":bat:" . "๐Ÿฆ‡") (":rhino:" . "๐Ÿฆ") (":deer:" . "๐ŸฆŒ") (":fox_face:" . "๐ŸฆŠ") (":gorilla:" . "๐Ÿฆ") (":person_juggling:" . "๐Ÿคน") (":person_handball:" . "๐Ÿคพ") (":person_water_polo:" . "๐Ÿคฝ") (":people_wrestling:" . "๐Ÿคผ") (":person_cartwheel:" . "๐Ÿคธ") (":person_fencing:" . "๐Ÿคบ") (":man_dancing:" . "๐Ÿ•บ") (":mrs_claus:" . "๐Ÿคถ") (":pregnant_woman:" . "๐Ÿคฐ") (":man_tuxedo:" . "๐Ÿคต") (":prince:" . "๐Ÿคด") (":person_shrugging:" . "๐Ÿคท") (":person_facepalming:" . "๐Ÿคฆ") (":selfie:" . "๐Ÿคณ") (":handshake:" . "๐Ÿค") (":right_facing_fist:" . "๐Ÿคœ") (":left_facing_fist:" . "๐Ÿค›") (":call_me:" . "๐Ÿค™") (":fingers_crossed:" . "๐Ÿคž") (":raised_backhand:" . "๐Ÿคš") (":black_heart:" . "๐Ÿ–ค") (":clown:" . "๐Ÿคก") (":cowboy:" . "๐Ÿค ") (":sneezing:" . "๐Ÿคง") (":nauseated:" . "๐Ÿคข") (":drooling:" . "๐Ÿคค") (":lying:" . "๐Ÿคฅ") (":entertained:" . "๐Ÿคฃ") (":black_flag:" . "๐Ÿด") (":crossed_flags:" . "๐ŸŽŒ") (":triangle_flag:" . "๐Ÿšฉ") (":checkered_flag:" . "๐Ÿ") (":black_square_button:" . "๐Ÿ”ฒ") (":white_square_button:" . "๐Ÿ”ณ") (":radio_button:" . "๐Ÿ”˜") (":diamond_dot:" . "๐Ÿ’ ") (":down_red_triangle:" . "๐Ÿ”ป") (":up_red_triangle:" . "๐Ÿ”บ") (":small_blue_diamond:" . "๐Ÿ”น") (":small_orange_diamond:" . "๐Ÿ”ธ") (":large_blue_diamond:" . "๐Ÿ”ท") (":large_orange_diamond:" . "๐Ÿ”ถ") (":blue_circle:" . "๐Ÿ”ต") (":red_circle:" . "๐Ÿ”ด") (":ja_no_vacancy:" . "๐Ÿˆต") (":ja_open_for_business:" . "๐Ÿˆบ") (":ja_vacancy:" . "๐Ÿˆณ") (":ja_passing_grade:" . "๐Ÿˆด") (":ja_application:" . "๐Ÿˆธ") (":ja_acceptable:" . "๐Ÿ‰‘") (":ja_prohibited:" . "๐Ÿˆฒ") (":ja_discount:" . "๐Ÿˆน") (":ja_bargain:" . "๐Ÿ‰") (":ja_not_free_of_carge:" . "๐Ÿˆถ") (":ja_here:" . "๐Ÿˆ") (":vs:" . "๐Ÿ†š") (":up:" . "๐Ÿ†™") (":sos:" . "๐Ÿ†˜") (":ok:" . "๐Ÿ†—") (":ng:" . "๐Ÿ†–") (":new:" . "๐Ÿ†•") (":id:" . "๐Ÿ†”") (":free:" . "๐Ÿ†“") (":cool:" . "๐Ÿ†’") (":cl:" . "๐Ÿ†‘") (":ab_blood:" . "๐Ÿ†Ž") (":abc:" . "๐Ÿ”ค") (":symbols:" . "๐Ÿ”ฃ") (":1234:" . "๐Ÿ”ข") (":abcd:" . "๐Ÿ”ก") (":upper_abcd:" . "๐Ÿ” ") (":ten:" . "๐Ÿ”Ÿ") (":white_exclamation:" . "โ•") (":white_question:" . "โ”") (":double_curly_loop:" . "โžฟ") (":curly_loop:" . "โžฐ") (":division:" . "โž—") (":minus:" . "โž–") (":plus:" . "โž•") (":cross_mark_button:" . "โŽ") (":x:" . "โŒ") (":white_check_mark:" . "โœ…") (":ja_beginner:" . "๐Ÿ”ฐ") (":name_badge:" . "๐Ÿ“›") (":trident:" . "๐Ÿ”ฑ") (":mobile_phone_off:" . "๐Ÿ“ด") (":vibration_mode:" . "๐Ÿ“ณ") (":signal_strength:" . "๐Ÿ“ถ") (":bright:" . "๐Ÿ”†") (":dim:" . "๐Ÿ”…") (":cinema:" . "๐ŸŽฆ") (":fast_down_button:" . "โฌ") (":down_button:" . "๐Ÿ”ฝ") (":fast_up_button:" . "โซ") (":up_button:" . "๐Ÿ”ผ") (":repeat_single:" . "๐Ÿ”‚") (":repeat:" . "๐Ÿ”") (":shuffle:" . "๐Ÿ”€") (":ophiuchus:" . "โ›Ž") (":six_pointed_star:" . "๐Ÿ”ฏ") (":menorah:" . "๐Ÿ•Ž") (":place_of_worship:" . "๐Ÿ›") (":top:" . "๐Ÿ”") (":soon:" . "๐Ÿ”œ") (":on:" . "๐Ÿ”›") (":end:" . "๐Ÿ”š") (":back:" . "๐Ÿ”™") (":counter_clockwise:" . "๐Ÿ”„") (":clockwise:" . "๐Ÿ”ƒ") (":underage:" . "๐Ÿ”ž") (":no_mobile_phones:" . "๐Ÿ“ต") (":no_pedestrians:" . "๐Ÿšท") (":non_potable_water:" . "๐Ÿšฑ") (":do_not_litter:" . "๐Ÿšฏ") (":no_bicycles:" . "๐Ÿšณ") (":no_entry_sign:" . "๐Ÿšซ") (":children_crossing:" . "๐Ÿšธ") (":left_luggage:" . "๐Ÿ›…") (":baggage_claim:" . "๐Ÿ›„") (":customs:" . "๐Ÿ›ƒ") (":passport_control:" . "๐Ÿ›‚") (":wc:" . "๐Ÿšพ") (":restroom:" . "๐Ÿšป") (":potable_water:" . "๐Ÿšฐ") (":litter_bin:" . "๐Ÿšฎ") (":atm:" . "๐Ÿง") (":moai:" . "๐Ÿ—ฟ") (":cigarette:" . "๐Ÿšฌ") (":bathtub:" . "๐Ÿ›") (":shower:" . "๐Ÿšฟ") (":toilet:" . "๐Ÿšฝ") (":door:" . "๐Ÿšช") (":pill:" . "๐Ÿ’Š") (":syringe:" . "๐Ÿ’‰") (":satellite_antenna:" . "๐Ÿ“ก") (":telescope:" . "๐Ÿ”ญ") (":microscope:" . "๐Ÿ”ฌ") (":link:" . "๐Ÿ”—") (":nut_and_bolt:" . "๐Ÿ”ฉ") (":wrench:" . "๐Ÿ”ง") (":bow:" . "๐Ÿน") (":gun:" . "๐Ÿ”ซ") (":hammer:" . "๐Ÿ”จ") (":key:" . "๐Ÿ”‘") (":locked_key:" . "๐Ÿ”") (":locked_pen:" . "๐Ÿ”") (":triangular_ruler:" . "๐Ÿ“") (":straight_ruler:" . "๐Ÿ“") (":paperclip:" . "๐Ÿ“Ž") (":round_pushpin:" . "๐Ÿ“") (":pushpin:" . "๐Ÿ“Œ") (":bar_chart:" . "๐Ÿ“Š") (":chart_down:" . "๐Ÿ“‰") (":chart_up:" . "๐Ÿ“ˆ") (":card_index:" . "๐Ÿ“‡") (":torn_calendar:" . "๐Ÿ“†") (":date:" . "๐Ÿ“…") (":open_file_folder:" . "๐Ÿ“‚") (":file_folder:" . "๐Ÿ“") (":briefcase:" . "๐Ÿ’ผ") (":memo:" . "๐Ÿ“") (":postbox:" . "๐Ÿ“ฎ") (":envelope_arrow:" . "๐Ÿ“ฉ") (":incoming_envelope:" . "๐Ÿ“จ") (":email:" . "๐Ÿ“ง") (":dollar_sign:" . "๐Ÿ’ฒ") (":currency_exchange:" . "๐Ÿ’ฑ") (":ja_chart:" . "๐Ÿ’น") (":money_wings:" . "๐Ÿ’ธ") (":pound:" . "๐Ÿ’ท") (":euro:" . "๐Ÿ’ถ") (":dollar:" . "๐Ÿ’ต") (":yen:" . "๐Ÿ’ด") (":bookmark:" . "๐Ÿ”–") (":bookmark_tabs:" . "๐Ÿ“‘") (":newspaper:" . "๐Ÿ“ฐ") (":page_facing_up:" . "๐Ÿ“„") (":scroll:" . "๐Ÿ“œ") (":page_curl:" . "๐Ÿ“ƒ") (":ledger:" . "๐Ÿ“’") (":notebook:" . "๐Ÿ““") (":orange_book:" . "๐Ÿ“™") (":blue_book:" . "๐Ÿ“˜") (":green_book:" . "๐Ÿ“—") (":book:" . "๐Ÿ“–") (":closed_book:" . "๐Ÿ“•") (":decorative_notebook:" . "๐Ÿ“”") (":red_lantern:" . "๐Ÿฎ") (":flashlight:" . "๐Ÿ”ฆ") (":bulb:" . "๐Ÿ’ก") (":mag_right:" . "๐Ÿ”Ž") (":vhs:" . "๐Ÿ“ผ") (":camera_flash:" . "๐Ÿ“ธ") (":movie_camera:" . "๐ŸŽฅ") (":dvd:" . "๐Ÿ“€") (":floppy_disk:" . "๐Ÿ’พ") (":minidisc:" . "๐Ÿ’ฝ") (":electric_plug:" . "๐Ÿ”Œ") (":battery:" . "๐Ÿ”‹") (":fax:" . "๐Ÿ“ ") (":telephone_receiver:" . "๐Ÿ“ž") (":mobile_calling:" . "๐Ÿ“ฒ") (":mobile:" . "๐Ÿ“ฑ") (":violin:" . "๐ŸŽป") (":trumpet:" . "๐ŸŽบ") (":musical_keyboard:" . "๐ŸŽน") (":guitar:" . "๐ŸŽธ") (":saxophone:" . "๐ŸŽท") (":microphone:" . "๐ŸŽค") (":musical_notes:" . "๐ŸŽถ") (":musical_note:" . "๐ŸŽต") (":musical_score:" . "๐ŸŽผ") (":no_bell:" . "๐Ÿ”•") (":bell:" . "๐Ÿ””") (":postal_horn:" . "๐Ÿ“ฏ") (":megaphone:" . "๐Ÿ“ฃ") (":loudspeaker:" . "๐Ÿ“ข") (":loud_sound:" . "๐Ÿ”Š") (":sound:" . "๐Ÿ”‰") (":mute:" . "๐Ÿ”‡") (":gem:" . "๐Ÿ’Ž") (":ring:" . "๐Ÿ’") (":lipstick:" . "๐Ÿ’„") (":prayer_beads:" . "๐Ÿ“ฟ") (":top_hat:" . "๐ŸŽฉ") (":womans_hat:" . "๐Ÿ‘’") (":crown:" . "๐Ÿ‘‘") (":womans_boot:" . "๐Ÿ‘ข") (":womans_sandal:" . "๐Ÿ‘ก") (":high_heel:" . "๐Ÿ‘ ") (":sneaker:" . "๐Ÿ‘Ÿ") (":dress_shoe:" . "๐Ÿ‘ž") (":backpack:" . "๐ŸŽ’") (":pouch:" . "๐Ÿ‘") (":handbag:" . "๐Ÿ‘œ") (":purse:" . "๐Ÿ‘›") (":blouse:" . "๐Ÿ‘š") (":bikini:" . "๐Ÿ‘™") (":kimono:" . "๐Ÿ‘˜") (":dress:" . "๐Ÿ‘—") (":jeans:" . "๐Ÿ‘–") (":shirt:" . "๐Ÿ‘•") (":necktie:" . "๐Ÿ‘”") (":art:" . "๐ŸŽจ") (":flower_cards:" . "๐ŸŽด") (":black_joker:" . "๐Ÿƒ") (":game_die:" . "๐ŸŽฒ") (":slot_machine:" . "๐ŸŽฐ") (":crystal_ball:" . "๐Ÿ”ฎ") (":8ball:" . "๐ŸŽฑ") (":dart:" . "๐ŸŽฏ") (":ski:" . "๐ŸŽฟ") (":running_shirt:" . "๐ŸŽฝ") (":fishing_pole:" . "๐ŸŽฃ") (":badminton:" . "๐Ÿธ") (":ping_pong:" . "๐Ÿ“") (":hockey:" . "๐Ÿ’") (":field_hockey:" . "๐Ÿ‘") (":cricket_game:" . "๐Ÿ") (":bowling:" . "๐ŸŽณ") (":tennis:" . "๐ŸŽพ") (":rugby:" . "๐Ÿ‰") (":football:" . "๐Ÿˆ") (":volleyball:" . "๐Ÿ") (":basketball:" . "๐Ÿ€") (":medal:" . "๐Ÿ…") (":ticket:" . "๐ŸŽซ") (":gift:" . "๐ŸŽ") (":ribbon:" . "๐ŸŽ€") (":moon_ceremony:" . "๐ŸŽ‘") (":wind_chime:" . "๐ŸŽ") (":carp_streamer:" . "๐ŸŽ") (":dolls:" . "๐ŸŽŽ") (":bamboo:" . "๐ŸŽ") (":tanabata_tree:" . "๐ŸŽ‹") (":confetti_ball:" . "๐ŸŽŠ") (":tada:" . "๐ŸŽ‰") (":balloon:" . "๐ŸŽˆ") (":sparkles:" . "โœจ") (":sparkler:" . "๐ŸŽ‡") (":fireworks:" . "๐ŸŽ†") (":christmas_tree:" . "๐ŸŽ„") (":jack_o_lantern:" . "๐ŸŽƒ") (":ocean:" . "๐ŸŒŠ") (":droplet:" . "๐Ÿ’ง") (":fire:" . "๐Ÿ”ฅ") (":closed_umbrella:" . "๐ŸŒ‚") (":rainbow:" . "๐ŸŒˆ") (":cyclone:" . "๐ŸŒ€") (":milky_way:" . "๐ŸŒŒ") (":star3:" . "๐ŸŒ ") (":star2:" . "๐ŸŒŸ") (":sun_face:" . "๐ŸŒž") (":full_moon_face:" . "๐ŸŒ") (":first_quarter_moon_face:" . "๐ŸŒ›") (":new_moon_face:" . "๐ŸŒš") (":crescent_moon:" . "๐ŸŒ™") (":waning_crescent_moon:" . "๐ŸŒ˜") (":last_quarter_moon:" . "๐ŸŒ—") (":waning_gibbous_moon:" . "๐ŸŒ–") (":waxing_gibbous_moon:" . "๐ŸŒ”") (":first_quarter_moon:" . "๐ŸŒ“") (":waxing_crescent_moon:" . "๐ŸŒ’") (":new_moon:" . "๐ŸŒ‘") (":alarm_clock:" . "โฐ") (":rocket:" . "๐Ÿš€") (":aerial_tramway:" . "๐Ÿšก") (":mountain_cableway:" . "๐Ÿš ") (":suspension_railway:" . "๐ŸšŸ") (":helicopter:" . "๐Ÿš") (":seat:" . "๐Ÿ’บ") (":airplane_arriving:" . "๐Ÿ›ฌ") (":airplane_departure:" . "๐Ÿ›ซ") (":ship:" . "๐Ÿšข") (":speedboat:" . "๐Ÿšค") (":construction:" . "๐Ÿšง") (":vertical_traffic_light:" . "๐Ÿšฆ") (":traffic_light:" . "๐Ÿšฅ") (":rotating_light:" . "๐Ÿšจ") (":bus_stop:" . "๐Ÿš") (":tractor:" . "๐Ÿšœ") (":lorry:" . "๐Ÿš›") (":truck:" . "๐Ÿšš") (":blue_car:" . "๐Ÿš™") (":red_car:" . "๐Ÿš—") (":oncoming_taxi:" . "๐Ÿš–") (":taxi:" . "๐Ÿš•") (":police_car:" . "๐Ÿš“") (":fire_engine:" . "๐Ÿš’") (":minibus:" . "๐Ÿš") (":trolleybus:" . "๐ŸšŽ") (":bus:" . "๐ŸšŒ") (":tram_car:" . "๐Ÿš‹") (":mountain_railway:" . "๐Ÿšž") (":monorail:" . "๐Ÿš") (":tram:" . "๐ŸšŠ") (":station:" . "๐Ÿš‰") (":light_rail:" . "๐Ÿšˆ") (":train:" . "๐Ÿš†") (":bullettrain:" . "๐Ÿš…") (":bullettrain_side:" . "๐Ÿš„") (":railway_car:" . "๐Ÿšƒ") (":steam_locomotive:" . "๐Ÿš‚") (":circus_tent:" . "๐ŸŽช") (":barber:" . "๐Ÿ’ˆ") (":roller_coaster:" . "๐ŸŽข") (":ferris_wheel:" . "๐ŸŽก") (":carousel_horse:" . "๐ŸŽ ") (":bridge_at_night:" . "๐ŸŒ‰") (":sunset:" . "๐ŸŒ‡") (":dusk:" . "๐ŸŒ†") (":sunrise:" . "๐ŸŒ…") (":sunrise_over_mountains:" . "๐ŸŒ„") (":night_stars:" . "๐ŸŒƒ") (":foggy:" . "๐ŸŒ") (":kaaba:" . "๐Ÿ•‹") (":synagogue:" . "๐Ÿ•") (":mosque:" . "๐Ÿ•Œ") (":statue_of_liberty:" . "๐Ÿ—ฝ") (":tokyo_tower:" . "๐Ÿ—ผ") (":wedding:" . "๐Ÿ’’") (":castle:" . "๐Ÿฐ") (":japanese_castle:" . "๐Ÿฏ") (":department_store:" . "๐Ÿฌ") (":school:" . "๐Ÿซ") (":convenience_store:" . "๐Ÿช") (":love_hotel:" . "๐Ÿฉ") (":hotel:" . "๐Ÿจ") (":bank:" . "๐Ÿฆ") (":hospital:" . "๐Ÿฅ") (":post_office:" . "๐Ÿค") (":ja_post_office:" . "๐Ÿฃ") (":office:" . "๐Ÿข") (":house_garden:" . "๐Ÿก") (":mount_fuji:" . "๐Ÿ—ป") (":volcano:" . "๐ŸŒ‹") (":japan:" . "๐Ÿ—พ") (":globe:" . "๐ŸŒ") (":amphora:" . "๐Ÿบ") (":knife:" . "๐Ÿ”ช") (":utensils:" . "๐Ÿด") (":beers:" . "๐Ÿป") (":beer:" . "๐Ÿบ") (":tropical_drink:" . "๐Ÿน") (":wine_glass:" . "๐Ÿท") (":champagne:" . "๐Ÿพ") (":sake:" . "๐Ÿถ") (":tea:" . "๐Ÿต") (":baby_bottle:" . "๐Ÿผ") (":honey_pot:" . "๐Ÿฏ") (":custard:" . "๐Ÿฎ") (":lollipop:" . "๐Ÿญ") (":candy:" . "๐Ÿฌ") (":chocolate_bar:" . "๐Ÿซ") (":cake:" . "๐Ÿฐ") (":birthday:" . "๐ŸŽ‚") (":cookie:" . "๐Ÿช") (":doughnut:" . "๐Ÿฉ") (":ice_cream:" . "๐Ÿจ") (":shaved_ice:" . "๐Ÿง") (":icecream:" . "๐Ÿฆ") (":crab:" . "๐Ÿฆ€") (":dango:" . "๐Ÿก") (":fish_cake:" . "๐Ÿฅ") (":fried_shrimp:" . "๐Ÿค") (":sushi:" . "๐Ÿฃ") (":oden:" . "๐Ÿข") (":sweet_potato:" . "๐Ÿ ") (":spaghetti:" . "๐Ÿ") (":ramen:" . "๐Ÿœ") (":curry:" . "๐Ÿ›") (":rice:" . "๐Ÿš") (":rice_ball:" . "๐Ÿ™") (":rice_cracker:" . "๐Ÿ˜") (":bento:" . "๐Ÿฑ") (":popcorn:" . "๐Ÿฟ") (":stew:" . "๐Ÿฒ") (":cooking:" . "๐Ÿณ") (":burrito:" . "๐ŸŒฏ") (":taco:" . "๐ŸŒฎ") (":hotdog:" . "๐ŸŒญ") (":pizza:" . "๐Ÿ•") (":fries:" . "๐ŸŸ") (":hamburger:" . "๐Ÿ”") (":poultry_leg:" . "๐Ÿ—") (":meat_on_bone:" . "๐Ÿ–") (":cheese:" . "๐Ÿง€") (":bread:" . "๐Ÿž") (":chestnut:" . "๐ŸŒฐ") (":mushroom:" . "๐Ÿ„") (":corn:" . "๐ŸŒฝ") (":eggplant:" . "๐Ÿ†") (":tomato:" . "๐Ÿ…") (":strawberry:" . "๐Ÿ“") (":cherries:" . "๐Ÿ’") (":peach:" . "๐Ÿ‘") (":pear:" . "๐Ÿ") (":green_apple:" . "๐Ÿ") (":apple:" . "๐ŸŽ") (":pineapple:" . "๐Ÿ") (":banana:" . "๐ŸŒ") (":lemon:" . "๐Ÿ‹") (":tangerine:" . "๐ŸŠ") (":watermelon:" . "๐Ÿ‰") (":melon:" . "๐Ÿˆ") (":grapes:" . "๐Ÿ‡") (":leaves:" . "๐Ÿƒ") (":fallen_leaf:" . "๐Ÿ‚") (":maple_leaf:" . "๐Ÿ") (":four_leaf_clover:" . "๐Ÿ€") (":herb:" . "๐ŸŒฟ") (":ear_of_rice:" . "๐ŸŒพ") (":cactus:" . "๐ŸŒต") (":palm_tree:" . "๐ŸŒด") (":deciduous_tree:" . "๐ŸŒณ") (":evergreen_tree:" . "๐ŸŒฒ") (":seedling:" . "๐ŸŒฑ") (":tulip:" . "๐ŸŒท") (":blossom:" . "๐ŸŒผ") (":sunflower:" . "๐ŸŒป") (":hibiscus:" . "๐ŸŒบ") (":rose:" . "๐ŸŒน") (":white_flower:" . "๐Ÿ’ฎ") (":cherry_blossom:" . "๐ŸŒธ") (":bouquet:" . "๐Ÿ’") (":scorpion:" . "๐Ÿฆ‚") (":beetle:" . "๐Ÿž") (":bee:" . "๐Ÿ") (":ant:" . "๐Ÿœ") (":bug:" . "๐Ÿ›") (":snail:" . "๐ŸŒ") (":shell:" . "๐Ÿš") (":octopus:" . "๐Ÿ™") (":blowfish:" . "๐Ÿก") (":tropical_fish:" . "๐Ÿ ") (":dolphin:" . "๐Ÿฌ") (":whale:" . "๐Ÿ‹") (":spouting_whale:" . "๐Ÿณ") (":dragon:" . "๐Ÿ‰") (":dragon_face:" . "๐Ÿฒ") (":snake:" . "๐Ÿ") (":turtle:" . "๐Ÿข") (":crocodile:" . "๐ŸŠ") (":frog_face:" . "๐Ÿธ") (":penguin:" . "๐Ÿง") (":hatched_chick:" . "๐Ÿฅ") (":baby_chick:" . "๐Ÿค") (":hatching_chick:" . "๐Ÿฃ") (":rooster:" . "๐Ÿ“") (":chicken:" . "๐Ÿ”") (":turkey:" . "๐Ÿฆƒ") (":feet:" . "๐Ÿพ") (":panda_face:" . "๐Ÿผ") (":koala_face:" . "๐Ÿจ") (":bear_face:" . "๐Ÿป") (":rabbit:" . "๐Ÿ‡") (":rabbit_face:" . "๐Ÿฐ") (":hamster_face:" . "๐Ÿน") (":rat:" . "๐Ÿ€") (":mouse:" . "๐Ÿ") (":mouse_face:" . "๐Ÿญ") (":elephant:" . "๐Ÿ˜") (":two_hump_camel:" . "๐Ÿซ") (":camel:" . "๐Ÿช") (":goat:" . "๐Ÿ") (":sheep:" . "๐Ÿ‘") (":ram:" . "๐Ÿ") (":pig_nose:" . "๐Ÿฝ") (":boar:" . "๐Ÿ—") (":pig:" . "๐Ÿ–") (":pig_face:" . "๐Ÿท") (":cow:" . "๐Ÿ„") (":water_buffalo:" . "๐Ÿƒ") (":ox:" . "๐Ÿ‚") (":cow_face:" . "๐Ÿฎ") (":unicorn_face:" . "๐Ÿฆ„") (":horse:" . "๐ŸŽ") (":horse_face:" . "๐Ÿด") (":leopard:" . "๐Ÿ†") (":tiger:" . "๐Ÿ…") (":tiger_face:" . "๐Ÿฏ") (":lion_face:" . "๐Ÿฆ") (":cat_face:" . "๐Ÿฑ") (":wolf_face:" . "๐Ÿบ") (":poodle:" . "๐Ÿฉ") (":dog_face:" . "๐Ÿถ") (":monkey:" . "๐Ÿ’") (":monkey_face:" . "๐Ÿต") (":tone_dark:" . "๐Ÿฟ") (":tone_medium_dark:" . "๐Ÿพ") (":tone_medium:" . "๐Ÿฝ") (":tone_medium_light:" . "๐Ÿผ") (":tone_light:" . "๐Ÿป") (":footprints:" . "๐Ÿ‘ฃ") (":busts_silhouette:" . "๐Ÿ‘ฅ") (":bust_silhouette:" . "๐Ÿ‘ค") (":couple_heart:" . "๐Ÿ’‘") (":couple:" . "๐Ÿ’") (":holding_hands_mm:" . "๐Ÿ‘ฌ") (":holding_hands_mw:" . "๐Ÿ‘ซ") (":holding_hands_ww:" . "๐Ÿ‘ญ") (":in_bed:" . "๐Ÿ›Œ") (":bath:" . "๐Ÿ›€") (":person_mountain_biking:" . "๐Ÿšต") (":person_biking:" . "๐Ÿšด") (":person_rowing_boat:" . "๐Ÿšฃ") (":horse_racing:" . "๐Ÿ‡") (":people_bunny_ears_partying:" . "๐Ÿ‘ฏ") (":dancer:" . "๐Ÿ’ƒ") (":person_running:" . "๐Ÿƒ") (":person_walking:" . "๐Ÿšถ") (":person_getting_haircut:" . "๐Ÿ’‡") (":person_getting_massage:" . "๐Ÿ’†") (":santa:" . "๐ŸŽ…") (":baby_angel:" . "๐Ÿ‘ผ") (":bride_veil:" . "๐Ÿ‘ฐ") (":man_chinese_cap:" . "๐Ÿ‘ฒ") (":person_turban:" . "๐Ÿ‘ณ") (":princess:" . "๐Ÿ‘ธ") (":construction_worker:" . "๐Ÿ‘ท") (":guard:" . "๐Ÿ’‚") (":police_officer:" . "๐Ÿ‘ฎ") (":person_bowing:" . "๐Ÿ™‡") (":person_raising_hand:" . "๐Ÿ™‹") (":person_tipping_hand:" . "๐Ÿ’") (":person_gesturing_ok:" . "๐Ÿ™†") (":person_gesturing_no:" . "๐Ÿ™…") (":person_pouting:" . "๐Ÿ™Ž") (":person_frowning:" . "๐Ÿ™") (":older_woman:" . "๐Ÿ‘ต") (":older_man:" . "๐Ÿ‘ด") (":woman:" . "๐Ÿ‘ฉ") (":man:" . "๐Ÿ‘จ") (":blond_person:" . "๐Ÿ‘ฑ") (":girl:" . "๐Ÿ‘ง") (":boy:" . "๐Ÿ‘ฆ") (":baby:" . "๐Ÿ‘ถ") (":lips:" . "๐Ÿ‘„") (":tongue:" . "๐Ÿ‘…") (":eyes:" . "๐Ÿ‘€") (":nose:" . "๐Ÿ‘ƒ") (":muscle:" . "๐Ÿ’ช") (":nail_care:" . "๐Ÿ’…") (":pray:" . "๐Ÿ™") (":open_hands:" . "๐Ÿ‘") (":raised_hands:" . "๐Ÿ™Œ") (":clap:" . "๐Ÿ‘") (":punch:" . "๐Ÿ‘Š") (":fist:" . "โœŠ") (":middle_finger:" . "๐Ÿ–•") (":metal:" . "๐Ÿค˜") (":ok_hand:" . "๐Ÿ‘Œ") (":vulcan:" . "๐Ÿ––") (":raised_hand:" . "โœ‹") (":wave:" . "๐Ÿ‘‹") (":zzz:" . "๐Ÿ’ค") (":thought:" . "๐Ÿ’ญ") (":speech:" . "๐Ÿ’ฌ") (":dash:" . "๐Ÿ’จ") (":sweat_drops:" . "๐Ÿ’ฆ") (":dizzy_star:" . "๐Ÿ’ซ") (":boom:" . "๐Ÿ’ฅ") (":anger:" . "๐Ÿ’ข") (":100:" . "๐Ÿ’ฏ") (":purple_heart:" . "๐Ÿ’œ") (":blue_heart:" . "๐Ÿ’™") (":green_heart:" . "๐Ÿ’š") (":yellow_heart:" . "๐Ÿ’›") (":broken_heart:" . "๐Ÿ’”") (":heart_decoration:" . "๐Ÿ’Ÿ") (":two_hearts:" . "๐Ÿ’•") (":revolving_hearts:" . "๐Ÿ’ž") (":heartbeat:" . "๐Ÿ’“") (":heartpulse:" . "๐Ÿ’—") (":sparkling_heart:" . "๐Ÿ’–") (":heart_ribbon:" . "๐Ÿ’") (":cupid:" . "๐Ÿ’˜") (":love_letter:" . "๐Ÿ’Œ") (":kiss_lips:" . "๐Ÿ’‹") (":speak_no_evil:" . "๐Ÿ™Š") (":hear_no_evil:" . "๐Ÿ™‰") (":see_no_evil:" . "๐Ÿ™ˆ") (":pouting_cat:" . "๐Ÿ˜พ") (":crying_cat:" . "๐Ÿ˜ฟ") (":weary_cat:" . "๐Ÿ™€") (":kissing_cat:" . "๐Ÿ˜ฝ") (":smirking_cat:" . "๐Ÿ˜ผ") (":lovestruck_cat:" . "๐Ÿ˜ป") (":joyful_cat:" . "๐Ÿ˜น") (":grinning_cat:" . "๐Ÿ˜ธ") (":smiling_cat:" . "๐Ÿ˜บ") (":robot:" . "๐Ÿค–") (":alien_monster:" . "๐Ÿ‘พ") (":ghost:" . "๐Ÿ‘ป") (":goblin:" . "๐Ÿ‘บ") (":ogre:" . "๐Ÿ‘น") (":poop:" . "๐Ÿ’ฉ") (":skull:" . "๐Ÿ’€") (":angry_imp:" . "๐Ÿ‘ฟ") (":imp:" . "๐Ÿ˜ˆ") (":angry:" . "๐Ÿ˜ ") (":enraged:" . "๐Ÿ˜ก") (":annoyed:" . "๐Ÿ˜ค") (":tired:" . "๐Ÿ˜ซ") (":weary:" . "๐Ÿ˜ฉ") (":shamed:" . "๐Ÿ˜“") (":disappointed:" . "๐Ÿ˜ž") (":persevered:" . "๐Ÿ˜ฃ") (":confounded:" . "๐Ÿ˜–") (":frightened:" . "๐Ÿ˜ฑ") (":distressed:" . "๐Ÿ˜ญ") (":upset:" . "๐Ÿ˜ข") (":hopeful:" . "๐Ÿ˜ฅ") (":cold_sweat:" . "๐Ÿ˜ฐ") (":fearful:" . "๐Ÿ˜จ") (":anguished:" . "๐Ÿ˜ง") (":bored:" . "๐Ÿ˜ฆ") (":flushed:" . "๐Ÿ˜ณ") (":astonished:" . "๐Ÿ˜ฒ") (":hushed:" . "๐Ÿ˜ฏ") (":surprised:" . "๐Ÿ˜ฎ") (":cheerless:" . "๐Ÿ™") (":worried:" . "๐Ÿ˜Ÿ") (":confused:" . "๐Ÿ˜•") (":nerd:" . "๐Ÿค“") (":confident:" . "๐Ÿ˜Ž") (":dizzy:" . "๐Ÿ˜ต") (":injured:" . "๐Ÿค•") (":sick:" . "๐Ÿค’") (":ill:" . "๐Ÿ˜ท") (":exhausted:" . "๐Ÿ˜ด") (":sleepy:" . "๐Ÿ˜ช") (":pensive:" . "๐Ÿ˜”") (":relieved:" . "๐Ÿ˜Œ") (":grimaced:" . "๐Ÿ˜ฌ") (":disbelief:" . "๐Ÿ™„") (":unamused:" . "๐Ÿ˜’") (":cocky:" . "๐Ÿ˜") (":vacant:" . "๐Ÿ˜ถ") (":apathetic:" . "๐Ÿ˜‘") (":silenced:" . "๐Ÿค") (":curious:" . "๐Ÿค”") (":hugging:" . "๐Ÿค—") (":pretentious:" . "๐Ÿค‘") (":facetious:" . "๐Ÿ˜") (":mischievous:" . "๐Ÿ˜œ") (":playful:" . "๐Ÿ˜›") (":yum:" . "๐Ÿ˜‹") (":happy_kiss:" . "๐Ÿ˜™") (":loving_kiss:" . "๐Ÿ˜š") (":kiss:" . "๐Ÿ˜—") (":flirty:" . "๐Ÿ˜˜") (":lovestruck:" . "๐Ÿ˜") (":innocent:" . "๐Ÿ˜‡") (":blush:" . "๐Ÿ˜Š") (":coy:" . "๐Ÿ˜‰") (":ecstatic:" . "๐Ÿ™ƒ") (":pleased:" . "๐Ÿ™‚") (":joyful:" . "๐Ÿ˜‚") (":embarrassed:" . "๐Ÿ˜…") (":amused:" . "๐Ÿ˜†") (":blissful:" . "๐Ÿ˜") (":happy:" . "๐Ÿ˜„") (":glad:" . "๐Ÿ˜ƒ") (":gleeful:" . "๐Ÿ˜€"))) (defun load-table () (let ((file (res:get-data-file (text-utils:strcat "data/" "emoji-shortcodes.json")))) (with-open-file (stream file :direction :input) (let ((table (yason:parse stream)) (results '())) (labels ((code->emoji (code) (if (cl-ppcre:scan "-" code) (let ((codes (mapcar (lambda (a) (code-char (parse-integer a :radix 16))) (cl-ppcre:split "-" code)))) (format nil "~{~c~}" codes)) (format nil "~c" (code-char (parse-integer code :radix 16))))) (append-emoji (code-point shortcode) (setf results (acons (format nil ":~a:" shortcode) (code->emoji code-point) results))) (maybe-append-kebab (code-point shortcode) (when (cl-ppcre:scan "_" shortcode) (append-emoji code-point (cl-ppcre:regex-replace-all "_" shortcode "-"))))) (maphash (lambda (code-point shortcodes) (etypecase shortcodes (string (maybe-append-kebab code-point shortcodes) (append-emoji code-point shortcodes)) (list (loop for shortcode in shortcodes do (maybe-append-kebab code-point shortcode) (append-emoji code-point shortcode))))) table) results))))) (defun initialize () (ignore-errors (setf *shortcodes-db* (load-table)))) (defun shortcode-lookup (key) (assoc key *shortcodes-db* :test #'string-equal)) (defun emojify (text) (loop for mapping in *shortcodes-db* do (setf text (cl-ppcre:regex-replace-all (text-utils:strcat "(?i)" (car mapping)) text (cdr mapping)))) text)